Android M Permission-Groupの大抜擢

今回のパミッション周りの一つの大きな特徴として、今まで何も役に立っていなかったパミッショングループが、大抜擢され、重要な役割を得るようになった事があげられます。

Android M Developer Previewのパミッション周りの変更解説として、今回はパミッショングループについて解説したいと思います。

ブログの過去の記事「Android OS 4.2のPermission Groupの変更点」を見てみると、この時パミッショングループの大幅改編がされ、12個だったパミッショングループが24個になり大幅変更、しかしながら以下のような記載が…

「これで、何かの具体的な意味はなくなり、パミッショングループは只の情報でしかなくなりました。」

元々殆ど意味がなかったんですが、整理してさらに意味がなくなったので時期変更に向けての準備か?なんてうがった予想も立てたのですが、そのまま放置されつづけ、今回仕様変更となりました。
大抜擢されたのですが、なんと、大量にパミッショングループが削除されてしまいました。

抹殺されたパミッショングループ達

android.permission-group.ACCESSIBILITY_FEATURES
android.permission-group.AFFECTS_BATTERY
android.permission-group.APP_INFO
android.permission-group.AUDIO_SETTINGS
android.permission-group.BLUETOOTH_NETWORK
android.permission-group.COST_MONEY
android.permission-group.DEVELOPMENT_TOOLS
android.permission-group.DEVICE_ALARMS
android.permission-group.DISPLAY
android.permission-group.HARDWARE_CONTROLS
android.permission-group.MESSAGES
android.permission-group.NETWORK
android.permission-group.PERSONAL_INFO
android.permission-group.PHONE_CALLS
android.permission-group.SCREENLOCK
android.permission-group.STATUS_BAR
android.permission-group.STORAGE
android.permission-group.SYNC_SETTINGS
android.permission-group.SYSTEM_CLOCK
android.permission-group.SYSTEM_TOOLS
android.permission-group.VOICEMAIL
android.permission-group.WALLPAPER
android.permission-group.WRITE_USER_DICTIONARY

計23個リストラされました。

そして生き残ったパミッショングループ8個

android.permission-group.ACCOUNTS
android.permission-group.BOOKMARKS
android.permission-group.CALENDAR
android.permission-group.CAMERA
android.permission-group.LOCATION
android.permission-group.MICROPHONE
android.permission-group.SOCIAL_INFO
android.permission-group.USER_DICTIONARY

そして追加されたパミッショングループ4個

android.permission-group.CONTACTS
android.permission-group.PHONE
android.permission-group.SENSORS
android.permission-group.SMS

もう過去は捨てて再設計です。潔いとも言えますが、いっそ、パミッショングループを継続使用するんじゃなくて、新しいの作ればいいのにと思うぐらいです。

パミッショングループと所属するパミッション

さて、12個に整理されたパミッショングループですが、前回の超訳したAndroidPermissionでは8個しか紹介されてません。

残りの4個は以下のものです。
android.permission-group.ACCOUNTS
android.permission-group.BOOKMARKS
android.permission-group.SOCIAL_INFO
android.permission-group.USER_DICTIONARY

抜けがあったので、今回は全てのパミッショングループについて、どのパミッションが所属しているかを確認してみました。

 

Permission GroupPermissions
android.permission-group.CALENDAR
  • android.permission.READ_CALENDAR
  • android.permission.WRITE_CALENDAR
android.permission-group.CAMERA
  • android.permission.CAMERA
android.permission-group.CONTACTS
  • android.permission.READ_CONTACTS
  • android.permission.WRITE_CONTACTS
  • android.permission.READ_PROFILE
  • android.permission.WRITE_PROFILE
android.permission-group.LOCATION
  • android.permission.ACCESS_FINE_LOCATION
  • android.permission.ACCESS_COARSE_LOCATION
android.permission-group.MICROPHONE
  • android.permission.RECORD_AUDIO
android.permission-group.PHONE
  • android.permission.READ_PHONE_STATE
  • android.permission.CALL_PHONE
  • android.permission.READ_CALL_LOG
  • android.permission.WRITE_CALL_LOG
  • com.android.voicemail.permission.ADD_VOICEMAIL
  • android.permission.USE_SIP
  • android.permission.PROCESS_OUTGOING_CALLS
android.permission-group.SENSORS
  • android.permission.BODY_SENSORS
  • android.permission.USE_FINGERPRINT
