Autorisations Android

Les autorisations Android fournissent des contrôles qui augmentent la sensibilisation de l'utilisateur et limitent l'accès d'une application aux données sensibles. La configuration des autorisations sur Android 8.0 et les versions antérieures inclut la liste blanche, sans laquelle les applications privilégiées sont désactivées, même si elles se trouvent dans le chemin priv-app privée. Sur Android 9 et versions ultérieures, un appareil qui essaie d'utiliser des applications qui ne sont pas correctement autorisées 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 privilèges. Attribuez des rôles aux applications pour leur accorder des autorisations dans un but précis et configurez les rôles par défaut à l'aide des ressources de configuration de la plate-forme.

Les protections accrues contre les applications potentiellement dangereuses (PHA) améliorent

  • Transparence sur le comportement potentiellement dangereux des applications.
  • Contrôle de l'utilisateur sur le comportement de l'application.
  • La 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 du package

Dans Android 9 et versions antérieures, les fonctionnalités d'installation de package et de contrôle des autorisations étaient contenues dans le package PackageInstaller ( //packages/apps/PackageInstaller ). Dans 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 dans Android 10.

Séparation des fonctionnalités d'installation de package et de contrôle des autorisations pour les applications système et utilisées par les applications installées par l'utilisateur
Figure 1. Fonctionnalités d'installation de packages et de contrôle des autorisations dans Android 10

Listes d'autorisation et accès

Dans 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 de reconnaissance d'activité (AR), qui invitent l'utilisateur à modifier ou à autoriser des autorisations dangereuses.

Android 8.0 exigeait que vous autorisiez explicitement les applications privilégiées dans les fichiers XML de configuration du système dans le répertoire /etc/permissions . Dans Android 9 et versions ultérieures, les autorisations privilégiées doivent être autorisées ou l'appareil ne peut pas démarrer.

Pour limiter la visibilité de l'API interne 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 de périphériques peuvent ajouter leurs propres bibliothèques natives.

À partir d'Android 10, les applications doivent disposer à la fois des autorisations de signature et du consentement de l'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 prise d'une capture d'écran, doivent utiliser la classe MediaProjection à la place.

Transparence et confidentialité

Dans 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 empêchent les applications d'accéder aux identifiants d'appareil immuables (ID) à moins qu'elles ne soient autorisées à bénéficier d'autorisations privilégiées . (La section Connectivité fournit une discussion connexe sur les identificateurs de périphérique , car cela a un impact sur les opérateurs.)

Sur Android 9 et les versions antérieures, les utilisateurs font des choix persistants lorsqu'ils accordent l'accès à la localisation aux applications. À partir d'Android 10, une fonctionnalité d' autorisations de localisation à trois états offre aux utilisateurs trois options pour autoriser l'accès des applications à la localisation d'un appareil. Ces exigences d'autorisation sont appliquées aux applications dans 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 rationalisées

Les configurations des autorisations ont été rationalisées pour Android 6.0 et supérieur.

  • Les capacités ambiantes pour les services lancés par init conservent tous les aspects de la configuration du service dans un seul fichier .rc . Lors de la définition des capacités pour les services non lancés par init , configurez les capacités du système de fichiers à l'aide de fs_config.c à la place.
  • Android 7.x et les versions antérieures étendent le mécanisme des identifiants Android (AID), en utilisant un fichier android_filesystem_config.h spécifique à l'appareil pour spécifier les capacités du système de fichiers et/ou les AID personnalisés du fabricant de l'appareil. Android 8.0 et supérieur prend en charge une nouvelle méthode pour étendre les capacités du système de fichiers .
  • Dans Android 8.0, la gestion des commandes USB est sortie des scripts d' init spécifiques à l'appareil (une substitution pour les couches HAL) et dans un démon USB natif. L'interface USB HAL doit être implémentée sur chaque appareil lancé sur Android 8.0 et supérieur.