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.