Wskaźniki dotyczące prywatności

Uprawnienia w czasie działania w Androidzie 6 i nowszych wersjach dają użytkownikom kontrolę nad tym, kiedy zezwalają na nagrywanie dźwięku z mikrofonu urządzenia lub obrazu z jego aparatu. Zanim aplikacja będzie mogła nagrywać, użytkownik musi przyznać jej uprawnienia lub odmówić ich przyznania w oknie dialogowym wyświetlanym przez system.

Android 12 zapewnia użytkownikom przejrzystość, wyświetlając wskaźniki, gdy aplikacja korzysta z prywatnego źródła danych za pomocą uprawnień do działania aplikacji związanych z aparatami i mikrofonem. Rekordy operacji na aplikacjach rejestrują dostęp do interfejsów API chronionych przez uprawnienia środowiska wykonawczego.

App-op śledzi zarówno stan aktywności, jak i liczbę poszczególnych wywołań interfejsu API oraz współpracuje ze wskaźnikami mikrofonu i aparatu w Androidzie 12 aby informować użytkowników, kiedy aplikacje uzyskały dostęp do danych audio i z aparatu na ich urządzeniach. Gdy użytkownicy klikną wskaźniki mikrofonu lub aparatu, zobaczą, które aplikacje uzyskały dostęp do ich danych. Ta funkcja jest obowiązkowa dla wszystkich producentów OEM.

Wymagania dotyczące widoczności wskaźnika

Oto wymagania dotyczące wskaźników mikrofonu i kamery na urządzeniach z Androidem 12 lub nowszym:

  • Wskaźniki muszą być widoczne na pasku stanu i mieć najwyższy priorytet wizualny (np. znajdować się w prawym górnym rogu).
  • Wskaźniki muszą być zawsze w tym samym miejscu i nie mogą być blokowane przez aplikację podczas jej uruchamiania.
  • Oba wskaźniki muszą być zielone (lub w odcieniach zieleni).
  • Kliknięcie co najmniej jednego wskaźnika musi spowodować wyświetlenie powiadomienia o atrybucji aplikacji, które:
    • Wyświetla nazwę aplikacji, która używa mikrofonu lub aparatu.
    • Wyświetla nazwę aplikacji, która używała mikrofonu lub aparatu w ciągu ostatnich 15 sekund.
    • Przenosi użytkowników na stronę uprawnień aplikacji w Ustawieniach.

Użytkowanie i funkcje

W Androidzie 12 interfejs użytkownika rozróżnia bieżące i ostatnie użycie. Użycia są uznawane za aktywne, jeśli system oznaczy je jako uruchomione lub jeśli mają mniej niż 5 sekund.

  • Ikony na pasku stanu pojawiają się za każdym razem, gdy aplikacja ma ciągły dostęp do mikrofonu lub aparatu, które mogą rejestrować dane wrażliwe użytkownika.
  • Użytkownicy mogą klikać te ikony i sprawdzać, które aplikacje mają dostęp do mikrofonu, kamery lub obu tych urządzeń.

Wskaźniki użycia mikrofonu i aparatu pokazujące, że dostęp jest aktywny

Rysunek 1. Wskaźniki użycia mikrofonu i aparatu pokazujące aktywny dostęp (w prawym górnym rogu)

Dostęp jest uznawany za aktywny, dopóki wskaźniki są widoczne. Najpierw wyświetla się ikona, a potem zmienia się w kropkę, która pozostaje widoczna, dopóki nie zamkniesz aplikacji.

Gdy użytkownik otworzy Szybkie ustawienia i kliknie wskaźniki, pojawi się okno, w którym będzie widać, czy aplikacja korzysta z aparatu, mikrofonu czy z obu tych urządzeń.

Wskaźniki aktywnego i niedawnego dostępu oraz informacja, czy dostęp był związany z kamerą czy mikrofonem.

Rysunek 2. Wskaźniki aktywnego i ostatniego dostępu

Obraz w Rysunku 2 przedstawia wskaźniki aktywnego dostępu, gdy działająca aplikacja uzyskała dostęp do danych w ciągu ostatnich 5 sekund.

Wskaźniki ostatniego dostępu pokazują, że aplikacja uzyskała dostęp do danych w ciągu ostatnich 15 sekund, ale nie jest aktywna. W oknie dialogowym wyświetlają się wszystkie aktywne aplikacje, ale tylko jedna z nich jest podana jako źródło ostatniego dostępu, nawet jeśli w ciągu ostatnich 15 sekund dostęp do danych uzyskało więcej niż 1 aplikacja. Widok dostępu pozostanie zamrożony, dopóki użytkownik nie zamknie okna powiadomienia.

