İmza izni izin verilenler listesi

Platform imzalı uygulamalar, platform paketi (android) ile aynı (veya uyumlu) imzalama sertifikasını paylaşan uygulamalardır. Platform imzalı uygulamalar bir sistem uygulaması (sistem görüntüsü bölümünde bulunur) veya sistem dışı bir uygulama olabilir. Platform imza izinleri, aynı zamanda signature koruma düzeyine sahip olan platform paketi tarafından tanımlanan izinlerdir. Hata ayıklama yapılabilir derlemeler, android.os.Build.isDebuggable() döndüren true derlemelerdir (ör. userdebug veya eng derlemeleri).

Geçmişte cihaz üreticileri, platform imzalı sistem dışı uygulamalara hangi platform signature izinlerinin verilebileceği üzerinde çok az kontrole sahipti. Android 15'ten itibaren üreticiler, /etc/permissions dizinindeki sistem yapılandırma XML dosyalarında platform imza izinlerini açıkça verebilir. Platform imzalı bir sistem dışı uygulama, platform imzalı izin için izin verilenler listesine eklenmezse bu izin, uygulama hata ayıklama yapılamayan derlemelerde platform imzalı değilmiş gibi davranır.

İzin verilenler listesi ekleyin

Uygulamalar için izin verilenler listelerini tek bir XML dosyasında veya frameworks/base/etc/permissions dizininde bulunan birden fazla XML dosyasında listeleyebilirsiniz:

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

İçeriklerin düzenlenme şekliyle ilgili katı bir kural yoktur. Cihaz uygulamaları, uygun uygulamalar ve izinleri izin verilenler listesine eklendiği sürece içerik yapısını belirleyebilir.

İzin verilenler listesini özelleştirme

AOSP, imtiyazlı izin izin verilenler listesine benzer şekilde, gerektiği gibi özelleştirebileceğiniz bir izin verilenler listesi uygulaması içerir. Örneğin:

<!--
  ~ 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>

Eksik izinleri bulma

Eksik izinleri bulmak için platform imzalı uygulamanızı yükleyin ve cihaz günlüklerinde aşağıdaki uyarı mesajı biçiminin olup olmadığını inceleyin:

Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist

Sistem, hata ayıklanabilir derlemelere yine de izin verebilir ancak user derlemeleri gibi düzeltilemeyen derlemelerde izin vermez.