プラットフォームで署名されたアプリは、同じ(または互換性のある)署名を共有するアプリです。
プラットフォーム パッケージ(android
)を含む証明書。プラットフォームで署名されたアプリは、
システムアプリ(システム イメージ パーティションに配置)、またはシステム以外のアプリ。
プラットフォーム署名権限は、プラットフォーム パッケージによって定義される権限です。
また、保護レベルが signature
の VPC ネットワークに API が読み込まれます。デバッグ可能ビルドは、android.os.Build.isDebuggable()
が true
を返すビルドで、userdebug
ビルドや eng
ビルドなどです。
これまでデバイス メーカーは、どのプラットフォームを使用するかをほとんど制御できませんでした
signature
の権限をプラットフォームで署名されたシステム以外のアプリに付与できます。
Android 15 以降では、メーカーは
のシステム構成 XML ファイルで、プラットフォーム署名権限を付与する。
/etc/permissions
ディレクトリ。プラットフォームで署名された非システムアプリが
プラットフォーム署名権限の許可リストに追加されている場合、その権限は
アプリがデバッグ不可能なビルドでプラットフォーム署名されていないかのように動作します。
許可リストを追加する
アプリの権限許可リストは、単一の XML ファイルまたは複数のファイルにリストできます。
frameworks/base/etc/permissions
ディレクトリにある XML ファイル:
/etc/permissions/signature-permissions-OEM_NAME.xml
/etc/permissions/signature-permissions-DEVICE_NAME.xml
コンテンツを整理する方法に対する厳格なルールはありません。デバイスの実装者は コンテンツの構造を決めるのは、 権限が許可リストに追加されます。
許可リストをカスタマイズする
AOSP には、特権権限の許可リストと同様に、必要に応じてカスタマイズできる許可リスト実装が用意されています。次に例を示します。
<!--
~ This XML file declares which platform signature permissions to grant to
~ platform signed nonsystem apps.
-->
<permissions>
<signature-permissions package="com.android.example">
<permission name="android.permission.READ_DEVICE_CONFIG"/>
...
</signature-permissions>
...
</permissions>
不足している権限を特定する
不足している権限を見つけるには、プラットフォームで署名されたアプリをインストールしてデバイスを検査してください ログに次の形式の警告メッセージが記録されます。
Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist
システムはデバッグ可能なビルドに対して権限を付与できますが、
デバッグ不可能なビルド(user
ビルドなど)。