Le module Mainline 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 l'octroi et la gestion des autorisations).
À propos de PermissionController
Le module PermissionController gère l'UI, la logique et les rôles liés aux autorisations pour permettre aux applications d'accéder à des fins spécifiques. Il contrôle les éléments suivants :
- Accorder des 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 dans le module pour rendre Role
entièrement modulaire.
Dans Android 10, l'application Programme d'installation de packages 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 l'API @SystemApi stable (aucune utilisation de l'API @hide).
- Gère les intents liés 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, y compris la gestion des rôles, la révocation des autorisations et les informations de base sur les autorisations (pour les paramètres).
- Compatible avec la révocation automatique des autorisations pour les applications inutilisées (nouveauté d'Android 11).
Dans Android 9, 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 longue période. La révocation automatique est activée par défaut pour les applications ciblant le SDK 30 ou une version ultérieure, et désactivée par défaut pour les applications ciblant le SDK 29 ou une version antérieure. Lorsqu'elle est activée, la révocation automatique affecte toutes les autorisations d'exécution, mais exempte toutes les autorisations accordées au préalable, y compris les autorisations fixes au niveau de la stratégie et du système, ainsi que les autorisations accordées par défaut ou par rôle. Pour en savoir plus, consultez Réinitialiser automatiquement les autorisations des applications inutilisées.
Format du package
Le format du module PermissionController diffère selon les versions.
Dans 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
.Dans Android 10, le module PermissionController est au format APK et ne peut pas être 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 frameworks/base/apex/permission
(sous-répertoire du projet frameworks/base
).
Voici la nouvelle structure de projet pour packages/modules/Permission
:
- 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 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'UI des autorisations (couleurs, marges, polices et éléments graphiques) à l'aide des superpositions de ressources d'exécution (RRO).