Android offre aux utilisateurs une transparence en affichant des indicateurs de confidentialité pour les types d'accès suivants :
Accès à la caméra et au micro L'indicateur s'affiche lorsqu'une application utilise une source de données privées via les autorisations d'opération d'application de la caméra et du micro app-op. Pour connaître l'exigence CDD associée, consultez la section 2.2.5. Modèle de sécurité.
Accès à la position L'indicateur s'affiche lorsqu'une application accède à la position de l'appareil. Pour connaître l'exigence CDD associée, consultez la section 9.8.8. Position.
Les utilisateurs appuient sur un indicateur pour voir quelles applications ont accédé à leurs données.
Utilisations actives et récentes
L'interface utilisateur Android fait la distinction entre les utilisations en cours et les utilisations récentes :
Dans Android 17 ou version ultérieure, les utilisations de la position sont considérées comme actives si elles sont marquées par le système comme étant en cours d'exécution ou si elles datent de moins de 10 secondes. Pour le point de localisation, l'accès est considéré comme actif si l'application non système est en cours d'exécution au premier plan.
Dans Android 12 ou version ultérieure, les utilisations du micro et de la caméra sont considérées comme actives si elles sont marquées par le système comme étant en cours d'exécution 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, à la caméra ou à la position, qui sont des données sensibles pour l'utilisateur. Les utilisateurs peuvent appuyer sur ces icônes et voir quelles applications accèdent au micro, à la caméra, à la position ou à une combinaison de ces éléments. Voici un exemple d'indicateurs d'utilisation :
Figure 1. Indicateurs d'utilisation indiquant un accès actif (en haut à droite).
L'accès est considéré comme actif tant que les indicateurs s'affichent. Une icône s'affiche d'abord, puis se transforme en un point qui persiste jusqu'à ce que l'application soit ignorée ou fermée. Lorsqu'un utilisateur ouvre les réglages rapides, puis appuie sur les indicateurs, une boîte de dialogue s'affiche pour indiquer si l'application utilise le micro, la caméra, la position ou une combinaison de ces éléments.
La figure 2 illustre les indicateurs d'accès actif lorsque des données ont été consultées dans la fenêtre de temps active par une application en cours d'exécution.
Figure 2. Indicateurs d'accès actifs et récents.
Les indicateurs d'accès récents indiquent qu'une application a accédé à des données au cours des 15 secondes précédentes (ou 20 secondes pour les données de localisation), mais que l'application 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 d'accès récent, même lorsque plusieurs applications ont accédé à des données au cours d'une période de 15 ou 20 secondes. Toutes les applications qui ont accédé aux données de localisation dans la fenêtre de temps active ou récente sont affichées dans la boîte de dialogue. La vue d'accès reste affichée jusqu'à ce que l'utilisateur ignore la boîte de dialogue de notification.
Livraison et activation
La classe PermissionManager fournit une méthode pour remplir la boîte de dialogue (qui réside dans l'UI du système). L'UI du système réagit au commutateur de configuration de l'appareil privacy/mic_camera_indicators_enabled. Ce commutateur est nécessaire, car il existe deux modes de livraison distincts : (1) Livraison, puis (2) Activation.
Flux de processus
La fonctionnalité d'indicateur d'autorisation comporte trois parties principales :
- Les applications
- Les indicateurs (gérés par l'UI du système)
- Un moyen de déterminer quelles applications utilisent les données
PermissionController fournit le mécanisme permettant de déterminer quelles applications utilisent les données. L'UI du système écoute les applications qui utilisent des données privées. L'UI du système affiche une icône dans la barre de navigation supérieure qui correspond aux autorisations utilisées. PermissionController affiche des données sur les utilisations lorsqu'un utilisateur clique sur une icône.
Figure 3. Composants système et flux de transitions (UI).
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 avertit le fournisseur de données et note l'utilisation dans les opérations d'application.
3 Le fournisseur de données fournit des données à l'application.
4-5 L'utilisateur clique sur les icônes. L'UI du système demande des données à
PermissionManageret présente la boîte de dialogue à l'utilisateur.
Détails du processus
Les opérations d'application enregistrent les accès aux API protégées par des autorisations d'exécution, en suivant l'état de l'activité et le nombre d'appels d'API individuels, et en interagissant avec la caméra, le micro et les indicateurs pour montrer aux utilisateurs quand les applications ont accédé aux données audio et de la caméra sur leurs appareils.
Les applications utilisent le micro, la caméra ou la position en appelant
AppOpsManager.startOp,stopOpounoteOp. Cela crée des enregistrements d'opérations d'application sur le serveur système. Dans la version 17 et ultérieures, l'indicateur de position utilise également ces enregistrements d'opérations d'application.L'UI du système écoute les nouvelles opérations d'application à l'aide des écouteurs
AppOpsManager.OnOpActiveChangedInternalListeneretOnOpNotedListener. Lorsqu'une nouvelle utilisation est reçue (via un appel àstartOpounoteOp), l'UI du système vérifie que l'utilisation provient d'une application système :Si l'UI du système vérifie l'utilisation de l'application système et que l'utilisation concerne le micro, l'UI du système vérifie si le micro est désactivé.
Si l'UI 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 désactivé ; pour l'utilisation de l'appareil photo, que l'appareil photo est activé), elle affiche une icône reflétant cette utilisation.
Si l'UI du système vérifie l'utilisation d'une application non système, elle affiche une icône reflétant cette utilisation, à condition que les commutateurs pertinents soient actifs :
- Pour le micro : le micro n'est pas désactivé.
- Pour la caméra : la caméra est activée.
- Pour la position : l'application est en cours d'exécution au premier plan.
Si l'UI du système reçoit un noteOp, qui n'a pas de durée, elle affiche l'icône pendant au moins 5 secondes (10 secondes pour la position). Sinon, l'icône s'affiche jusqu'à ce qu'elle reçoive stopOp ou pendant la durée minimale de 5 ou 10 secondes, selon la durée la plus longue. Lorsque l'utilisateur clique sur une icône, une intent est lancée et est envoyée à PermissionController pour démarrer la boîte de dialogue.
PermissionController charge toutes les utilisations récentes du micro, de la caméra et de la position. Il vérifie si l'un d'eux est en cours d'exécution ou s'il a été exécuté dans le délai défini par l'UI du système (15 secondes pour le micro ou l'appareil photo, 20 secondes pour la position). S'il trouve une correspondance, il affiche le nom de l'application et les autorisations utilisées.
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 utilisant l'application Android Recherche Google (AGSA) et GMS.