Autorizzazioni

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