Datenschutzindikatoren

Laufzeitberechtigungen in Android 6 und höher geben Benutzern die Kontrolle darüber, wann sie die Aufzeichnung von Audio vom Mikrofon eines Geräts oder Video von der Kamera eines Geräts zulassen. Bevor eine App aufzeichnen kann, muss ein Benutzer ihr über einen vom System angezeigten Dialog entweder die Berechtigung erteilen oder verweigern.

Android 12 bietet Benutzern Transparenz, indem es über die Kameras und Mikrofon -App-Op-Berechtigungen Indikatoren anzeigt, wenn eine App eine private Datenquelle verwendet. App-Ops zeichnen Zugriffe auf durch Laufzeitberechtigungen geschützte APIs auf.

App-op verfolgt sowohl den Aktivitätsstatus als auch die Anzahl einzelner API-Aufrufe und interagiert mit den Mikrofon- und Kameraanzeigen in Android 12, um Benutzern anzuzeigen, wenn Apps auf Audio- und Kameradaten auf ihren Geräten zugegriffen haben. Wenn Benutzer auf die Mikrofon- oder Kameraanzeigen klicken, sehen sie, welche Apps auf ihre Daten zugegriffen haben. Diese Funktion ist für alle OEMs obligatorisch.

Anforderungen an die Sichtbarkeit des Indikators

Dies sind die Anforderungen für Mikrofon- und Kameraanzeigen auf Geräten mit Android 12 oder höher:

  • Die Indikatoren müssen in der Statusleiste erscheinen und die höchste visuelle Priorität behalten (z. B. ganz rechts in der oberen rechten Ecke).
  • Die Anzeigen müssen stets an der gleichen Position angebracht sein und dürfen beim Start einer App nicht blockiert werden.
  • Beide Indikatoren müssen eine grüne Farbe (oder eine Variation von Grün) haben.
  • Wenn Sie auf einen oder beide Indikatoren klicken, muss eine Benachrichtigung über die Angebotszuordnung der Anwendung ausgegeben werden, die Folgendes bewirkt:
    • Zeigt den Namen der App an, die das Mikrofon und (oder) die Kamera verwendet
    • Zeigt den Namen der App an, die in den letzten 15 Sekunden das Mikrofon und (oder) die Kamera verwendet hat
    • Leitet Benutzer zur App-Berechtigungsseite in den Einstellungen

Nutzung und Funktionen

In Android 12 unterscheidet die Benutzeroberfläche zwischen laufenden und aktuellen Nutzungen. Nutzungen gelten als „aktiv“, wenn sie entweder vom System als „laufend“ markiert sind oder weniger als 5 Sekunden alt sind.

  • Symbole in der Statusleiste werden jedes Mal angezeigt, wenn eine App fortlaufend auf ein benutzerempfindliches Mikrofon oder eine Kamera zugreift.
  • Benutzer können auf diese Symbole klicken und sehen, welche Apps auf das Mikrofon, die Kamera oder beides zugreifen.

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

Abbildung 1. Betriebsanzeigen für Mikrofon und Kamera, die den aktiven Zugriff anzeigen (obere rechte Ecke)

Der Zugriff gilt so lange als aktiv, wie die Indikatoren anzeigen. Zuerst wird ein Symbol angezeigt, das dann in einen Punkt übergeht, der bestehen bleibt, bis die App entweder geschlossen oder geschlossen wird.

Wenn ein Benutzer auf die Indikatoren tippt, wird ein Dialogfeld geöffnet, das anzeigt, dass eine App derzeit die Kamera, das Mikrofon oder beides verwendet.

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

Abbildung 2. Indikatoren für aktive und aktuelle Zugriffe

Das Bild in Abbildung 2 zeigt aktive Zugriffsindikatoren, wenn in den letzten 5 Sekunden von einer laufenden App auf Daten zugegriffen wurde.

Aktuelle Zugriffsindikatoren zeigen, dass eine App in den letzten 15 Sekunden auf Daten zugegriffen hat, die App jedoch nicht aktiv ist. Alle aktiven Apps werden im Dialog angezeigt, aber nur eine App wird als Quelle des letzten Zugriffs angezeigt, selbst wenn mehr als eine App innerhalb eines Zeitrahmens von 15 Sekunden auf Daten zugegriffen hat. Die Zugriffsansicht bleibt eingefroren, bis der Benutzer den Benachrichtigungsdialog schließt.

Liefern und aktivieren

