Indicateurs de confidentialité

Les autorisations d'exécution dans Android 6 et versions ultérieures permettent aux utilisateurs de contrôler quand ils autorisent l'enregistrement audio du microphone d'un appareil ou vidéo de la caméra d'un appareil. 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 de la transparence en affichant des indicateurs lorsqu'une application utilise une source de données privée via les autorisations d'utilisation des caméras et des microphones. Les App-ops enregistrent les accès aux API protégées par les autorisations d'exécution.

App-op suit à la fois l'état d'activité et le nombre d'appels API individuels, et interagit avec les indicateurs de microphone et de caméra dans Android 12 pour indiquer aux utilisateurs quand les applications ont accédé aux données audio et de caméra sur leurs appareils. Lorsque les utilisateurs cliquent sur les indicateurs du microphone ou de la caméra, 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 relatives aux indicateurs de microphone et de caméra sur les appareils fonctionnant sous 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, situés à l'extrême droite dans le coin supérieur droit).
  • Les indicateurs doivent être systématiquement situés à la même position et ne doivent pas être bloqués par une application lors de son lancement.
  • Les deux indicateurs doivent être de couleur verte (ou une variation de vert).
  • En cliquant sur l'un ou les deux indicateurs , vous devez afficher une notification d'attribution d'application qui effectue les opérations suivantes :
    • Affiche le nom de l'application qui utilise le microphone et (ou) la caméra
    • Affiche le nom de l'application qui a utilisé le microphone et (ou) la caméra au cours des 15 dernières secondes
    • Dirige les utilisateurs vers la page d'autorisation de l'application dans Paramètres

Utilisation et fonctionnalités

Dans Android 12, l’interface utilisateur 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 par le système comme « en cours d’exécution » ou si elles datent de moins de 5 secondes.

  • Les icônes de la barre d'état s'affichent chaque fois qu'une application dispose d'un accès continu au microphone ou à la caméra sensible à l'utilisateur.
  • Les utilisateurs peuvent cliquer sur ces icônes et voir quelles applications accèdent au microphone, à la caméra ou aux deux.

Microphone and camera in-use indicators showing that access is active

Figure 1. Indicateurs d'utilisation du microphone et de la caméra indiquant l'accès actif (coin supérieur droit)

L'accès est considéré comme actif aussi longtemps que les indicateurs le montrent. Une icône s'affiche d'abord, puis se transforme en un point qui persiste jusqu'à ce que l'application soit fermée ou fermée.

Lorsqu'un utilisateur appuie sur les indicateurs, une boîte de dialogue s'affiche, indiquant qu'une application utilise actuellement la caméra, le microphone ou les deux.

Indicators for both active and recent access, and whether the access was from camera or microphone

Figure 2. Indicateurs d'accès actifs et récents

L'image de la figure 2 montre les indicateurs d'accès actif lorsqu'une application en cours d'exécution a accédé aux données au cours des 5 dernières secondes.

Les indicateurs d'accès récents montrent qu'une application a accédé aux données au cours des 15 secondes précédentes, mais que l'application n'est pas active. Toutes les applications actives s'affichent dans la boîte de dialogue, mais une seule application s'affiche comme source d'accès récent, même lorsque plus d'une application a 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.

Livrer et activer

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

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

Flux de processus

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

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

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

Process flow for Permission Indicator functions

Figure 3. Flux de composants du système et de transitions (interface utilisateur)

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 autorisées, le système en informe le fournisseur de données et note l'utilisation dans les applications.

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

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

Détails du processus

  1. Les applications utilisent le microphone et la caméra, en appelant AppOpsManager.startOp , stopOp et (ou) noteOp . Cela crée des enregistrements d'application sur le serveur système.
  2. L’interface utilisateur système écoute les nouvelles opérations d’application à l’aide des écouteurs AppOpsManager.OnOpActiveChangedInternalListener et OnOpNotedListener . Lorsqu'une nouvelle utilisation arrive (via un appel à startOp ou noteOp ), l'interface utilisateur système vérifie que l'utilisation est effectuée par une application système.
  3. Si l’interface utilisateur système vérifie l’utilisation de l’application système et si l’utilisation concerne le microphone, l’interface utilisateur système vérifie si le microphone est désactivé.
  4. Si l'interface utilisateur système vérifie l'utilisation d'applications non système (et, pour l'utilisation du microphone, que le microphone est activé ; pour l'utilisation de la caméra, que la caméra est activée), elle affiche une icône reflétant cette utilisation.

Si l'interface utilisateur système reçoit un noteOp , qui n'a pas de durée, elle affiche l'icône pendant au moins 5 secondes. Sinon, l'icône s'affiche soit jusqu'à ce qu'elle reçoive un stopOp , soit pendant 5 secondes, selon la durée la plus longue. L'utilisateur cliquant sur une icône lance une intention qui va au PermissionController pour démarrer la boîte de dialogue.

Le PermissionController charge toutes les utilisations récentes du microphone et de la caméra. Il vérifie si l’un d’entre eux est en cours d’exécution ou s’est exécuté dans le délai défini par l’interface utilisateur du système. S'il trouve une correspondance, il affiche le nom de l'application qui a utilisé l'autorisation et les autorisations utilisées par l'application.

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

La téléphonie doit mettre en œuvre l'utilisation des autorisations (pour tenir compte de la pile de microphones distincte utilisée dans les appels téléphoniques), tout en travaillant avec l'application Android Google Search (AGSA) et les services mobiles Google (GMS).