android.permission-group.SMS
  • android.permission.SEND_SMS
  • android.permission.RECEIVE_SMS
  • android.permission.READ_SMS
  • android.permission.RECEIVE_WAP_PUSH
  • android.permission.RECEIVE_MMS
  • android.permission.READ_CELL_BROADCASTS
android.permission-group.BOOKMARKS
  • com.android.browser.permission.READ_HISTORY_BOOKMARKS
  • com.android.browser.permission.WRITE_HISTORY_BOOKMARKS
android.permission-group.SOCIAL_INFO
  • android.permission.WRITE_SOCIAL_STREAM
android.permission-group.USER_DICTIONARY
  • android.permission.READ_USER_DICTIONARY
  • android.permission.WRITE_USER_DICTIONARY
android.permission-group.ACCOUNTS
  • android.permission.AUTHENTICATE_ACCOUNTS
  • android.permission.GET_ACCOUNTS
  • android.permission.MANAGE_ACCOUNTS
  • android.permission.USE_CREDENTIALS
  • com.google.android.googleapps.permission.GOOGLE_AUTH
  • com.google.android.googleapps.permission.GOOGLE_AUTH.OTHER_SERVICES
  • com.google.android.googleapps.permission.GOOGLE_AUTH.YouTubeUser
  • com.google.android.googleapps.permission.GOOGLE_AUTH.adsense
  • com.google.android.googleapps.permission.GOOGLE_AUTH.adwords
  • com.google.android.googleapps.permission.GOOGLE_AUTH.ah
  • com.google.android.googleapps.permission.GOOGLE_AUTH.android
  • com.google.android.googleapps.permission.GOOGLE_AUTH.androidsecure
  • com.google.android.googleapps.permission.GOOGLE_AUTH.blogger
  • com.google.android.googleapps.permission.GOOGLE_AUTH.cl
  • com.google.android.googleapps.permission.GOOGLE_AUTH.cp
  • com.google.android.googleapps.permission.GOOGLE_AUTH.dodgeball
  • com.google.android.googleapps.permission.GOOGLE_AUTH.doraemon
  • com.google.android.googleapps.permission.GOOGLE_AUTH.finance
  • com.google.android.googleapps.permission.GOOGLE_AUTH.gbase
  • com.google.android.googleapps.permission.GOOGLE_AUTH.geowiki
  • com.google.android.googleapps.permission.GOOGLE_AUTH.goanna_mobile
  • com.google.android.googleapps.permission.GOOGLE_AUTH.grandcentral
  • com.google.android.googleapps.permission.GOOGLE_AUTH.groups2
  • com.google.android.googleapps.permission.GOOGLE_AUTH.health
  • com.google.android.googleapps.permission.GOOGLE_AUTH.ig
  • com.google.android.googleapps.permission.GOOGLE_AUTH.jotspot
  • com.google.android.googleapps.permission.GOOGLE_AUTH.knol
  • com.google.android.googleapps.permission.GOOGLE_AUTH.lh2
  • com.google.android.googleapps.permission.GOOGLE_AUTH.local
  • com.google.android.googleapps.permission.GOOGLE_AUTH.mail
  • com.google.android.googleapps.permission.GOOGLE_AUTH.mobile
  • com.google.android.googleapps.permission.GOOGLE_AUTH.news
  • com.google.android.googleapps.permission.GOOGLE_AUTH.notebook
  • com.google.android.googleapps.permission.GOOGLE_AUTH.orkut
  • com.google.android.googleapps.permission.GOOGLE_AUTH.panoramio
  • com.google.android.googleapps.permission.GOOGLE_AUTH.print
  • com.google.android.googleapps.permission.GOOGLE_AUTH.reader
  • com.google.android.googleapps.permission.GOOGLE_AUTH.sierra
  • com.google.android.googleapps.permission.GOOGLE_AUTH.sierraqa
  • com.google.android.googleapps.permission.GOOGLE_AUTH.sierrasandbox
  • com.google.android.googleapps.permission.GOOGLE_AUTH.sitemaps
  • com.google.android.googleapps.permission.GOOGLE_AUTH.speech
  • com.google.android.googleapps.permission.GOOGLE_AUTH.speechpersonalization
  • com.google.android.googleapps.permission.GOOGLE_AUTH.talk
  • com.google.android.googleapps.permission.GOOGLE_AUTH.wifi
  • com.google.android.googleapps.permission.GOOGLE_AUTH.wise
  • com.google.android.googleapps.permission.GOOGLE_AUTH.writely
  • com.google.android.googleapps.permission.GOOGLE_AUTH.youtube
  • com.google.android.providers.gsf.permission.READ_GSERVICES

