Daftar yang diizinkan UID bersama yang ditandatangani platform

Aplikasi bertanda platform adalah aplikasi yang berbagi sertifikat penandatanganan yang sama (atau kompatibel) dengan paket platform (android). Aplikasi bertanda platform dapat berupa aplikasi sistem (terletak di partisi image sistem), atau aplikasi non-sistem. UID bersama bertanda platform adalah UID bersama (android:sharedUserId) yang berisi aplikasi bertanda platform. Build yang dapat di-debug adalah build yang android.os.Build.isDebuggable()-nya menampilkan true, seperti build userdebug atau eng.

Sebelumnya, produsen perangkat hanya memiliki sedikit kontrol atas aplikasi non-sistem bertanda platform yang dapat bergabung dengan UID bersama bertanda platform. Mulai Android 15, produsen dapat secara eksplisit mengizinkan aplikasi non-sistem bertanda platform untuk bergabung dengan UID bersama bertanda platform dalam file XML konfigurasi sistem di direktori /etc/sysconfig. Jika aplikasi non-sistem bertanda platform tidak ditambahkan ke daftar yang diizinkan untuk UID bersama bertanda platform, dan aplikasi tersebut masih mencoba bergabung dengan UID bersama bertanda platform (dengan android:sharedUserId dalam manifesnya), aplikasi tersebut tidak dapat diinstal pada build yang tidak dapat di-debug.

Menambahkan daftar yang diizinkan

Anda dapat mencantumkan daftar yang diizinkan untuk aplikasi 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 hilang

Untuk menemukan entri daftar yang diizinkan yang hilang, coba instal aplikasi non-sistem bertanda platform Anda pada build yang tidak dapat di-debug dan periksa apakah aplikasi tersebut masih dapat diinstal. Jika tidak, Anda dapat memeriksa log perangkat untuk format pesan peringatan berikut:

Non-preload app {PACKAGE_NAME} signed with platform signature and joining shared uid: {SHARED_UID_NAME}