Le module principal PermissionController contient des règles de confidentialité et le UI liée à l'attribution et à la gestion des autorisations (par exemple, les stratégies et UI permettant d'accorder et de 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. Elle contrôle les éléments suivants:
- Accorder des autorisations d'exécution (y compris pour les 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, le framework et le serveur système
classes pour Role
sont déplacés dans le module pour rendre Role
entièrement modulaire.
Dans Android 10, le programme d'installation de packages est divisé en sections pour permettre la mise à jour de la logique des autorisations. En tant que Module principal pouvant être mis à jour, PermissionController:
- N'interagit avec le framework que via une API @SystemApi stable (aucune utilisation de l'API @hide).
- Gère les intents liés aux autorisations avec une priorité > 0.
- Il présente un mécanisme permettant aux OEM de personnaliser les thèmes.
- Fournit des services auxquels le système et les applications peuvent être liés, y compris la gestion des rôles, la révocation des autorisations et les informations de base sur les autorisations (par Paramètres).
- Prise en charge de la révocation automatique pour les applications inutilisées (nouveau dans Android) 11).
Sous Android9, le contrôle des autorisations fait partie
com.android.packageinstaller
Révocation automatique pour les applis 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. Les applis ciblant le SDK 30 ou version ultérieure seront automatiquement révoquées activées par défaut, tandis que les applications ciblant le SDK 29 ou une version antérieure sont automatiquement révoquées. désactivé par défaut. Lorsque cette option est activée, la révocation automatique affecte tous les environnements d'exécution autorisations, mais exclut toutes les autorisations pré-accordées, y compris les autorisations les autorisations fixes par le système et les autorisations accordées par défaut ou par rôle. Pour consultez Réinitialiser automatiquement les autorisations applications.
Format du package
Le format du module PermissionController diffère selon les versions.
Sous Android 11 ou version ultérieure, le module PermissionController se trouve dans 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 n'est pas pouvant être mises à jour. Le nom du package est
com.google.android.permissioncontroller
.
Limite du module
Dans Android 12,
le code du module est retiré de packages/apps/PermissionController
(le projet platform/packages/apps/PackageInstaller
) et
frameworks/base/apex/permission
(il s'agit d'un sous-répertoire du fichier
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 du projet.
Déplacer un correctif depuis les 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 de superpositions de ressources d'exécution (RROS).