Indicateurs de confidentialité

Les autorisations d'exécution dans Android 6 et versions ultérieures permettent aux utilisateurs de contrôler quand l'audio du micro ou la vidéo de la caméra d'un appareil peuvent être enregistrés. Avant qu'une application puisse enregistrer, un utilisateur doit lui accorder ou lui refuser l'autorisation via une boîte de dialogue présentée par le système.

Android 12 offre aux utilisateurs une transparence en affichant des indicateurs lorsqu'une application utilise une source de données privée via les autorisations d'app-op de l'appareil photo et du micro. Les enregistrements app-ops accèdent aux API protégées par des autorisations d'exécution.

App-op suit à la fois l'état d'activité et le nombre d'appels d'API individuels, et interagit avec les indicateurs de micro et d'appareil photo dans Android 12 pour montrer aux utilisateurs quand les applications ont accédé aux données audio et de l'appareil photo sur leurs appareils. Lorsque les utilisateurs cliquent sur les indicateurs de micro ou d'appareil photo, ils voient quelles applications ont accédé à leurs données. Cette fonctionnalité est obligatoire pour tous les OEM.

Exigences de visibilité des indicateurs

Voici les exigences concernant les indicateurs de micro et d'appareil photo sur les appareils équipés d'Android 12 ou version ultérieure :

  • Les indicateurs doivent apparaître dans la barre d'état et conserver la priorité visuelle la plus élevée (par exemple, en étant placés tout à droite en haut de l'écran).
  • Les indicateurs doivent être placés de manière cohérente au même endroit et ne doivent pas être bloqués par une application lors de son lancement.
  • Les deux indicateurs doivent être de couleur verte (ou d'une nuance de vert).
  • Lorsque l'utilisateur clique sur un ou plusieurs indicateurs, une notification d'affordance d'attribution d'application doit s'afficher et effectuer les actions suivantes :
    • Affiche le nom de l'application qui utilise le micro et/ou la caméra
    • Affiche le nom de l'application qui a utilisé le micro et/ou l'appareil photo au cours des 15 dernières secondes.
    • Redirige les utilisateurs vers la page des autorisations de l'application dans Paramètres

Utilisation et fonctionnalités

Dans Android 12, l'UI fait la distinction entre les utilisations en cours et les utilisations récentes. Les utilisations sont considérées comme actives si elles sont marquées comme en cours d'exécution par le système ou si elles datent de moins de cinq secondes.

  • Les icônes de la barre d'état s'affichent chaque fois qu'une application a un accès continu au micro ou à l'appareil photo, qui sont des fonctionnalités sensibles pour l'utilisateur.
  • Les utilisateurs peuvent cliquer sur ces icônes pour voir quelles applications accèdent au micro, à l'appareil photo ou aux deux.

Indicateurs d'utilisation du micro et de la caméra montrant que l'accès est actif

Figure 1 : Indicateurs d'utilisation du micro et de la caméra montrant l'accès actif (en haut à droite)

L'accès est considéré comme actif tant que les indicateurs sont affichés. Une icône s'affiche d'abord, puis se transforme en point qui reste visible jusqu'à ce que l'application soit fermée ou masquée.

Lorsqu'un utilisateur ouvre les réglages rapides et appuie sur les indicateurs, une boîte de dialogue s'affiche pour indiquer si l'application utilise l'appareil photo, le micro ou les deux.

Indicateurs d'accès actif et récent, et indication de l'appareil utilisé (caméra ou micro)

Figure 2. Indicateurs d'accès actif et récent

L'image de la Figure 2 montre des indicateurs d'accès actifs lorsque des données ont été consultées au cours des cinq dernières secondes par une application en cours d'exécution.

Les indicateurs d'accès récent indiquent qu'une application a accédé à des données au cours des 15 dernières secondes, mais qu'elle n'est pas active. Toutes les applications actives s'affichent dans la boîte de dialogue, mais une seule application est indiquée comme source de l'accès récent, même si plusieurs applications ont accédé aux données au cours des 15 secondes précédentes. La vue d'accès reste figée jusqu'à ce que l'utilisateur ferme la boîte de dialogue de notification.

Fournir et activer

La classe PermissionManager fournit une méthode permettant de remplir la boîte de dialogue, qui réside dans l'interface utilisateur du système.

  • L'UI système réagit à un changement de configuration de l'appareil : privacy/mic_camera_indicators_enabled.
  • Ce changement est nécessaire, car il existe deux véhicules de livraison distincts, dans cet ordre :
    1. Diffuser
    2. Activer
  • L'UI système ne doit pas planter si la méthode dans PermissionManager ne peut pas fournir les données nécessaires.

Processus

La fonctionnalité d'indicateur d'autorisation comporte trois parties principales :

  • Les applications
  • Indicateurs (gérés par SystemUI)
  • Un moyen de déterminer quelles applications utilisent les données

PermissionController fournit le mécanisme permettant de déterminer quelles applications utilisent des données. SystemUI écoute les applications qui utilisent des données privées. SystemUI affiche une icône dans la barre de navigation supérieure qui correspond aux autorisations utilisées. L'élément PermissionController affiche des données sur les utilisations lorsqu'un utilisateur clique sur une icône.

Processus pour les fonctions d'indicateur d'autorisation

Figure 3. Composants système et flux de transitions (UI)

Les transitions numérotées de la figure 3 sont décrites ci-dessous :

1 : Une application demande des données privées au système.

2 : Le système vérifie les autorisations. Si les autorisations sont accordées, le système en informe le fournisseur de données et note l'utilisation dans app-ops.

3 Le fournisseur de données fournit des données à l'application.

4-5 L'utilisateur clique sur les icônes. L'UI système demande des données à PermissionManager et présente la boîte de dialogue à l'utilisateur.

Détails du processus

  1. Les applications utilisent le micro et la caméra pour les appels AppOpsManager.startOp, stopOp et/ou noteOp. Cela crée des enregistrements app-op dans le serveur système.
  2. L'UI système écoute les nouvelles app-ops à l'aide des écouteurs AppOpsManager.OnOpActiveChangedInternalListener et OnOpNotedListener. Lorsqu'une nouvelle utilisation est détectée (par un appel à startOp ou noteOp), l'UI système vérifie que l'utilisation est effectuée par une application système.
  3. Si l'interface utilisateur du système vérifie l'utilisation des applications système et que l'utilisation concerne le micro, elle vérifie si le micro est coupé.
  4. Si l'interface utilisateur du système vérifie l'utilisation d'une application non système (et, pour l'utilisation du micro, que le micro n'est pas coupé ; pour l'utilisation de l'appareil photo, que l'appareil photo est activé), elle affiche une icône reflétant cette utilisation.

Si l'interface utilisateur du système reçoit un noteOp sans durée, elle affiche l'icône pendant au moins cinq secondes. Dans le cas contraire, l'icône s'affiche jusqu'à ce qu'elle reçoive un stopOp ou pendant cinq secondes, selon la durée la plus longue. Lorsque l'utilisateur clique sur une icône, il déclenche une intention qui accède à PermissionController pour démarrer la boîte de dialogue.

PermissionController charge toute l'utilisation récente du micro et de la caméra. Il vérifie si l'un d'eux est en cours d'exécution ou l'a été au cours de la période définie par l'interface utilisateur du système. Si une correspondance est trouvée, le nom de l'application qui a utilisé l'autorisation et les autorisations utilisées par l'application s'affichent.

En raison de ce changement dans Android 12 et versions ultérieures, certaines applications doivent modifier leur comportement ou implémenter un comportement spécial.

La téléphonie doit implémenter l'utilisation des autorisations (pour tenir compte de la pile de micro distincte utilisée dans les appels téléphoniques), tout en fonctionnant avec l'appli Recherche Google Android (AGSA) et les services mobiles Google (GMS).