Declaring Permission 翻訳

A+ a-

本日Nexusのイメージが公開されました。早速ダウンロードして入れて見ましたが、これでようやく最終的なAndroid 6.0の動作確認の検証ができます。
パミッションを実機から抜き取ったり少し大忙しです。

さて、今回は前回に引き続き、Androidの公式ページのトレーニング内にある、パミッション周りの解説ページの翻訳(超訳)です。

前回 Working with System Permission翻訳は、トップページのさらっとしたところだけでしたが、今回は、「Declaring Permissions」ということで、マニュフェストにパミッションを利用宣言する所がメインとなります。

Declaring Permissions

URL:http://developer.android.com/intl/ja/training/permissions/declaring.html

全てのアンドロイドアプリケーションは、アクセス制御されたサンドボックスの中で実行されます。
アプリケーションは、自分のサンドボックス外のリソースや情報を使用する必要がある場合は、適切な許可(パミッション)を要求する必要があります。
あなたのアプリは、Manifestファイルにパミッションを記述する事で、アプリケーションがそれらのパミッションを必要とすることを宣言します。

どれぐらいセンシティブな情報を扱うパミッションであるか(Normal,Dangerous)によって、システムは自動的にパミッションを許可したり、デバイスユーザ(Device Admin)が要求を許可する場合があります。
例えば、あなたのアプリが、デバイスのフラッシュライトをONにする権限をリクエストした時、システムは自動的にその権限を付与します。
アプリがユーザの電話帳を読む必要がある場合、システムはユーザにそのパミッションを許可するようユーザに要求します。(システムが勝手に許可をしない)
実行環境のバージョンによって、ユーザは、アプリケーションのインストール時(Android 5.1以下)、アプリケーションの実行時(Android 6.0以上) のいずれかの方法で許可を与えます



Determine What Permissions Your App Needs

(何のパミッションが必要かの決定)

あなたが開発しているアプリで、許可(パミッション)を必要とする機能を使用している場合は注意する必要があります。
一般的に、アプリケーションは、使用する情報やリソースがそのアプリケーションで作成されたものではない場合パミッションを必要とします。または、デバイスや他のアプリケーションのふるまいに影響を与えるアクションを実行する時にパミッションを必要とします。
例えば、アプリケーションが、インターネットアクセスをする時、カメラを使用する時、Wi-FiをON/OFFする時、アプリケーションは適切なパミッションを必要とします。
システムパミッション一覧については、「Normal and Dangerous Permissions」を参考にしてください。

あなたのアプリは、直接実行するアクションのパミッションのみを必要とします。
別のアプリがタスクを実行したり、情報の提供を要求している場合、あなたのアプリは権限を要求する必要はありません。
例えば、アプリがユーザのアドレス帳を読み取る必要がある時、READ_CONTACTパミッションが必要になります。
しかし、Contacts app (電話帳アプリに)インテントを利用して情報の要求をした場合、あなたのアプリはパミッションを必要としません。電話帳アプリはREAD_CONTACTパミッションを持っている必要はあります。
詳細については、「Consider Using an Intent」を参照してください。


Add Permissions to the Manifest

(Manifestへのパミッションの追加)

あなたのアプリがパミッションを必要と宣言するには、アプリのマニュフェストに<uses-permission>エレメントを記載します。(トップレベルエレメントの<manifest>の子)
例えば、アプリケーションがSMSメッセージを送る必要がある時に、マニュフェストに次の行を記載します。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.snazzyapp">

    <uses-permission android:name="android.permission.SEND_SMS"/>
    

    <application ...>
        ...
    </application>

</manifest>
パミッションの(利用)宣言をした後、システムの動作は、パミッションがどれぐらいセンシティブな情報(Normal,Dangerous)かによって異なります。 パミッションがユーザのプライバシーに影響を与えない場合は、システムが自動的に許可を与えます。 パミッションがセンシティブなユーザ情報にアクセスをする可能性がある場合は、システムは要求を承認するようユーザに許可を求めます。 パミッションの種類の詳細については、「Normal and Dangerous Permissions」を参考にしてください。

最後に

トレーニングページですし、この辺りはAndroid6.0に特化したような記載は殆どないですね。
現在のアンドロイドを知っている方には、あまり面白い事は書いていないので、サクサクと次に行きたいと思います。次回は、「Requesting Permissions at Run Time」ということで、6.0で導入されたRuntime Permissionモデルとなります。

Working with Permissionチュートリアル

Declaring Permissions(パミッションの宣言) 原文
Declaring Permissions(パミッションの宣言) 翻訳


Requesting Permissions at Run Time(実行時のパミッション要求 原文
Requesting Permissions at Run Time(実行時のパミッション要求 翻訳


Permissions Best Practices(ベストプラクティス)原文
Permissions Best Practices(ベストプラクティス)翻訳
がく

がく

アンドロイドアプリの脆弱性検査ツールのRiskFinder株式会社 代表取締役 スマフォのセキュリティ色々やってます。

リスクファインダーはAndroidアプリのセキュリティホールを見つけます!

Androidスマートフォンが急速に普及するとともにアプリの脆弱性報告も急増しています。
リスクファインダーは、Androidアプリの脆弱性診断WEBサービスです。
500項目以上のチェックでアプリの脆弱性や問題を検出し、セキュアなアプリ開発をサポートします。

  • ブラウザでファイルをアップロードするだけ
  • アプリの脆弱性を指摘するだけでなく対処方法も提示
  • 頻繁にバージョンアップするAndroidの最新情報に素早く対応

リスクファインダーの詳細はこちら