Autorisations Android

Les autorisations Android offrent des commandes qui sensibilisent davantage les utilisateurs et limitent l'accès d'une application aux données sensibles. La configuration des autorisations sous Android 8.0 et versions antérieures inclut une liste d'autorisation sans laquelle les applications privilégiées sont désactivées, même si elles se trouvent dans le chemin d'accès priv-app. Sous Android 9 et versions ultérieures, un appareil qui tente d'utiliser des applications qui ne sont pas correctement ajoutées à la liste d'autorisation ne démarre pas.

Android 10 a introduit le concept de rôle, un nom unique au sein du système associé à certaines exigences et certains privilèges. Attribuez des rôles aux applications pour leur accorder des autorisations dans un but spécifique et configurez les rôles par défaut à l'aide des ressources de configuration de la plate-forme.

Les protections renforcées contre les applications potentiellement dangereuses (PHA) améliorent les aspects suivants :

  • Transparence du comportement des applications potentiellement dangereuses.
  • Contrôle par l'utilisateur du comportement des applications.
  • Discrétion des développeurs d'applications lors de l'utilisation de données privées, protégées par des autorisations.

Installation et autorisation de packages

Sous Android 9 et versions antérieures, les fonctionnalités de contrôle de l'installation et des autorisations de packages étaient contenues dans le PackageInstaller package (//packages/apps/PackageInstaller). Sous Android 10 et versions ultérieures, la fonctionnalité de contrôle des autorisations réside dans un package distinct, PermissionController (//packages/apps/PermissionController). La figure 1 illustre l'emplacement des deux packages sous Android 10.

Séparation des fonctionnalités d'installation de packages et de contrôle des autorisations pour les applications système et celles installées par l'utilisateur

Figure 1. Fonctionnalités de contrôle de l'installation et des autorisations de packages sous Android 10

Listes d'autorisation et accès

Sous Android 6.0 et versions ultérieures, les applications demandent l'accès à des autorisations dangereuses lors de l'exécution . Android 10 ajoute des autorisations d'exécution pour la reconnaissance d'activité (RA), qui invitent l'utilisateur à modifier ou à autoriser les autorisations dangereuses.

Android 8.0 vous obligeait à ajouter explicitement les applications privilégiées à la liste d'autorisation dans les fichiers XML de configuration du système du répertoire /etc/permissions. Sous Android 9 et versions ultérieures, les autorisations privilégiées doivent être ajoutées à la liste d'autorisation , sinon l'appareil ne peut pas démarrer.

Pour limiter la visibilité des API internes et empêcher les applications d'accéder accidentellement aux bibliothèques de la plate-forme, Android 7.0 a introduit les espaces de noms pour les bibliothèques natives. Cela sépare les bibliothèques système des bibliothèques d'applications, et les fabricants d'appareils peuvent ajouter leurs propres bibliothèques natives.

À partir d'Android 10, les applications doivent disposer à la fois des autorisations de signature et du consentement utilisateur pour accéder au contenu de l'écran d'un appareil. Les applications privilégiées qui s'appuient sur la fonctionnalité de capture silencieuse, comme la capture d'écran, doivent plutôt utiliser la classe MediaProjection.

Android 15 vous oblige à ajouter explicitement à la liste d'autorisation les autorisations de signature de la plate-forme demandées par les applications non système ou nouvellement demandées par les mises à jour des applications système, dans les fichiers XML de configuration du système du /etc/permissions répertoire.

Transparence et confidentialité

Sous Android 6.0 et versions ultérieures, une adresse MAC d'usine d'appareil est protégée contre l'accès par les fournisseurs de services Wi-Fi et les analyseurs de paquets. Des restrictions supplémentaires à partir d'Android 10 limitent l'accès des applications aux identifiants (ID) d'appareil immuables, sauf si elles sont ajoutées à la liste d'autorisation pour les autorisations privilégiées. (La section Connectivité fournit une discussion connexe sur les identifiants d'appareil, car cela a un impact sur les opérateurs.)

Sous Android 9 et versions antérieures, les utilisateurs font des choix persistants lorsqu'ils accordent l'accès à la position aux applications. À partir d'Android 10, une fonctionnalité d'autorisations de localisation à trois états offre aux utilisateurs trois options pour autoriser l'accès d'une application à la position d'un appareil. Ces exigences d'autorisation sont appliquées aux applications sous Android 10, quel que soit le SDK cible.

Configurer les autorisations pour d'autres fonctionnalités de transparence et de confidentialité à partir d'Android 10

Configurations simplifiées

Les configurations d'autorisations ont été simplifiées pour Android 6.0 et versions ultérieures.

  • Les fonctionnalités ambiantes pour les services lancés par init conservent tous les aspects de la configuration de service dans un seul fichier .rc. Lorsque vous définissez des fonctionnalités pour des services non lancés par init, configurez plutôt les fonctionnalités du système de fichiers à l'aide de fs_config.c.
  • Android 7.x et versions antérieures étendent le mécanisme des ID Android (AID), à l'aide d'un fichier android_filesystem_config.h spécifique à l'appareil pour spécifier les fonctionnalités du système de fichiers et/ou les AID personnalisés du fabricant de l'appareil. Android 8.0 et versions ultérieures sont compatibles avec une nouvelle méthode d'extension des fonctionnalités du système de fichiers.
  • Sous Android 8.0, la gestion des commandes USB a été déplacée des scripts init spécifiques à l'appareil (qui remplacent les couches HAL) vers un démon USB natif. L'interface HAL USB doit être implémentée sur tous les appareils lancés sous Android 8.0 et versions ultérieures.