プラットフォーム署名アプリは、同じ(または互換性のある)署名を共有するアプリです
プラットフォーム パッケージ(android
)を含む証明書。プラットフォームで署名されたアプリは、
システムアプリ(システム イメージ パーティションに配置)、またはシステム以外のアプリ。
プラットフォームで署名された共有 UID は、共有 UID(android:sharedUserId
)であり、
プラットフォームで署名されたアプリが含まれます。デバッグ可能なビルドとは、
android.os.Build.isDebuggable()
は true
(userdebug
、eng
など)を返します。
説明します。
これまで、デバイス メーカーは、どのプラットフォームが署名するかをほとんど制御できませんでした。
システム以外のアプリがプラットフォームで署名された共有 UID に参加できます。Android での開始
15 で、メーカーはプラットフォーム署名済みの
システム以外のアプリが、システム構成内でプラットフォームで署名された共有 UID を結合する
/etc/permissions
ディレクトリの XML ファイル。プラットフォームによって署名された非システム
プラットフォームで署名された共有 UID の許可リストにアプリが追加されておらず、かつ
引き続きプラットフォームで署名された共有 UID(android:sharedUserId
を使用)に参加しようとします。
そのアプリをデバッグ不可能なビルドにインストールすることはできません。
許可リストを追加する
アプリの許可リストは、単一の XML ファイルまたは複数の XML ファイルにリストできます。
frameworks/base/data/etc/package-shareduid-allowlist.xml
:
<!--
This XML defines an allowlist for packages that want to join a particular shared-uid.
If a non-system package that is signed with platform signature, is trying to join a particular
shared-uid, and not in this list, the installation will fail.
- The "package" XML attribute refers to the app's package name.
- The "shareduid" XML attribute refers to the shared uid name.
-->
<config>
<allow-package-shareduid package="android.test.settings" shareduid="android.uid.system" />
</config>
見つからない許可リストを探す
見つからない許可リストエントリを見つけるには、プラットフォームで署名されていない非システムをインストールしてみてください インストールできるかどうかを確認することをおすすめします。そうでない場合は、 デバイスログで次の形式の警告メッセージを確認できます。
Non-preload app {PACKAGE_NAME} signed with platform signature and joining shared uid: {SHARED_UID_NAME}