Autorizzazioni

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 l'interfaccia utente, la logica e i ruoli relativi alle autorizzazioni per consentire l'accesso alle app per scopi specifici. 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 dei 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. 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.
  • Mette a disposizione un meccanismo per consentire agli OEM di personalizzare i temi.
  • 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à su 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 è aggiornabile. Il nome del pacchetto è com.google.android.permissioncontroller.

Confine del modulo

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

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

Gli OEM possono usare i comandi di esempio per spostare le patch dalle directory del progetto originali alla directory del nuovo 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

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 elementi disegnabili) utilizzando gli overlay delle risorse di runtime.