Platform tarafından imzalanan uygulamalar, platform paketiyle (android
) aynı (veya uyumlu) imzalama sertifikasını paylaşan uygulamalardır. Platform tarafından imzalanan uygulamalar, sistem uygulaması (sistem resmi bölümünde bulunur) veya sistem dışı uygulama olabilir. Platform tarafından imzalanan paylaşılan UID'ler, platform tarafından imzalanan uygulamaları içeren paylaşılan UID'lerdir (android:sharedUserId
). 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ı paylaşılan bir UID'ye hangi platform imzalı sistem dışı uygulamaların katılabileceği konusunda çok az kontrole sahipti. Android 15'ten itibaren üreticiler, platform tarafından imzalanan sistem dışı uygulamaların /etc/permissions
dizinindeki sistem yapılandırma XML dosyalarında platform tarafından imzalanan paylaşılan UID'lere katılmasına açıkça izin verebilir. Platform imzalı, paylaşılan UID için izin verilenler listesine platform imzalı, sistem dışı bir uygulama eklenmezse ve uygulama hâlâ platform imzalı paylaşılan UID'ye (manifest dosyasında android:sharedUserId
ile) katılmaya çalışırsa bu uygulama, hata ayıklanamayan derlemelere yüklenemez.
İzin verilenler listesi ekleme
Uygulamaların izin verilenler listelerini tek bir XML dosyasında veya birden fazla XML dosyasında listeleyebilirsiniz. Örneğin, frameworks/base/data/etc/package-shareduid-allowlist.xml
:
<!--
This XML defines an allowlist for packages that want to join a particular shared-uid.
If a non-system package that is signed with platform signature, is trying to join a particular
shared-uid, and not in this list, the installation will fail.
- The "package" XML attribute refers to the app's package name.
- The "shareduid" XML attribute refers to the shared uid name.
-->
<config>
<allow-package-shareduid package="android.test.settings" shareduid="android.uid.system" />
</config>
Eksik izin verilenler listesini bulma
Eksik izin verilenler listesi girişini bulmak için platform tarafından imzalanan sistem dışı uygulamanızı hata ayıklama yapılamayan bir derlemeye yüklemeyi deneyin ve uygulamanın hâlâ yüklenip yüklenemediğini kontrol edin. Değilse cihaz günlüklerini inceleyerek aşağıdaki uyarı mesajı biçimi olup olmadığını kontrol edebilirsiniz:
Non-preload app {PACKAGE_NAME} signed with platform signature and joining shared uid: {SHARED_UID_NAME}