JBとICSのPermission比較(メーカー署名関係)

以前書いた、ICSとGingerbreadのPermission比較(メーカー署名関係)の続編。 注意:今回の記事は https://android.googlesource.com/platform/manifest/android-4.1.1_r4 を元に書いてます。 またしてもJBで色々と Permission 関係が変わっているのでまとめてみた。 まず プロテクションレベルの表記が変わっている。 以前は signatureOrSystem と書かれていた箇所が signature|system に変更。 また謎の development も追加(詳細がドキュメントされていないので後日調査予定) まず ICS と JB のプロテクションレベルの一覧比較 ICS dangerous signatureOrSystem normal signature JB dangerous signature|system normal signature signature|system|development signatureOrSystem JB に signatureOrSystem が混じっているのは誤表記にあらず。 一個だけ何故か(恐らくミスだと思うけど) signatureOrSystem が混ざっている。 次それぞれのプロテクションレベル毎の比較 JB 方式の書き方だと今回はまとめにくいので、ICS方式で signature と signatureOrSystemでまとめてみる。 [signature] 赤字は追加分、新規追加のみ signatureOrSystem からの格上げなし android.permission.ACCOUNT_MANAGER android.permission.HARDWARE_TEST android.permission.NET_ADMIN android.permission.REMOTE_AUDIO_PLAYBACK android.permission.GET_DETAILED_TASKS android.permission.REMOVE_TASKS android.permission.START_ANY_ACTIVITY 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
Read more →

ICSとGingerbreadのPermission比較(メーカー署名関係)

ICSのテストをしていると、前まで動いていたところでSecurityExceptionをはきました。 端末不具合かソースが変わったのかを調べる為に 公開されているICS(Android 4.0)とGingerbread(Android 2.3.3)のAndroidManifest.xmlを比較してみました。 AndroidではAndroid自体をビルドする時に使用されている署名(所謂メーカー所有の署名)とその他の署名の間に格差があり、特定のAPIを叩く際に必要となるpermissionの値が、“signatureOrSystem” もしくは"signature"となっている時は、実行する為にこのメーカー署名が必要となります。 それらAPIを叩くためには、メーカーに依頼して出来たAPKに署名を入れてもらうか、 rootを取る、もしくは自分でAndroidをビルドして実機に焼く等を行う必要があります。 それぞれ、frameworks/base/core/res/AndroidManifest.xml を比較し、ICSで増えた箇所を赤字+太字で表示しました。 ※ICSで減ったものはなかった。 [signatureOrSystem] android.permission.SEND_SMS_NO_CONFIRMATION android.permission.RECEIVE_EMERGENCY_BROADCAST android.permission.INSTALL_LOCATION_PROVIDER android.permission.CONNECTIVITY_INTERNAL 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.WRITE_SECURE_SETTINGS android.permission.WRITE_GSERVICES android.permission.DUMP android.permission.RETRIEVE_WINDOW_CONTENT android.permission.SET_TIME android.permission.WRITE_APN_SETTINGS 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.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 [signature] android.permission.ACCOUNT_MANAGER android.permission.HARDWARE_TEST android.permission.NET_ADMIN android.permission.REMOVE_TASKS 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
Read more →