Contrôleur d'autorisations

Le module principal PermissionController contient les règles de confidentialité et l'UI liées à l'octroi et à la gestion des autorisations (par exemple, les règles et l'UI pour accorder et gérer les autorisations).

À propos de PermissionController

Le module PermissionController gère l'UI, la logique et les rôles liés aux autorisations pour autoriser l'accès des applications à des fins spécifiques. Il contrôle les éléments suivants :

  • Attribution d'autorisations d'exécution (y compris aux applications système)
  • Gestion des autorisations d'exécution (y compris le regroupement des autorisations)
  • Suivi de l'utilisation des autorisations d'exécution
  • Rôles

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

Sous Android 10, l'application Installateur de paquets est divisée en sections pour permettre la mise à jour de la logique d'autorisations. En tant que module de ligne principale pouvant être mis à jour, PermissionController :

  • N'interagit avec le framework que via @SystemApi stable (pas d'utilisation de l'API @hide).
  • Gère les intents liés aux autorisations avec une priorité supérieure à 0.
  • Fournit un mécanisme permettant aux OEM de personnaliser la thématisation.
  • Fournit des services auxquels le système et les applications peuvent se lier, y compris la gestion des rôles, la révocation d'autorisations et des informations d'autorisation de base (pour les paramètres).
  • Prise en charge de la révocation automatique des applications inutilisées (nouveauté d'Android 11).

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

Révocation automatique des autorisations 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 longue période. La révocation automatique est activée par défaut pour les applications ciblant le SDK 30 ou version ultérieure, et désactivée par défaut pour les applications ciblant le SDK 29 ou version antérieure. 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 fixes par stratégie et par système, ainsi que les autorisations accordées par défaut ou par rôle. Pour en savoir plus, consultez la section Réinitialiser automatiquement les autorisations des applications inutilisées.

Format du package

Le format du module PermissionController diffère d'une version à l'autre.

  • Sous Android 11 ou version ultérieure, le module PermissionController est au format APEX et peut être mis à jour. 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 d'autorisation est déplacé de packages/apps/PermissionController (projet platform/packages/apps/PackageInstaller) et de frameworks/base/apex/permission (il s'agit d'un sous-répertoire du projet frameworks/base).

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

  • Fichiers provenant 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 de 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 à partir de 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 de superpositions de ressources d'exécution (RROS).