Le app firmate sulla piattaforma sono app che condividono la stessa firma (o compatibile)
con il pacchetto della piattaforma (android
). Un'app firmata dalla piattaforma può essere
un'app di sistema (che si trova su una partizione di un'immagine di sistema) o un'app non di sistema.
Gli UID condivisi firmati dalla piattaforma sono UID condivisi (android:sharedUserId
) che
che contengono app firmate dalla piattaforma. Le build di debug sono build
android.os.Build.isDebuggable()
restituisce true
, ad esempio userdebug
o eng
le build.
In passato, i produttori di dispositivi avevano poco controllo su quale piattaforma firmata
app non di sistema potrebbero unirsi a un UID condiviso firmato dalla piattaforma. A partire da Android
15, i produttori possono consentire
esplicitamente il deployment
app non di sistema per unire UID condivisi firmati dalla piattaforma nella configurazione di sistema
File XML nella directory /etc/permissions
. Se un modello non di sistema firmato dalla piattaforma
l'app non viene aggiunta alla lista consentita per un UID condiviso firmato dalla piattaforma
tenta comunque di accedere all'UID condiviso firmato dalla piattaforma (con android:sharedUserId
nel relativo file manifest), questa app non può essere installata su build non di debug.
Aggiungi una lista consentita
Puoi elencare le liste consentite per le app in un unico file XML o in più file XML,
simile a
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>
Trovare la lista consentita mancante
Per trovare una voce della lista consentita mancante, prova a installare il file non di sistema firmato dalla piattaforma su una build non di debug e verifica se può essere ancora installata. In caso contrario, è in grado di controllare i log del dispositivo per verificare il seguente formato dei messaggi di avviso:
Non-preload app {PACKAGE_NAME} signed with platform signature and joining shared uid: {SHARED_UID_NAME}