Autorisations Android

Les autorisations Android fournissent des contrôles qui augmentent la sensibilisation des utilisateurs et limitent l'accès d'une application aux données sensibles. Configuration des autorisations sur Android 8.0 et inférieur comprend une liste blanche, sans laquelle des applications privilégiées sont désactivées, même si elles sont dans le priv-app chemin. Sur Android 9 et versions ultérieures, un appareil qui essaie d'utiliser des applications qui ne sont pas correctement répertoriées dans la liste blanche ne démarrera pas.

Les protections accrues contre potentiellement nuisibles Applications (PHA) améliorer

  • Transparence du 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 du package et autorisation

Dans Android 9 et inférieur, le package d' installation et des fonctionnalités de contrôle d'autorisation ont été contenues dans le PackageInstaller package ( //packages/apps/PackageInstaller ). Dans Android 10 et plus, la fonctionnalité de contrôle d'autorisation réside dans un paquet séparé, PermissionController ( //packages/apps/PermissionController ). La figure 1 illustre où les deux paquets se trouvent dans Android 10.

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

Listes blanches et accès

Dans Android 6.0 et plus, l' accès des applications de demande d'autorisations dangereuses à 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 Devez - vous des applications explicitement dans les whitelist privilégiés fichiers XML de configuration du système dans le fichier /etc/permissions répertoire. Dans Android 9 et plus, les autorisations doivent être privilégiés dans la liste blanche ou le périphérique ne peut pas démarrer.

Pour limiter la visibilité de l' API interne et empêcher des applications d'accéder accidentellement des bibliothèques de la plate - forme, Android 7.0 introduit des espaces de noms pour les bibliothèques autochtones . 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.

A partir de Android 10 applications doit avoir les autorisations de signature et le consentement de l' utilisateur pour accéder au contenu de l' écran d'un périphérique . Des applications privilégiées qui comptent sur la fonctionnalité de capture silencieuse, telles que la prise une capture d' écran, doivent utiliser la MediaProjection classe à la place.

Transparence et confidentialité

Dans Android 6.0 et versions ultérieures, une adresse MAC d'usine de périphérique est protégée contre l'accès par les fournisseurs de services Wi-Fi et les analyseurs de paquets. Des restrictions supplémentaires comme des applications 10 applications limites d'accéder aux identifiants de périphériques immuables (ID) à moins qu'ils ne liste blanche pour les autorisations privilégiées . (La connectivité section présente une discussion connexe sur les identificateurs de périphérique , comme cela a un impact transporteurs.)

Sur Android 9 et versions antérieures, les utilisateurs font des choix persistants lorsqu'ils accordent l'accès à la localisation aux applications. A partir de Android 10, une autorisations emplacement tristate fonctionnalité permet aux utilisateurs trois options pour permettre l' accès de l' application à l'emplacement 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 simplifiées

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

  • Capacités ambiantes pour les services lancés par init conserve tous les aspects de la configuration du service dans un seul .rc fichier. Lorsque la configuration des capacités pour les services non lancés par init , les capacités configure le système de fichiers à l' aide fs_config.c à la place.
  • 7.x Android et inférieur étendre le mécanisme ID Android (SIDA), utilisant un dispositif spécifique android_filesystem_config.h fichier pour spécifier les capacités du système de fichiers et / ou périphérique fabricant AIDs personnalisés. Android 8.0 et supporte plus une nouvelle méthode pour étendre les capacités système de fichiers .
  • Dans les applications 8.0, les commandes de manipulation USB déplacés hors de spécifiques à l' appareil d' init des scripts (une substitution pour les couches HAL) et en un démon USB natif. L' USB HAL interface doit être implémentée sur chaque lancement de l' appareil sur Android 8.0 et supérieur.