Wskaźniki prywatności

Uprawnienia w czasie działania w Androidzie 6 i nowszych wersjach umożliwiają użytkownikom kontrolowanie, kiedy zezwalają na nagrywanie dźwięku z mikrofonu urządzenia lub obrazu z kamery urządzenia. Zanim aplikacja będzie mogła nagrywać, użytkownik musi przyznać jej uprawnienia lub odmówić, korzystając z okna dialogowego wyświetlanego przez system.

Android 12 zapewnia użytkownikom przejrzystość dzięki wyświetlaniu wskaźników, gdy aplikacja używa prywatnego źródła danych za pomocą aparatu i mikrofonu w ramach uprawnień aplikacji. Zespół ds. operacji na aplikacjach rejestruje dostęp do interfejsów API chronionych uprawnieniami w czasie wykonywania.

App-op śledzi stan aktywności 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 uzyskują dostęp do danych audio i z aparatu na ich urządzeniach. Gdy użytkownicy klikają wskaźniki mikrofonu lub aparatu, widzą, 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 aparatu na urządzeniach z Androidem 12 lub nowszym:

  • Wskaźniki muszą być widoczne na pasku stanu i mieć najwyższy priorytet wizualny (np. w prawym górnym rogu).
  • Wskaźniki muszą znajdować się w tym samym miejscu i nie mogą być blokowane przez aplikację podczas uruchamiania.
  • Oba wskaźniki muszą być zielone (lub w zmiennej tonacji zieleni).
  • Kliknięcie jednego lub obu wskaźników musi spowodować wyświetlenie powiadomienia z aplikacją, które:
    • Wyświetla nazwę aplikacji, która używa mikrofonu lub aparatu.
    • Wyświetla nazwę aplikacji, która w ciągu ostatnich 15 sekund używała mikrofonu lub aparatu.
    • przekierowuje użytkowników do strony uprawnień aplikacji w sekcji Ustawienia.

Korzystanie i funkcje

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

  • Ikony na pasku stanu pojawiają się za każdym razem, gdy aplikacja ma dostęp do mikrofonu lub aparatu, który może wykorzystywać dane wrażliwe.
  • Użytkownicy mogą kliknąć te ikony, aby sprawdzić, które aplikacje mają dostęp do mikrofonu, kamery lub obu tych urządzeń.

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

Rysunek 1. Wskaźniki mikrofonu i aparatu wskazujące aktywny dostęp (prawy górny róg)

Dostęp jest uznawany za aktywny przez cały czas wyświetlania wskaźników. Najpierw pojawia się ikona, a potem kropka, która pozostaje widoczna, dopóki aplikacja nie zostanie zamknięta.

Gdy użytkownik otworzy Szybkie ustawienia i kliknie wskaźniki, pojawi się okno, które pokaże, czy aplikacja używa aparatu, mikrofonu czy obu tych urządzeń.

Wskaźniki dotyczące bieżącego i niedawnego dostępu oraz dostępu do kamery lub mikrofonu

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

Ilustracja w Rysunku 2 pokazuje wskaźniki aktywnego dostępu, gdy dane zostały odczytane w ciągu ostatnich 5 sekund przez uruchomioną aplikację.

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

Prześlij i włącz

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

  • Interfejs użytkownika reaguje na przełącznik konfiguracji urządzenia: privacy/mic_camera_indicators_enabled.
  • Przejście jest konieczne, ponieważ istnieją 2 osobne pojazdy dostawcze:
    1. Wyświetlanie.
    2. Włącz.
  • Interfejs użytkownika systemu nie może się zawiesić, 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 SystemUI)
  • Sposób określenia, które aplikacje korzystają z tych danych

PermissionController udostępnia mechanizm umożliwiający określenie, które aplikacje używają danych. SystemUI nasłuchuje aplikacji korzystających z danych prywatnych. SystemUI wyświetla na górnym pasku nawigacyjnym ikonę odpowiadającą używanym uprawnieniom. PermissionController zawiera dane o używaniu ikony przez użytkownika.

Proces funkcji wskaźnika uprawnień

Rysunek 3. Przepływ komponentów systemu i przejść (UI)

Numerowane przejścia na rysunku 3:

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

2 – system sprawdza uprawnienia. Jeśli uprawnienia są dozwolone, system powiadamia dostawcę danych i zaznacza użycie w aplikacji.

3. Dostawca danych przekazuje dane do aplikacji.

4–5 Użytkownik klika ikony. System UI prosi o dane z PermissionManager i wyświetla użytkownikowi okno.

Szczegóły procesu

  1. Aplikacje korzystają z mikrofonu i kamery, wywołując AppOpsManager.startOp, stopOp lub noteOp. Spowoduje to utworzenie na serwerze systemowym rekordów operacji na aplikacji.
  2. Interfejs systemu wysłuchuje nowe operacje aplikacji za pomocą listenerów AppOpsManager.OnOpActiveChangedInternalListenerOnOpNotedListener. Gdy pojawi się nowe użycie (poprzez wywołanie startOp lub noteOp), interfejs użytkownika sprawdza, czy użycie pochodzi z aplikacji systemowej.
  3. Jeśli interfejs System UI potwierdzi, że aplikacja systemowa korzysta z mikrofonu, sprawdzi, czy mikrofon jest wyciszony.
  4. Jeśli interfejs systemu potwierdzi użycie aplikacji niesystemowej (a w przypadku mikrofonu – że mikrofon jest włączony; a w przypadku aparatu – że aparat jest włączony), wyświetli ikonę odpowiadającą takiemu użyciu.

Jeśli interfejs systemu otrzyma zdarzenie noteOp, które nie ma czasu trwania, wyświetla ikonę przez co najmniej 5 sekund. W przeciwnym razie ikona będzie widoczna do momentu, gdy otrzyma ikonę stopOp, lub przez 5 sekund (w zależności, co nastąpi później). Kliknięcie ikony przez użytkownika inicjuje intencję, która prowadzi do PermissionController, aby rozpocząć okno dialogowe.

PermissionController wczytuje wszystkie niedawne użycia mikrofonu i aparatu. Sprawdza, czy któryś z nich działa lub działał w okresie ustawionym przez interfejs systemowy. Jeśli znajdzie dopasowanie, wyświetli nazwę aplikacji, która używała uprawnienia, oraz jakie uprawnienia zostały użyte.

Ze względu na tę zmianę w Androidzie 12 i nowszych niektóre aplikacje muszą zmienić swoje działanie lub wdrożyć specjalne zachowanie.

Usługa telefonii musi stosować uprawnienia (aby uwzględnić oddzielny moduł mikrofonu używany w przypadku połączeń telefonicznych) podczas pracy z aplikacją wyszukiwania Google na Androida (AGSA) i usługami mobilnymi Google (GMS).