Daftar izin tanda tangan yang diizinkan

Aplikasi bertanda platform adalah aplikasi yang berbagi sertifikat penandatanganan yang sama (atau kompatibel) dengan paket platform (android). Aplikasi bertanda platform dapat berupa aplikasi sistem (berada di partisi image sistem), atau aplikasi non-sistem. 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()-nya menampilkan true, seperti build userdebug atau eng.

Sebelumnya, produsen perangkat memiliki sedikit kontrol atas izin signature platform yang dapat diberikan ke aplikasi non-sistem yang ditandatangani platform. Mulai Android 15, produsen dapat memberikan izin tanda tangan platform secara eksplisit dalam file XML konfigurasi sistem di direktori /etc/permissions. Jika aplikasi non-sistem yang ditandatangani platform tidak ditambahkan ke daftar yang diizinkan untuk izin tanda tangan platform, izin tersebut akan bertindak seolah-olah aplikasi tidak ditandatangani platform pada build yang tidak dapat di-debug.

Menambahkan daftar yang diizinkan

Anda dapat mencantumkan daftar izin yang diizinkan untuk aplikasi dalam satu file XML atau dalam beberapa file XML yang berada di direktori /etc/permissions:

  • /etc/permissions/signature-permissions-OEM_NAME.xml
  • /etc/permissions/signature-permissions-DEVICE_NAME.xml

Tidak ada aturan ketat yang berlaku untuk cara konten diatur. Pelaksana perangkat dapat menentukan struktur konten selama aplikasi yang sesuai dan izinnya ditambahkan ke daftar yang diizinkan.

Menyesuaikan daftar yang diizinkan

AOSP menyertakan penerapan daftar yang diizinkan yang dapat Anda sesuaikan sesuai kebutuhan, mirip dengan daftar yang diizinkan untuk izin istimewa. 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 Anda dan periksa log perangkat 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.