PermissionController

Le module PermissionController permet de mettre à jour les politiques de confidentialité et les éléments de l'interface utilisateur (par exemple, les politiques et l'interface utilisateur relatives à l'octroi et à la gestion des autorisations).

À partir d'Android 12, les classes de serveur de structure et de système pour le Role sont déplacées dans le module pour rendre le Role complètement modulaire.

À propos de PermissionController

L'APK com.google.android.permissioncontroller gère l'interface utilisateur, la logique et les rôles liés aux autorisations pour autoriser l'accès aux applications à des fins spécifiques. Il contrôle les éléments suivants :

  • Octroi d'autorisations d'exécution (y compris l'octroi d'applications système)

  • Gestion des autorisations d'exécution (y compris le regroupement des autorisations)

  • Suivi de l'utilisation des autorisations d'exécution

  • Les rôles

Dans Android 9, ces autorisations faisaient partie de com.google.android.packageinstaller . Dans Android 10, l'application Package Installer est divisée en sections pour permettre la mise à jour de la logique des autorisations. En tant que module Mainline pouvant être mis à jour, PermissionController :

  • Interagit avec le framework uniquement via @SystemApi stable (pas d'utilisation de l'API @hide ).

  • Gère les intentions liées aux autorisations avec une priorité supérieure à 0.

  • Expose un mécanisme permettant aux OEM de personnaliser les thèmes.

  • Fournit des services auxquels le système et les applications peuvent se lier, notamment la gestion des rôles, la révocation des autorisations et les informations d'autorisation de base (pour les paramètres).

  • Prend en charge la révocation automatique des applications inutilisées (nouveau dans Android 11).

Révocation automatique pour les applications inutilisées

Dans Android 11, le module PermissionsController peut révoquer automatiquement les autorisations d'exécution pour les applications qui n'ont pas été utilisées pendant une période prolongée. Les applications ciblant le SDK 30 ou supérieur ont la révocation automatique activée par défaut, tandis que les applications ciblant le SDK 29 ou inférieur ont la révocation automatique désactivée par défaut. Lorsqu'elle est activée, la révocation automatique affecte toutes les autorisations d'exécution, mais exempte toutes les autorisations pré-accordées, y compris les autorisations fixées par la stratégie et le système et les autorisations accordées par défaut ou par rôle. Pour plus de détails, reportez-vous à Auto-réinitialiser les autorisations à partir d'applications inutilisées .

Format de paquet

Le module PermissionController est livré sous forme de fichier APK.

Limite du module

Dans Android 12, le code du module Permission est déplacé de packages/apps/PermissionController (le projet platform/packages/apps/PackageInstaller ) et frameworks/base/apex/permission (il s'agit d'un sous-répertoire du projet frameworks/base ).

La nouvelle structure de projet pour les packages/modules/Permission est la suivante :

  • Fichiers de frameworks/base/apex/permission
  • Fichiers PermissionController de packages/apps/PermissionController

Les OEM peuvent utiliser les exemples de commandes pour déplacer leurs correctifs des répertoires de projet d'origine vers le nouveau répertoire de projet.

Déplacer un correctif depuis 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

Déplacer un correctif depuis 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

Personnalisation

Les OEM peuvent personnaliser le thème de l'interface utilisateur des autorisations (couleurs, marges, polices et drawables) à l'aide des superpositions de ressources d'exécution (RROS) .