İmza izni izin verilenler listesi

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

Geçmişte cihaz üreticileri, platform imzalı sistem dışı uygulamalara hangi platform signature izinlerinin verilebileceği konusunda çok az kontrole sahipti. Android 15'ten itibaren üreticiler, /etc/permissions dizinindeki sistem yapılandırması XML dosyalarında platform imzası izinlerini açıkça verebilir. Platform imzalı olmayan bir uygulama, platform imzası izni için izin verilenler listesine eklenmezse bu izin, hata ayıklanamayan derlemelerde uygulamanın platform imzalı olmadığı gibi davranır.

İzin verilenler listesi ekleme

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

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

İçeriğin nasıl düzenleneceğiyle ilgili katı bir kural yoktur. Cihaz uygulayıcıları, uygun uygulamalar ve izinleri izin verilenler listesine eklendiği sürece içerik yapısını belirleyebilir.

İzin verilenler listesini özelleştirme

AOSP, ayrıcalıklı izin verilenler listesine benzer şekilde, gerektiğinde ö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üklerini aşağıdaki uyarı mesajı biçiminde inceleyin:

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

Sistem, hata ayıklanabilir derlemelerde izni verebilir ancak user derlemeleri gibi hata ayıklanamayan derlemelerde veremez.