Wdrażanie i włączanie

Klasa PermissionManager udostępnia metodę wypełniania okna, które znajduje się w interfejsie systemu.

  • Interfejs systemu reaguje na zmianę konfiguracji urządzenia:privacy/mic_camera_indicators_enabled
  • Zmiana jest konieczna, ponieważ są 2 osobne pojazdy dostawcze w tej kolejności:
    1. Dostarcz.
    2. Włącz.
  • Interfejs systemu nie może ulec awarii, jeśli metoda w PermissionManager nie może dostarczyć potrzebnych danych.

Przebieg procesu

Funkcja wskaźnika uprawnień składa się z 3 głównych części:

  • Aplikacje
  • Wskaźniki (obsługiwane przez interfejs systemu)
  • sposób określania, które aplikacje używają danych;

PermissionController umożliwia określenie, które aplikacje korzystają z danych. Interfejs systemowy nasłuchuje aplikacji korzystających z danych prywatnych. Interfejs SystemUI wyświetla ikonę na górnym pasku nawigacyjnym, która odpowiada używanym uprawnieniom. IkonaPermissionController wyświetla dane o użyciu, gdy użytkownik ją kliknie.

Proces funkcji wskaźnika uprawnień

Rysunek 3. Komponenty systemu i przejścia (interfejsu)

Przejścia oznaczone numerami na rysunku 3 opisano poniżej:

1. Aplikacja wysyła do systemu żądanie danych prywatnych.

2. System sprawdza uprawnienia. Jeśli uprawnienia są dozwolone, system powiadamia dostawcę danych i odnotowuje użycie w app-ops.

3. Dostawca danych przekazuje dane do aplikacji.

4–5. Użytkownik klika ikony. Interfejs systemu wysyła żądanie danych do PermissionManager i wyświetla okno dialogowe użytkownikowi.

Szczegóły procesu

  1. Aplikacje korzystają z mikrofonu i kamery, dzwoniącAppOpsManager.startOp,stopOp i (lub) noteOp. Spowoduje to utworzenie rekordów operacji na aplikacjach na serwerze systemowym.
  2. Interfejs systemu nasłuchuje nowych operacji na aplikacjach za pomocą słuchaczy AppOpsManager.OnOpActiveChangedInternalListenerOnOpNotedListener. Gdy pojawi się nowe użycie (w wyniku wywołania funkcji startOp lub noteOp), interfejs systemu sprawdza, czy użycie pochodzi z aplikacji systemowej.
  3. Jeśli interfejs systemowy zweryfikuje użycie aplikacji systemowej i stwierdzi, że jest to użycie mikrofonu, sprawdzi, czy mikrofon jest wyciszony.
  4. Jeśli interfejs systemowy zweryfikuje użycie aplikacji systemowej (a w przypadku użycia mikrofonu – że mikrofon nie jest wyciszony, a w przypadku użycia aparatu – że aparat jest włączony), wyświetli ikonę odzwierciedlającą takie użycie.

Jeśli interfejs systemu otrzyma noteOp, które nie ma czasu trwania, wyświetli ikonę przez co najmniej 5 sekund. W przeciwnym razie ikona będzie wyświetlana do momentu otrzymania sygnału stopOp lub przez 5 sekund (w zależności od tego, co nastąpi później). Gdy użytkownik kliknie ikonę, wywoła intencję, która zostanie przekazana do PermissionController, aby rozpocząć okno dialogowe.

PermissionController wczytuje wszystkie niedawne użycia mikrofonu i aparatu. Sprawdza, czy któreś z nich są uruchomione lub były uruchomione w okresie określonym przez interfejs systemu. Jeśli znajdzie dopasowanie, wyświetli nazwę aplikacji, która używała uprawnień, oraz listę tych uprawnień.

W związku z tą zmianą w Androidzie 12 i nowszych wersjach niektóre aplikacje muszą zmienić sposób działania lub wdrożyć specjalne zachowanie.

Telefonia musi implementować używanie uprawnień (aby uwzględnić oddzielny stos mikrofonu używany podczas połączeń telefonicznych) podczas współpracy z aplikacją Wyszukiwarka Google na Androida (AGSA) i Usługami mobilnymi Google (GMS).