Lista consentita di UID condivisa firmata dalla piattaforma

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}