Il modulo Mainline PermissionController contiene le norme sulla privacy e UI relativa alla concessione e alla gestione delle autorizzazioni (ad esempio, i criteri e 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 (incluso il raggruppamento delle autorizzazioni)
- Monitoraggio dell'utilizzo delle autorizzazioni di runtime
- Ruoli
A partire da Android 12, il framework e il server di sistema
corsi per Role
vengono spostati 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. Come modulo Mainline aggiornabile, PermissionController:
- Interagisce con il framework solo tramite la versione stabile di @SystemApi (senza 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 essere associati, tra cui la gestione dei ruoli, la revoca delle autorizzazioni e le informazioni di base sulle autorizzazioni (ad Impostazioni).
- Supporta la revoca automatica per le app inutilizzate (novità di Android 11).
In Android9, il controllo delle autorizzazioni fa parte
com.android.packageinstaller
.
Revoca automatica per le app inutilizzate
In Android 11, il modulo AuthorizationController revocare automaticamente le autorizzazioni di runtime per le app che non sono state utilizzate per per un periodo di tempo prolungato. Le app che hanno come target l'SDK 30 o versioni successive hanno la revoca automatica attivata per impostazione predefinita, mentre le app che hanno come target l'SDK 29 o versioni precedenti hanno la revoca automatica disattivato per impostazione predefinita. Se abilitata, la revoca automatica influisce su tutti i runtime autorizzazioni, ma escludono tutte le autorizzazioni pre-concesse, incluse quelle dei le autorizzazioni fisse dal sistema e le autorizzazioni concesse per impostazione predefinita o per ruolo. Per Per maggiori dettagli, consulta Reimpostare automaticamente le autorizzazioni Google Cloud.
Formato del pacchetto
Il formato del modulo PermissionController varia a seconda della release.
In Android 11 o versioni successive, il modulo PermissionController è 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 usare i comandi di esempio per spostare le patch dalla directory del progetto originale alla nuova directory del progetto.
Sposta 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 drawables) mediante overlay di risorse di runtime (RROS).