7

Android のアクセス許可がいくつかありますが、それらがどのアクセス許可 PROTECTION LEVEL に属しているかを知りたいです。これを確認する方法を知っている人はいますか?たとえば、android.permission.RECEIVE_BOOT_COMPLETED許可の PROTECTION LEVEL を知る必要がありますが、さらに多くのことを確認したいと考えています。

編集:

明確に説明していないことがわかります。つまり、パーミッションが導入された API レベルではなく、パーミッション保護レベル (Normal、Dangerous、Signeture、Signature、または System) の 4 つのうちの 1 つです。たとえば、アプリケーションのインストール中にこの権限をユーザーに提示する方法を決定します。特定のアクセス許可がどの保護レベルに属しているかを確認するにはどうすればよいですか?

4

5 に答える 5

8

関連する保護レベルを含むデフォルトのアクセス許可のリストは、次の最新のソースにあります。

https://github.com/android/platform_frameworks_base/blob/master/core/res/AndroidManifest.xml

例:

<permission android:name="android.permission.INTERNET"
    android:permissionGroup="android.permission-group.NETWORK"
    android:protectionLevel="dangerous"
    android:description="@string/permdesc_createNetworkSockets"
    android:label="@string/permlab_createNetworkSockets" />

OEM によって変更される可能性があることに注意してください。

于 2013-01-18T02:53:38.123 に答える
4
getPackageManager().getPermissionInfo(name,  0).protectionLevel
于 2012-09-10T03:34:37.453 に答える
1

このリンクでは、Androidのすべての権限を確認できます。ここでマークするレベル:

于 2012-05-18T12:50:14.447 に答える
0

のためAndroid-Permissionに..

  • パーミッションを強制するために、システムのさまざまな部分がパーミッション検証メカニズムを呼び出して、特定のアプリケーションが指定されたパーミッションを持っているかどうかをチェックします。パーミッション検証メカニズムは、トラステッド システム プロセスの一部として実装され、パーミッション検証メカニズムの呼び出しは API 全体に分散されます。API が呼び出されたときにアクセス許可を確認するための集中ポリシーはありません。むしろ、メディエーションは、パーミッション検証呼び出しの正しい配置に依存しています。

    ここに画像の説明を入力

  • アクセス許可チェックは、システム プロセスの API 実装に配置されます。必要に応じて、API 実装はアクセス許可検証メカニズムを呼び出して、呼び出し元のアプリケーションに必要なアクセス許可があることを確認します。場合によっては、API ライブラリがこれらのアクセス許可を重複してチェックすることもありますが、そのようなチェックは信頼できません。アプリケーションは、RPC スタブを介してシステム プロセスと直接通信することで、アクセス許可を回避できます。したがって、API ライブラリではアクセス許可チェックを行うべきではありません。代わりに、システム プロセスの API 実装は、アクセス許可の検証メカニズムを呼び出す必要があります。

また、詳細については、このドキュメントを参照してくださいAndroid-Permission

于 2012-05-18T12:44:09.553 に答える