Die PermissionManager Klasse stellt eine Methode zum Füllen des Dialogfelds bereit, das sich in der Systembenutzeroberfläche befindet.

  • Die Systembenutzeroberfläche reagiert auf einen Gerätekonfigurationswechsel: privacy/mic_camera_indicators_enabled .
  • Der Wechsel ist notwendig, da es zwei separate Lieferfahrzeuge gibt, in dieser Reihenfolge:
    1. Liefern.
    2. Aktivieren.
  • Die Systembenutzeroberfläche darf nicht abstürzen, wenn die Methode in PermissionManager die erforderlichen Daten nicht bereitstellen kann.

Prozessablauf

Die Funktionalität des Berechtigungsindikators besteht aus drei Hauptteilen:

  • Die Apps
  • Die Indikatoren (verwaltet von SystemUI)
  • Eine Möglichkeit, festzustellen, welche Apps die Daten verwenden

Der PermissionController stellt den Mechanismus bereit, um zu bestimmen, welche Apps Daten verwenden. SystemUI wartet auf Apps, die private Daten verwenden. Die SystemUI zeigt in der oberen Navigationsleiste ein Symbol an, das den verwendeten Berechtigungen entspricht. Der PermissionController zeigt Daten zu Nutzungen an, wenn ein Benutzer auf ein Symbol klickt.

Process flow for Permission Indicator functions

Abbildung 3. Ablauf von Systemkomponenten und (UI-)Übergängen

Die nummerierten Übergänge in Abbildung 3 werden im Folgenden beschrieben:

1- Eine App fordert private Daten vom System an.

2- Das System prüft die Berechtigungen. Wenn die Berechtigungen zulässig sind, benachrichtigt das System den Datenanbieter und vermerkt die Nutzung in App-Ops

3- Der Datenanbieter gibt Daten an die App weiter.

4-5 Der Benutzer klickt auf die Symbole. Die System-Benutzeroberfläche fordert Daten vom PermissionManager an und präsentiert dem Benutzer den Dialog.

Prozessdetails

  1. Apps nutzen das Mikrofon und die Kamera und rufen AppOpsManager.startOp , stopOp und (oder) noteOp auf. Dadurch werden App-Op-Datensätze auf dem Systemserver erstellt.
  2. Die System-Benutzeroberfläche wartet mithilfe der Listener AppOpsManager.OnOpActiveChangedInternalListener und OnOpNotedListener auf neue App-Ops. Wenn eine neue Nutzung eingeht (durch einen Aufruf von startOp oder noteOp ), überprüft die System-Benutzeroberfläche, ob die Nutzung durch eine System-App erfolgt.
  3. Wenn die System-Benutzeroberfläche die System-App-Nutzung überprüft und die Verwendung für das Mikrofon erfolgt, prüft die System-Benutzeroberfläche, ob das Mikrofon stummgeschaltet ist.
  4. Wenn die System-Benutzeroberfläche die Verwendung von Nicht-System-Apps überprüft (und bei Verwendung des Mikrofons überprüft, ob das Mikrofon nicht stummgeschaltet ist; bei Verwendung der Kamera, ob die Kamera eingeschaltet ist), wird ein Symbol angezeigt, das diese Verwendung widerspiegelt.

Wenn die System-Benutzeroberfläche einen noteOp empfängt, der keine Dauer hat, wird das Symbol mindestens 5 Sekunden lang angezeigt. Andernfalls wird das Symbol entweder angezeigt, bis ein stopOp empfangen wird, oder für 5 Sekunden, je nachdem, welcher Zeitraum länger ist. Der Benutzer, der auf ein Symbol klickt, initiiert eine Absicht, die zum PermissionController geht, um den Dialog zu starten.

Der PermissionController lädt alle aktuellen Nutzungen für Mikrofon und Kamera. Es prüft, ob einige davon gerade ausgeführt werden oder innerhalb des von der System-Benutzeroberfläche festgelegten Zeitrahmens ausgeführt wurden. Wenn eine Übereinstimmung gefunden wird, werden der Name der App, die die Berechtigung verwendet hat, und die von der App verwendeten Berechtigungen angezeigt.

Aufgrund dieser Änderung in Android 12 und höher müssen einige Apps entweder ihr Verhalten ändern oder ein spezielles Verhalten implementieren.

Die Telefonie muss die Berechtigungsnutzung implementieren (um den separaten Mikrofonstapel zu berücksichtigen, der bei Telefonanrufen verwendet wird), während sie mit der Android Google Search App (AGSA) und Google Mobile Services (GMS) arbeitet.