※一般のアプリでは使用できないprotection level-signature(システム署名)のパミッションは除外しました。

解説ページに4つのパミッショングループが記載されていなかったのは、com.google系のパミッションが殆ど所属するからあまり書きたくなかったのか、紙面の都合からなのか、まぁそんな感じですが、特に意味はなさそうでした。正式リリース後に再確認すればいい感じです。

グループに所属しないパミッション

Android Developer Previewのパミッショングループと、それに所属するパミッションを洗い出しましたが、パミッショングループに所属しないパミッションが52個ありました。

大量なので、ここに記載するか迷いましたが、後で自分が見るのに便利なので書いておきます。

 

nameprotectionLevel
android.permission.ACCESS_LOCATION_EXTRA_COMMANDSnormal
android.permission.ACCESS_NETWORK_STATEnormal
android.permission.ACCESS_WIFI_STATEnormal
android.permission.ACCESS_WIMAX_STATEnormal
android.permission.BLUETOOTHdangerous
android.permission.BLUETOOTH_ADMINdangerous
android.permission.BROADCAST_STICKYnormal
android.permission.CHANGE_NETWORK_STATEnormal
android.permission.CHANGE_WIFI_MULTICAST_STATEdangerous
android.permission.CHANGE_WIFI_STATEdangerous
android.permission.CHANGE_WIMAX_STATEdangerous
android.permission.CLEAR_APP_CACHEdangerous
android.permission.DISABLE_KEYGUARDnormal
android.permission.EXPAND_STATUS_BARnormal
android.permission.FLASHLIGHTnormal
android.permission.GET_PACKAGE_SIZEnormal
android.permission.GET_TASKSnormal
android.permission.INTERNETnormal
android.permission.KILL_BACKGROUND_PROCESSESnormal
android.permission.MODIFY_AUDIO_SETTINGSnormal
android.permission.NFCnormal
android.permission.PERSISTENT_ACTIVITYnormal
android.permission.READ_EXTERNAL_STORAGEnormal
android.permission.READ_INSTALL_SESSIONSnormal
android.permission.READ_SYNC_SETTINGSnormal
android.permission.READ_SYNC_STATSnormal
android.permission.RECEIVE_BOOT_COMPLETEDnormal
android.permission.REORDER_TASKSnormal
android.permission.RESTART_PACKAGESnormal
android.permission.SET_TIME_ZONEnormal
android.permission.SET_WALLPAPERnormal
android.permission.SET_WALLPAPER_HINTSnormal
android.permission.SUBSCRIBED_FEEDS_READnormal
android.permission.SUBSCRIBED_FEEDS_WRITEdangerous
android.permission.SYSTEM_ALERT_WINDOWdangerous
android.permission.TRANSMIT_IRnormal
android.permission.VIBRATEnormal
android.permission.WAKE_LOCKnormal
android.permission.WRITE_EXTERNAL_STORAGEnormal
android.permission.WRITE_SETTINGSnormal
android.permission.WRITE_SYNC_SETTINGSnormal
com.android.alarm.permission.SET_ALARMnormal
com.android.launcher.permission.INSTALL_SHORTCUTdangerous
com.android.launcher.permission.UNINSTALL_SHORTCUTdangerous
com.motorola.permission.RECEIVE_APP_DIRECTED_SMSnormal
com.google.android.gms.permission.AD_ID_NOTIFICATIONnormal
com.google.android.gms.permission.CAR_FUELdangerous
com.google.android.gms.permission.CAR_MILEAGEdangerous
com.google.android.gms.permission.CAR_SPEEDdangerous
com.google.android.gms.permission.CAR_VENDOR_EXTENSIONdangerous
com.google.android.portable.permission.READnormal
com.motorola.ims.permission.PRESENCE_ACCESSnormal

 

Normal Permissionはともかくdangerous はグループに入れなきゃダメでしょと思うんですが、この辺りはDeveloper Preview だからでしょう、良く使われるパミッションもありますし、正式バージョンが出たらまた調査したいと思います。

 

コピペばかりになってしまいましたが、さて、ここからパミッショングループの動作について、記載しようと思いましたが、無駄にリストばかりで読みにくくなりましたので、次回記事としたいと思います。


コメント

このブログの人気の投稿

ドローンプログラミング体験教室を伊豆大島の小学校でしてきました

iBatisで動的SQL

情報処理安全確保支援士登録証のカード型が届きました。