Android 4.2 (JELLY_BEAN_MR1) が出ましたので、恒例のsignatureがらみのPermission比較したいと思います。
前回までのPermission比較は

にあります。

何調べてるの?

本記事は署名関係の Android Permission に注目してバージョン間の差分を比較しています。
これらの Permission が要求されるAPIに関してはOSビルド時の署名が必要になります。

メーカー端末であれば販売メーカーに依頼を出して署名をしてもらう必要がありますが、

通常出来ません。
よって3rdパーティアプリを作成する場合これらの Permission を要求されるAPIは使用不可能になります。
Androidはバージョンアップを重ねる毎にこれら Permission の締め付けがきつくなってるのでバージョンアップ毎にチェックしています。

JB と JB MR1 のプロテクションレベルの一覧比較

JB

  • dangerous
  • signature|system
  • normal
  • signature
  • signature|system|development
  • signatureOrSystem

JB MR1

  • dangerous
  • signature|system
  • normal
  • signature
  • signature|system|development
  • system|signature
  • signatureOrSystem

増えた?と思ったらパイプラインで区切られたフラグの順番が逆転していただけでした。

これは signature|system と同一ですね。

しかし signatureOrSystem の件といい、段々適当になってきてる気がする。

Permission増減調査(JB(4.1) > JB MR1(4.2))

[signature]

これはメーカー署名がないと使用出来ないもの

+ android.permission.BLUETOOTH_STACK

android.permission.ACCOUNT_MANAGER

android.permission.HARDWARE_TEST

android.permission.NET_ADMIN

android.permission.REMOTE_AUDIO_PLAYBACK

+ android.permission.INTERACT_ACROSS_USERS_FULL

android.permission.GET_DETAILED_TASKS

android.permission.REMOVE_TASKS

android.permission.START_ANY_ACTIVITY

android.permission.SET_SCREEN_COMPATIBILITY

+ android.permission.ACCESS_ALL_EXTERNAL_STORAGE

+ android.permission.SET_SCREEN_COMPATIBILITY

android.permission.FORCE_STOP_PACKAGES

android.permission.SET_PREFERRED_APPLICATIONS

android.permission.ASEC_ACCESS

android.permission.ASEC_CREATE

android.permission.ASEC_DESTROY

android.permission.ASEC_MOUNT_UNMOUNT

android.permission.ASEC_RENAME

android.permission.DIAGNOSTIC

android.permission.STATUS_BAR_SERVICE

android.permission.FORCE_BACK

android.permission.INTERNAL_SYSTEM_WINDOW

android.permission.MANAGE_APP_TOKENS

+ android.permission.FREEZE_SCREEN

android.permission.INJECT_EVENTS

+ android.permission.FILTER_EVENTS

+ android.permission.RETRIEVE_WINDOW_INFO

+ android.permission.TEMPORARY_ENABLE_ACCESSIBILITY

+ android.permission.MAGNIFY_DISPLAY

android.permission.SET_ACTIVITY_WATCHER

android.permission.READ_INPUT_STATE

android.permission.BIND_INPUT_METHOD

android.permission.BIND_ACCESSIBILITY_SERVICE

android.permission.BIND_TEXT_SERVICE

android.permission.BIND_VPN_SERVICE

android.permission.BIND_DEVICE_ADMIN

android.permission.SET_ORIENTATION

android.permission.SET_POINTER_SPEED

android.permission.SET_KEYBOARD_LAYOUT

android.permission.CLEAR_APP_USER_DATA

android.permission.GRANT_REVOKE_PERMISSIONS

android.permission.ACCESS_SURFACE_FLINGER

+ android.permission.CONFIGURE_WIFI_DISPLAY

+ android.permission.CONTROL_WIFI_DISPLAY

android.permission.BRICK

android.permission.DEVICE_POWER

+ android.permission.NET_TUNNELING

android.permission.FACTORY_TEST

android.permission.BROADCAST_PACKAGE_REMOVED

android.permission.BROADCAST_SMS

android.permission.BROADCAST_WAP_PUSH

android.permission.CONFIRM_FULL_BACKUP

