PermissionController

Le module PermissionController Mainline contient des politiques de confidentialité et l'interface utilisateur liée à l'octroi et à la gestion des autorisations (par exemple, les politiques et l'interface utilisateur pour l'octroi et la gestion des autorisations).

À propos de PermissionController

Le module PermissionController gère l'interface utilisateur, la logique et les rôles liés aux autorisations pour autoriser l'accès aux applications dans un but spécifique. 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

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

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

Dans Android9, le contrôle des autorisations fait partie de com.android.packageinstaller .

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 à Réinitialisation automatique des autorisations des applications inutilisées .

Format du colis

Le format du module PermissionController diffère selon les versions.

  • Sous Android 11 ou supérieur, le module PermissionController est au format APEX et est actualisable. Le nom du package est com.google.android.permission .

  • Sous Android 10, le module PermissionController est au format APK et n'est pas mis à jour. Le nom du package est com.google.android.permissioncontroller .

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 du projet pour packages/modules/Permission est la suivante :

  • Fichiers de frameworks/base/apex/permission
  • Fichiers PermissionController à partir 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 éléments dessinables) à l'aide de superpositions de ressources d'exécution (RROS) .