Controllore di autorizzazione

Il modulo PermissionController abilita le politiche sulla privacy e gli elementi dell'interfaccia utente aggiornabili (ad esempio, i criteri e l'interfaccia utente relativi alla concessione e alla gestione delle autorizzazioni).

A partire da Android 12, le classi framework e server di sistema per Role vengono spostate nel modulo per rendere Role completamente modulare.

Informazioni su PermissionController

L'APK com.google.android.permissioncontroller gestisce l'interfaccia utente, la logica e i ruoli relativi alle autorizzazioni per consentire l'accesso alle app per scopi specifici. Controlla quanto segue:

  • Concessione delle autorizzazioni 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

In Android 9, tali autorizzazioni facevano parte di com.google.android.packageinstaller . In Android 10, l'app Package Installer è suddivisa in sezioni per consentire l'aggiornamento della logica delle autorizzazioni. Come modulo aggiornabile Mainline, PermissionController:

  • Interagisce con il framework solo tramite @SystemApi stabile (nessun utilizzo dell'API @hide ).

  • Gestisce gli intenti relativi alle autorizzazioni con una priorità superiore a 0.

  • Espone un meccanismo per consentire agli OEM di personalizzare i temi.

  • Fornisce servizi a cui il sistema e le app possono associarsi, inclusa la gestione dei ruoli, la revoca delle autorizzazioni e le informazioni sulle autorizzazioni di base (per le Impostazioni).

  • Supporta la revoca automatica per le app inutilizzate (novità in Android 11).

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. Le app destinate all'SDK 30 o versioni successive hanno la revoca automatica abilitata per impostazione predefinita, mentre le app destinate all'SDK 29 o precedenti hanno la revoca automatica disabilitata per impostazione predefinita. Se abilitata, la revoca automatica influisce su tutte le autorizzazioni di runtime, ma esenta tutte le autorizzazioni pre-concesse, incluse le autorizzazioni fissate da criteri e sistema e le autorizzazioni concesse per impostazione predefinita o per ruolo. Per i dettagli, consulta Autorizzazioni di ripristino automatico dalle app inutilizzate .

Formato del pacchetto

Il modulo PermissionController viene fornito come file APK.

Confine del modulo

In Android 12, il codice del modulo di autorizzazione viene 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 i packages/modules/Permission è la seguente:

  • File da frameworks/base/apex/permission
  • File di PermissionController da packages/apps/PermissionController

Gli OEM possono utilizzare i comandi di esempio per spostare le proprie patch dalle 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

Sposta una patch da packages/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 disegnabili) utilizzando le sovrapposizioni di risorse di runtime (RROS) .