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