Aplikasi yang ditandatangani platform adalah aplikasi yang berbagi penandatanganan yang sama (atau kompatibel)
sertifikat dengan paket platform (android
). Aplikasi yang ditandatangani
platform dapat
aplikasi sistem (terletak di partisi {i>image<i} sistem), atau aplikasi nonsistem.
UID bersama yang ditandatangani platform adalah UID bersama (android:sharedUserId
) yang
berisi aplikasi bertanda tangan platform. Build yang dapat di-debug adalah build yang
android.os.Build.isDebuggable()
menampilkan true
, seperti userdebug
atau eng
build yang berbeda.
Sebelumnya, produsen perangkat hanya memiliki sedikit kontrol atas platform mana yang
aplikasi nonsistem dapat bergabung dengan UID bersama yang ditandatangani oleh platform. Dimulai di Android
15, produsen dapat secara eksplisit mengizinkan
platform yang ditandatangani
aplikasi nonsistem untuk bergabung dengan UID bersama yang ditandatangani platform dalam konfigurasi sistem
File XML di direktori /etc/permissions
. Jika nonsistem yang ditandatangani oleh platform
aplikasi tidak ditambahkan ke daftar yang diizinkan untuk UID bersama yang ditandatangani platform, dan aplikasi
masih mencoba bergabung ke UID bersama yang ditandatangani platform (dengan android:sharedUserId
dalam manifesnya), aplikasi tersebut tidak dapat diinstal pada build yang tidak dapat di-debug.
Menambahkan daftar yang diizinkan
Anda dapat membuat daftar daftar aplikasi yang diizinkan dalam satu file XML atau dalam beberapa file XML,
mirip dengan
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>
Menemukan daftar yang diizinkan yang tidak ada
Untuk menemukan entri daftar yang diizinkan yang tidak ada, coba instal nonsistem yang ditandatangani platform aplikasi pada build yang tidak dapat di-debug dan memeriksa apakah aplikasi masih dapat diinstal. Jika tidak, Anda dapat memeriksa log perangkat untuk mengetahui format pesan peringatan berikut:
Non-preload app {PACKAGE_NAME} signed with platform signature and joining shared uid: {SHARED_UID_NAME}