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.
Izin tanda tangan platform adalah izin yang
ditentukan oleh paket platform
yang juga memiliki tingkat perlindungan signature
. Build yang dapat di-debug adalah build
yang android.os.Build.isDebuggable()
menampilkan true
, seperti userdebug
atau
eng
build.
Sebelumnya, produsen perangkat hanya memiliki sedikit kontrol atas platform mana
signature
izin dapat diberikan ke aplikasi nonsistem yang ditandatangani platform.
Mulai Android 15, produsen dapat secara eksplisit
memberikan izin tanda tangan platform dalam file XML konfigurasi sistem di
direktori /etc/permissions
. Jika aplikasi nonsistem yang
ditandatangani platform tidak
ditambahkan ke daftar yang diizinkan untuk izin
tanda tangan platform, izin tersebut bertindak
seolah-olah aplikasi tidak ditandatangani platform pada build yang tidak dapat di-debug.
Menambahkan daftar yang diizinkan
Anda dapat membuat daftar daftar izin yang diizinkan untuk aplikasi dalam satu file XML atau dalam beberapa
File XML yang berada di direktori frameworks/base/etc/permissions
:
/etc/permissions/signature-permissions-OEM_NAME.xml
/etc/permissions/signature-permissions-DEVICE_NAME.xml
Tidak ada aturan ketat yang berlaku pada cara pengaturan konten. Pengimplementasi perangkat dapat menentukan struktur konten selama aplikasi yang sesuai dan izin akses ditambahkan ke daftar yang diizinkan.
Menyesuaikan daftar yang diizinkan
AOSP menyertakan implementasi daftar yang diizinkan yang dapat Anda sesuaikan sesuai kebutuhan, mirip dengan daftar izin dengan hak istimewa yang diizinkan. Contoh:
<!--
~ 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>
Menemukan izin yang tidak ada
Untuk menemukan izin yang tidak ada, instal aplikasi yang ditandatangani platform dan periksa perangkat log untuk format pesan peringatan berikut:
Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist
Sistem masih dapat memberikan izin pada build yang dapat di-debug, tetapi tidak pada
build yang tidak dapat di-debug seperti build user
.