Android zapewnia użytkownikom przejrzystość, wyświetlając wskaźniki prywatności w przypadku tych typów dostępu:
Dostęp do aparatu i mikrofonu. Wskaźnik pojawia się, gdy aplikacja używa prywatnego źródła danych za pomocą uprawnień app-op do aparatu i mikrofonu app-op permissions. Wymaganie CDD związane z tym tematem znajdziesz w sekcji 2.2.5. Model bezpieczeństwa.
Dostęp do lokalizacji. Wskaźnik pojawia się, gdy aplikacja uzyskuje dostęp do lokalizacji urządzenia. Wymaganie CDD związane z tym tematem znajdziesz w sekcji 9.8.8. Lokalizacja.
Użytkownicy mogą kliknąć wskaźnik, aby zobaczyć, które aplikacje uzyskały dostęp do ich danych.
Aktywne i ostatnie użycia
Interfejs Androida rozróżnia użycia w trakcie działania i ostatnie użycia:
W Androidzie 17 lub nowszym użycia lokalizacji są uznawane za aktywne, jeśli są oznaczone przez system jako działające lub mają mniej niż 10 sekund. W przypadku kropki lokalizacji dostęp jest uznawany za aktywny, jeśli aplikacja inna niż systemowa działa na pierwszym planie.
W Androidzie 12 lub nowszym użycia mikrofonu i aparatu są uznawane za aktywne, jeśli są oznaczone przez system jako działające lub 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, aparatu lub lokalizacji, który może naruszać prywatność użytkownika. Użytkownicy mogą kliknąć te ikony i zobaczyć, które aplikacje mają dostęp do mikrofonu, aparatu, lokalizacji lub kombinacji tych elementów. Oto przykład wskaźników użycia:
Rysunek 1. Wskaźniki użycia pokazujące aktywny dostęp (prawy górny róg).
Dostęp jest uznawany za aktywny, dopóki wyświetlają się wskaźniki. Najpierw pojawia się ikona, a potem zmienia się w kropkę, która pozostaje widoczna, dopóki aplikacja nie zostanie zamknięta. Gdy użytkownik otworzy Szybkie ustawienia, a następnie kliknie wskaźniki, pojawi się okno z informacją, czy aplikacja używa mikrofonu, aparatu, lokalizacji lub kombinacji tych elementów.
Rysunek 2 przedstawia wskaźniki aktywnego dostępu, gdy aplikacja działająca w aktywnym oknie czasowym uzyskała dostęp do danych.
Rysunek 2. Wskaźniki aktywnego i ostatniego dostępu.
Wskaźniki ostatniego dostępu pokazują, że aplikacja uzyskała dostęp do danych w ciągu ostatnich 15 sekund (lub 20 sekund w przypadku danych o lokalizacji), ale nie jest aktywna. W oknie dialogowym wyświetlają się wszystkie aktywne aplikacje, ale tylko jedna aplikacja jest wyświetlana jako źródło ostatniego dostępu, nawet jeśli więcej niż jedna aplikacja uzyskała dostęp do danych w ciągu ostatnich 15 lub 20 sekund. W oknie dialogowym wyświetlają się wszystkie aplikacje, które uzyskały dostęp do danych o lokalizacji w aktywnym lub ostatnim oknie czasowym. Widok dostępu pozostaje widoczny, dopóki użytkownik nie zamknie okna powiadomienia.
Dostarczanie i włączanie
Klasa PermissionManager udostępnia metodę wypełniania okna dialogowego (które znajduje się w interfejsie systemowym). Interfejs systemowy reaguje na przełącznik konfiguracji urządzenia privacy/mic_camera_indicators_enabled. Ten przełącznik jest niezbędny, ponieważ istnieją 2 oddzielne sposoby dostarczania: 1) dostarczanie, a następnie 2) włączanie.
Przebieg procesu
Funkcja wskaźnika uprawnień składa się z 3 głównych części:
- aplikacje,
- wskaźniki (obsługiwane przez interfejs systemowy),
- sposób określania, które aplikacje używają danych.
PermissionController udostępnia mechanizm określania, które aplikacje używają danych. Interfejs systemowy nasłuchuje aplikacji używających danych prywatnych. Interfejs systemowy wyświetla ikonę na górnym pasku nawigacyjnym, która odpowiada używanym uprawnieniom. Gdy użytkownik kliknie ikonę, PermissionController wyświetla dane o użyciach.
Rysunek 3. Komponenty systemu i przepływ przejść (interfejsu).
1. Aplikacja prosi system o dane prywatne.
2. System sprawdza uprawnienia. Jeśli uprawnienia są dozwolone, system powiadamia dostawcę danych i zapisuje użycie w app ops.
3. Dostawca danych przekazuje dane do aplikacji.
4–5. Użytkownik klika ikony. Interfejs systemowy prosi
PermissionManagero dane i wyświetla okno dialogowe.
Szczegóły procesu
App ops rejestruje dostęp do interfejsów API chronionych uprawnieniami czasu działania, śledzi stan aktywności i liczbę poszczególnych wywołań interfejsu API oraz współpracuje z aparatem, mikrofonem i wskaźnikami, aby informować użytkowników, kiedy aplikacje uzyskały dostęp do danych audio i danych z aparatu na ich urządzeniach.
Aplikacje używają mikrofonu, aparatu lub lokalizacji, wywołując
AppOpsManager.startOp,stopOplubnoteOp. Spowoduje to utworzenie rekordów app op na serwerze systemowym. W Androidzie 17 i nowszym wskaźnik lokalizacji również używa tych rekordów app op.Interfejs systemowy nasłuchuje nowych app ops za pomocą słuchaczy
AppOpsManager.OnOpActiveChangedInternalListeneriOnOpNotedListener. Gdy pojawi się nowe użycie (w wyniku wywołaniastartOplubnoteOp), interfejs systemowy sprawdza, czy użycie pochodzi z aplikacji systemowej:Jeśli interfejs systemowy potwierdzi użycie aplikacji systemowej i użycie dotyczy mikrofonu, interfejs systemowy sprawdza, czy mikrofon jest wyciszony.
Jeśli interfejs systemowy potwierdzi użycie aplikacji innej niż systemowa (a w przypadku użycia mikrofonu – że mikrofon nie jest wyciszony, a w przypadku użycia aparatu – że aparat jest włączony), wyświetla ikonę odzwierciedlającą takie użycie.
Jeśli interfejs systemowy potwierdzi użycie aplikacji innej niż systemowa, wyświetla ikonę odzwierciedlającą takie użycie, pod warunkiem że odpowiednie przełączniki są aktywne:
- Mikrofon: mikrofon nie jest wyciszony.
- Aparat: aparat jest włączony.
- Lokalizacja: aplikacja działa na pierwszym planie.
Jeśli interfejs systemowy otrzyma noteOp, który nie ma czasu trwania, wyświetla ikonę przez co najmniej 5 sekund (10 sekund w przypadku lokalizacji). W przeciwnym razie ikona jest wyświetlana do momentu otrzymania stopOp lub przez minimalny czas trwania wynoszący 5 lub 10 sekund, w zależności od tego, który z tych czasów jest dłuższy. Gdy użytkownik kliknie ikonę, uruchamia intencję, która trafia do PermissionController, aby rozpocząć wyświetlanie okna dialogowego.
PermissionController wczytuje wszystkie ostatnie użycia mikrofonu, aparatu i lokalizacji. Sprawdza, czy któreś z nich działają lub działały w przedziale czasu ustawionym przez interfejs systemowy (15 sekund w przypadku mikrofonu lub aparatu, 20 sekund w przypadku lokalizacji). Jeśli znajdzie dopasowanie, wyświetla nazwę aplikacji i używane uprawnienia.
Telefonia musi implementować użycie uprawnień (aby uwzględnić oddzielny stos mikrofonu używany podczas połączeń telefonicznych) podczas pracy z aplikacją Google Search na Androida (AGSA) i GMS.