android.permission.CHANGE_BACKGROUND_DATA_SETTING

android.permission.GLOBAL_SEARCH_CONTROL

+ android.permission.READ_DREAM_STATE

+ android.permission.WRITE_DREAM_STATE

android.permission.COPY_PROTECTED_DATA

android.permission.MANAGE_NETWORK_POLICY

android.intent.category.MASTER_CLEAR.permission.C2D_MESSAGE

android.permission.BIND_PACKAGE_VERIFIER

android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY

[signature|system]

メーカー署名があるか、プリインストールのシステムアプリでしか使用出来ないもの

android.permission.SEND_SMS_NO_CONFIRMATION

android.permission.RECEIVE_EMERGENCY_BROADCAST

+ android.permission.BIND_DIRECTORY_SEARCH

android.permission.INSTALL_LOCATION_PROVIDER

android.permission.CONNECTIVITY_INTERNAL

+ android.permission.RECEIVE_DATA_ACTIVITY_CHANGE

android.permission.MANAGE_USB

android.permission.ACCESS_MTP

android.permission.MODIFY_PHONE_STATE

android.permission.READ_PRIVILEGED_PHONE_STATE

android.permission.WRITE_MEDIA_STORAGE

+ android.permission.MANAGE_USERS

android.permission.SET_TIME

android.permission.WRITE_GSERVICES

android.permission.RETRIEVE_WINDOW_CONTENT

android.permission.WRITE_APN_SETTINGS

android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK

android.permission.STATUS_BAR

android.permission.UPDATE_DEVICE_STATS

android.permission.SHUTDOWN

android.permission.STOP_APP_SWITCHES

android.permission.BIND_WALLPAPER

android.permission.INSTALL_PACKAGES

android.permission.DELETE_CACHE_FILES

android.permission.DELETE_PACKAGES

android.permission.MOVE_PACKAGE

android.permission.CHANGE_COMPONENT_ENABLED_STATE

android.permission.READ_FRAME_BUFFER

android.permission.REBOOT

android.permission.MASTER_CLEAR

android.permission.CALL_PRIVILEGED

android.permission.PERFORM_CDMA_PROVISIONING

android.permission.CONTROL_LOCATION_UPDATES

android.permission.ACCESS_CHECKIN_PROPERTIES

android.permission.PACKAGE_USAGE_STATS

android.permission.BACKUP

android.permission.BIND_REMOTEVIEWS

android.permission.BIND_APPWIDGET

+ android.permission.BIND_KEYGUARD_APPWIDGET

android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS

android.permission.GLOBAL_SEARCH

android.permission.SET_WALLPAPER_COMPONENT

android.permission.ACCESS_CACHE_FILESYSTEM

android.permission.CRYPT_KEEPER

android.permission.READ_NETWORK_USAGE_HISTORY

android.permission.MODIFY_NETWORK_ACCOUNTING

android.permission.PACKAGE_VERIFICATION_AGENT

+ android.permission.SERIAL_PORT

[system|signature]

[signature|system]と同じ

+ android.permission.CHANGE_CONFIGURATION

+ android.permission.MOUNT_UNMOUNT_FILESYSTEMS

+ android.permission.MOUNT_FORMAT_FILESYSTEMS

 [signature|system|development]

メーカー署名、システムアプリ、もしくは開発中に使用出来るもの

+ android.permission.INTERACT_ACROSS_USERS

+ android.permission.CHANGE_CONFIGURATION

android.permission.SET_ANIMATION_SCALE

android.permission.WRITE_SECURE_SETTINGS

android.permission.DUMP

android.permission.READ_LOGS

android.permission.SET_DEBUG_APP

android.permission.SET_PROCESS_LIMIT

android.permission.SET_ALWAYS_FINISH

+ android.permission.SIGNAL_PERSISTENT_PROCESSES

[signatureOrSystem]

[signature|system]と同じ

android.permission.UPDATE_LOCK

突っ込みどころ

CHANGE_CONFIGURATIONが[system|signature] と [signature|system|development] の両方に記載されている。どっちだ?