Wskaźniki prywatności

Uprawnienia wykonawcze w systemie Android 6 i nowszych wersjach dają użytkownikom kontrolę nad tym, kiedy zezwalają na nagrywanie dźwięku z mikrofonu urządzenia lub wideo z kamery urządzenia. Zanim aplikacja będzie mogła nagrywać, użytkownik musi udzielić lub odmówić jej pozwolenia 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 pośrednictwem kamer i uprawnień aplikacji do mikrofonu. App-ops rejestruje dostępy do interfejsów API chronionych uprawnieniami w czasie wykonywania.

App-op śledzi zarówno stan aktywności, jak i liczbę poszczególnych wywołań API, a także współdziała ze wskaźnikami mikrofonu i kamery w systemie Android 12, aby pokazać użytkownikom, kiedy aplikacje uzyskały dostęp do danych audio i kamery na ich urządzeniach. Gdy użytkownicy klikną wskaźniki mikrofonu lub kamery, 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źników

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

  • Wskaźniki muszą pojawiać się na pasku stanu i mieć najwyższy priorytet wizualny (na przykład znajdować się w skrajnej prawej pozycji w prawym górnym rogu).
  • Wskaźniki muszą stale znajdować się w tej samej pozycji i nie mogą być blokowane przez aplikację po jej uruchomieniu.
  • Obydwa wskaźniki muszą mieć kolor zielony (lub jego odmianę).
  • Kliknięcie jednego lub obu wskaźników musi spowodować wyświetlenie powiadomienia o alokacji aplikacji, które wykonuje następujące czynności:
    • Wyświetla nazwę aplikacji korzystającej z mikrofonu i (lub) kamery
    • Wyświetla nazwę aplikacji, która korzystała z mikrofonu i (lub) kamery w ciągu ostatnich 15 sekund
    • Przenosi użytkowników na stronę uprawnień aplikacji w Ustawieniach

Zastosowanie i funkcje

W Androidzie 12 interfejs użytkownika rozróżnia bieżące użycia i ostatnie użycia. Wykorzystania uznawane są za „aktywne”, jeśli są oznaczone przez system jako „bieżące” lub trwają krócej niż 5 sekund.

  • Ikony na pasku stanu pokazują się za każdym razem, gdy aplikacja ma ciągły dostęp do mikrofonu lub kamery.
  • Użytkownicy mogą kliknąć te ikony i sprawdzić, które aplikacje uzyskują dostęp do mikrofonu, kamery lub obu.

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

Rysunek 1. Wskaźniki użycia mikrofonu i kamery pokazujące aktywny dostęp (prawy górny róg)

Dostęp uważa się za aktywny tak długo, jak wskazują wskaźniki. Najpierw wyświetli się ikona, a następnie zmieni się w kropkę, która będzie widoczna do momentu zamknięcia lub zamknięcia aplikacji.

Gdy użytkownik dotknie wskaźników, wyświetli się okno dialogowe pokazujące, że aplikacja aktualnie korzysta z aparatu, mikrofonu lub obu.

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

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

Obraz na rysunku 2 przedstawia wskaźniki aktywnego dostępu, gdy uruchomiona aplikacja uzyskała dostęp do danych w ciągu ostatnich 5 sekund.

Najnowsze wskaźniki dostępu pokazują, że aplikacja korzystała z danych w ciągu ostatnich 15 sekund, ale aplikacja nie była aktywna. Wszystkie aktywne aplikacje są wyświetlane w oknie dialogowym, ale tylko jedna aplikacja jest wyświetlana jako źródło ostatniego dostępu, 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 dialogowego powiadomienia.

Dostarczaj i włączaj

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

  • Interfejs systemu reaguje na przełącznik konfiguracji urządzenia: privacy/mic_camera_indicators_enabled .
  • Zmiana jest konieczna, ponieważ istnieją dwa osobne pojazdy dostawcze, w tej kolejności:
    1. Dostarczać.
    2. Włączać.
  • Interfejs użytkownika systemu nie może ulec awarii, jeśli metoda w PermissionManager nie może dostarczyć potrzebnych danych.

Przebieg procesu

Funkcjonalność wskaźnika uprawnień składa się z trzech głównych części:

  • Aplikacje
  • Wskaźniki (obsługiwane przez SystemUI)
  • Sposób ustalenia, które aplikacje korzystają z danych

PermissionController zapewnia mechanizm określania, które aplikacje korzystają z danych. SystemUI nasłuchuje aplikacji korzystających z prywatnych danych. SystemUI wyświetla ikonę na górnym pasku nawigacyjnym, która odpowiada używanym uprawnieniom. PermissionController wyświetla dane o użyciach, gdy użytkownik kliknie ikonę.

Process flow for Permission Indicator functions

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

Numerowane przejścia na rysunku 3 opisano poniżej:

1. Aplikacja żąda od systemu prywatnych danych.

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

3- Dostawca danych przekazuje dane aplikacji.

4-5 Użytkownik klika ikony. Systemowy interfejs użytkownika żąda danych od PermissionManager i przedstawia użytkownikowi okno dialogowe.

Szczegóły procesu

  1. Aplikacje korzystają z mikrofonu i kamery, wywołując AppOpsManager.startOp , stopOp i (lub) noteOp . Spowoduje to utworzenie rekordów operacji aplikacji na serwerze systemowym.
  2. Interfejs użytkownika systemu nasłuchuje nowych operacji aplikacji przy użyciu odbiorników AppOpsManager.OnOpActiveChangedInternalListener i OnOpNotedListener . Kiedy pojawia się nowe użycie (poprzez wywołanie startOp lub noteOp ), interfejs użytkownika systemu sprawdza, czy jest to użycie przez aplikację systemową.
  3. Jeśli interfejs użytkownika systemu sprawdza użycie aplikacji systemowej i jeśli jest to użycie mikrofonu, interfejs użytkownika systemu sprawdza, czy mikrofon jest wyciszony.
  4. Jeśli interfejs użytkownika systemu sprawdza użycie aplikacji innej niż systemowa (oraz, w przypadku korzystania z mikrofonu, czy mikrofon nie jest wyciszony, a w przypadku korzystania z kamery, czy kamera jest włączona), wyświetlana jest ikona odzwierciedlająca takie użycie.

Jeśli interfejs użytkownika systemu odbierze noteOp bez czasu trwania, wyświetli ikonę przez co najmniej 5 sekund. W przeciwnym razie ikona będzie wyświetlana do momentu otrzymania stopOp lub przez 5 sekund, w zależności od tego, który okres jest dłuższy. Użytkownik klikający ikonę inicjuje zamiar, który trafia do PermissionController w celu uruchomienia okna dialogowego.

PermissionController ładuje wszystkie ostatnie użycia mikrofonu i kamery. Sprawdza, czy którykolwiek z nich jest aktualnie uruchomiony lub działał w ramach czasowych określonych przez interfejs użytkownika systemu. Jeśli znajdzie dopasowanie, wyświetli nazwę aplikacji, która korzystała z uprawnienia, oraz uprawnienia, z których korzystała aplikacja.

Z powodu tej zmiany w systemie Android 12 i nowszych wersjach niektóre aplikacje muszą zmienić swoje zachowanie lub wdrożyć specjalne zachowanie.

Telefonia musi uwzględniać użycie uprawnień (aby uwzględnić oddzielny stos mikrofonów używany w rozmowach telefonicznych) podczas pracy z aplikacją Wyszukiwarka Google na Androida (AGSA) i Usługami mobilnymi Google (GMS).