Lista consentita delle autorizzazioni di firma

Le app con firma della piattaforma sono app che condividono lo stesso certificato di firma (o compatibile) con il pacchetto della piattaforma (android). Un'app con firma della piattaforma può essere un'app di sistema (situata in una partizione dell'immagine di sistema) o un'app non di sistema. Le autorizzazioni di firma della piattaforma sono autorizzazioni definite dal pacchetto della piattaforma che hanno anche il livello di protezione signature. Le build di debug sono build il cui android.os.Build.isDebuggable() restituisce true, ad esempio le build userdebug o eng.

In passato, i produttori di dispositivi avevano scarso controllo sulle autorizzazionisignature della piattaforma che potevano essere concesse alle app non di sistema firmate dalla piattaforma. A partire da Android 15, i produttori possono concedere esplicitamente le autorizzazioni per le firme della piattaforma nei file XML di configurazione di sistema nella directory /etc/permissions. Se un'app non di sistema firmata dalla piattaforma non viene aggiunta alla lista consentita per un'autorizzazione di firma della piattaforma, l'autorizzazione si comporta come se l'app non fosse firmata dalla piattaforma nelle build non debbugabili.

Aggiungere una lista consentita

Puoi elencare le liste consentite di autorizzazioni per le app in un singolo file XML o in più file XML situati nella directory frameworks/base/etc/permissions:

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

Non si applicano regole rigide all'organizzazione dei contenuti. Gli implementatori dei dispositivi possono determinare la struttura dei contenuti, a condizione che le app appropriate e le relative autorizzazioni vengano aggiunte alla lista consentita.

Personalizzare una lista consentita

AOSP include un'implementazione della lista consentita che puoi personalizzare in base alle tue esigenze, simile alla lista consentita per le autorizzazioni privilegiate. Per esempio:

<!--
  ~ 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>

Trovare le autorizzazioni mancanti

Per trovare le autorizzazioni mancanti, installa l'app firmata per la piattaforma e controlla i log del dispositivo per verificare se sono presenti messaggi di avviso nel seguente formato:

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

Il sistema può comunque concedere l'autorizzazione alle build di debug, ma non alle build non di debug, come le build user.