Controllore di autorizzazione

Il modulo PermissionController Mainline contiene le politiche sulla privacy e l'interfaccia utente relative alla concessione e alla gestione delle autorizzazioni (ad esempio le politiche e l'interfaccia utente per la concessione e la gestione delle autorizzazioni).

Informazioni su PermissionController

Il modulo 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

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

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 priorità > 0.
  • Espone un meccanismo per consentire agli OEM di personalizzare i temi.
  • Fornisce servizi a cui il sistema e le applicazioni 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).

In Android9, 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. 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 formato del modulo PermissionController differisce tra le versioni.

  • 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 è aggiornabile. Il nome del pacchetto è com.google.android.permissioncontroller .

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) .