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
.