Lista consentita delle autorizzazioni di firma

Le app con firma 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. 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 i cui android.os.Build.isDebuggable() restituiscono true, ad esempio userdebug o eng build.

In passato, i produttori di dispositivi avevano poco controllo sulla piattaforma È stato possibile concedere signature autorizzazioni ad app non di sistema firmate sulla piattaforma. A partire da Android 15, i produttori possono concedere autorizzazioni di firma alla piattaforma nei file XML di configurazione di sistema in nella directory /etc/permissions. Se un'app non di sistema firmata dalla piattaforma aggiunta alla lista consentita per un'autorizzazione di firma della piattaforma, tale autorizzazione agisce come se l'app non avesse una piattaforma firmata su build non di debug.

Aggiungi 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 applica alcuna regola rigida all'organizzazione dei contenuti. Gli utenti che implementano i dispositivi possono determinare la struttura dei contenuti a condizione che le app appropriate e le relative autorizzazioni vengono aggiunte alla lista consentita.

Personalizzare una lista consentita

AOSP include un'implementazione della lista consentita che puoi personalizzare in base alle tue esigenze, in modo simile lista consentita di autorizzazioni con privilegi. 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 dalla piattaforma ed esamina il dispositivo log per il seguente formato dei messaggi di avviso:

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

Il sistema può comunque concedere l'autorizzazione sulle build di cui è possibile eseguire il debug, ma non sulle build build non sottoposte a debug, come le build user.