アンドロイドアプリを作成していると
AndroidManifestにuse-permissionにパミッション設定をする事が多いですが、このパミッションにどんなのがあるかなぁと思ってAndroid Developerサイトで確認すると山のように出てきてて、総て把握するのを挫折された方も多いと思います。(私も最初はそうでした)また、これらの具体的な説明を把握しようとしても、1行程でさらっと書いてあるだけで、なんとなくしかわかりません。

タオソフトウェアでは、tSpycheckerというパミッションを組み合わせて怪しいアプリを推測するアプリケーションを出しているので、パミッションに関しての調査をやっています。

先日のICSで追加されたパミッションの説明記事が評判よかったので、調子にのってアンドロイドの使えるパミッションの説明をしていきたいと思います。

実は、Android Developer Siteに記載されているPermission一覧は、一般のアプリケーション開発者(市販のアンドロイド端末を買ってきて、そこで動くアプリを作る人)には使用できない物が多く含まれています。それを除外すると、たかだが100ちょっとの数になります。

使用できるパミッションについて、一つ一つ先日の記事レベルで解説していきたいと思います。

ProtectionLevel

パミッションそれぞれにはProtectionLevelという属性があり、normal, dangerous, signature,signatureOrSystemの4種類です。

この中で、signatureとsignatureOrSystemは一般的なアプリでは使えません。

このため今回のまとめからは上記2つの権限を外したものを書いていきます。

パーミッショングループ

プロテクションレベルの他にもパミッショングループという属性があります。

  • ACCOUNTS
  • COST_MONEY
  • DEVELOPMENT_TOOL
  • HARDWARE_CONTROLS
  • LOCATION
  • MESSAGES
  • NETWORK
  • PERSONAL_INFO
  • PHONE_CALLS
  • STORAGE
  • SYSTEM_TOOLS
  • 指定なし

使えないパミッションを除くとはいえ一度の記事には書けないので、このPermissionグループ単位で説明していきたいとおもっています。

ということで、今回はACCOUNTです。

ACCOUNTグループのパミッション

アカウントグループが示す、アカウントという言葉ですが、非常に抽象的すぎて何か良くわかりません。ここでいうアカウントというのは、AccountManagerで使用されるアカウントを差します。というかAccountManagerで使用するパミッションがアカウントグループとして定義されています。

パミッション 説明 ProtectionLevel
AUTHENTICATE_ACCOUNTS Authenticator機能の許可
Account Managerに対して、Authenticatorとして機能提供する事を許可します。
アカウントの登録、パスワードの取得や設定など、のアカウント認証機能に関する機能を提供します。
※アカウントを作成する機能ではありません
dangerous
GET_ACCOUNTS アカウント情報の取得
Account Managerが管理しているアカウント情報リストにアクセスする事を許可します。
リストからアカウント情報を取得することができます。
この権限があると、端末に紐付けられているグーグルのメールアドレスが取得可能です。(パスワードの取得、およびログインはできません)ログインを行うには、USE_CREDENTIALS許可情報が必要です。
normal
MANAGE_ACCOUNTS アカウント情報の管理
Account Managerが管理しているアカウント情報リストに対して、管理操作を行う事を許可します。
アカウントの追加、削除、パスワードクリアなどを行うことができます。
dangerous
USE_CREDENTIALS 認証トークン要求許可
Account Managerに対して、認証トークンを要求する事を許可します。
また、認証トークンの破棄を行うこともできます。
サービスの認証トークンを持っていると、そのサービスのデータを自由に取得可能です。(カレンダー情報やメール文章等を取得可能)
このため認証トークン取得時には、Ahthenticatorによりアクセスを許可するかのダイアログが表示されます。
dangerous

全部説明するテンションが続けばいいなぁと思っています。。。

間違いがあったり、わかりにくい等がありましたら、@tao_gakuにお願いします。

ブログ内の関連する記事