Il modulo Mainline di PermissionController contiene le norme sulla privacy e l'UI relativa alla concessione e alla gestione delle autorizzazioni (ad esempio le norme e l'UI per la concessione e la gestione delle autorizzazioni).
Informazioni su PermissionController
Il modulo PermissionController gestisce la logica, i ruoli e l'interfaccia utente relativi alle autorizzazioni per consentire l'accesso alle app per uno scopo specifico. Controlla quanto segue:
- Concessione dell'autorizzazione di runtime (inclusa la concessione alle app di sistema)
- Gestione delle autorizzazioni di runtime (inclusa la raggruppazione delle autorizzazioni)
- Monitoraggio dell'utilizzo delle autorizzazioni di runtime
- Ruoli
A partire da Android 12, le classi del framework e del server di sistema per Role
vengono spostate nel modulo per rendere Role
completamente modulare.
In Android 10, l'app Programma di installazione pacchetti è suddiviso in sezioni per abilitare la logica delle autorizzazioni da aggiornare. In qualità di modulo Mainline aggiornabile, PermissionController:
- Interagisce con il framework solo tramite @SystemApi stabile (nessun utilizzo dell'API @hide).
- Gestisce gli intent relativi alle autorizzazioni con priorità > 0.
- Presenta un meccanismo che consente agli OEM di personalizzarli.
- Fornisce servizi a cui il sistema e le applicazioni possono eseguire il binding, tra cui gestione dei ruoli, revoca delle autorizzazioni e informazioni di base sulle autorizzazioni (per Impostazioni).
- Supporta la revoca automatica per le app inutilizzate (novità di Android 11).
In Android 9, il controllo delle autorizzazioni fa parte di
com.android.packageinstaller
.
Revoca automatica per le app inutilizzate
In Android 11, il modulo PermissionsController può revocare automaticamente le autorizzazioni di runtime per le app che non sono state utilizzate per un periodo di tempo prolungato. Per le app che hanno come target SDK 30 o versioni successive, il ritiro automatico è abilitato per impostazione predefinita, mentre per le app che hanno come target SDK 29 o versioni precedenti, il ritiro automatico è disattivato per impostazione predefinita. Se è attivata, la revoca automatica influisce su tutte le autorizzazioni di runtime, ma esenta tutte le autorizzazioni concesse in precedenza, incluse le autorizzazioni predefinite e quelle predefinite dal sistema e quelle concesse per impostazione predefinita o per ruolo. Per maggiori dettagli, consulta la sezione Reimpostare automaticamente le autorizzazioni delle app inutilizzate.
Formato del pacchetto
Il formato del modulo PermissionController varia a seconda della release.
In Android 11 o versioni successive, il modulo PermissionController è in formato APEX ed è aggiornabile. Il nome del pacchetto è
com.google.android.permission
.In Android 10, il modulo PermissionController è in formato APK e non è aggiornabili. Il nome del pacchetto è
com.google.android.permissioncontroller
.
Confine modulo
In Android 12, l'autorizzazione
il codice del modulo è stato spostato da packages/apps/PermissionController
(il progetto platform/packages/apps/PackageInstaller
) e
frameworks/base/apex/permission
(questa è una sottodirectory del
progetto frameworks/base
).
La nuova struttura del progetto per packages/modules/Permission
è la seguente:
- File di
frameworks/base/apex/permission
- File PermissionController di
packages/apps/PermissionController
Gli OEM possono utilizzare i comandi di esempio per spostare le patch dalle directory del progetto originale alla nuova directory del progetto.
Spostare una patch da frameworks/base/apex/permission
root/frameworks/base/$ git format-patch -1 --relative=apex/permission commit --stdout > patch-file.txt
root/packages/modules/Permission$ git am -p2 patch-file.txt
Spostare una patch da pacchetti/apps/PermissionController
root/packages/apps/PermissionController$ git format-patch -1 commit --stdout > patch-file.txt
root/packages/modules/Permission$ git am -p2 --directory=PermissionController patch-file.txt
Personalizzazione
Gli OEM possono personalizzare il tema dell'interfaccia utente delle autorizzazioni (colori, margini, caratteri e elementi drawable) utilizzando gli overlay delle risorse di runtime (RROS).