Ekran blokady

Domyślna implementacja AOSP ekranu blokady z afordancjami do jego odblokowania (klawiatury) pojawia się tylko na głównym wyświetlaczu. W Androida 9 (i dolnego), ekrany wtórne obsługiwane pojedynczego okna blokujący na jednym wyświetlaczu zewnętrznym. W systemie Android 10 ekran blokady jest rozszerzany na wszystkie publiczne wyświetlacze dodatkowe. Ekran blokady pozostaje prosty i nie obsługuje odblokowywania z ekranów dodatkowych.

Ekran figura 1. Blokada na wyświetlaczu wtórnego

Producenci urządzeń mogą wdrożyć ekran blokady dla wyświetlaczy dodatkowych, pod warunkiem spełnienia podstawowego wymogu bezpieczeństwa. Gdy urządzenie jest zablokowane, informacje powinny być bezpiecznie ukryte na wszystkich wyświetlaczach. Nie ma wbudowanych zasad ani kontroli nad tym, jaka zawartość powinna być wyświetlana lub ukrywana, gdy urządzenie jest zablokowane. Dlatego jedynym bezpiecznym sposobem implementacji ograniczonego dostępu jest ukrycie całej zawartości za ekranem blokady i blokowaniem okien. Jedynymi wyjątkami są aplikacje, które jawnie włączoną być wyświetlane na górze ekranu blokady przy użyciu R.attr.showWhenLocked lub Activity.setShowWhenLocked() metody. W przeciwnym razie istnieje duże prawdopodobieństwo wycieku informacji z ekranów publicznych i prywatnych.

Choć wyświetlacze mogą być umieszczone w różnych stanach ( ON / OFF ), stan zablokowany jest globalna dla wszystkich ekranów. Podobnie jak w przypadku każdej implementacji urządzenia, dla użytkownika powinno być oczywiste, kiedy urządzenie jest zablokowane (lub odblokowane). Na przykład naciśnięcie przycisku zasilania zazwyczaj blokuje urządzenie mobilne. Przycisk zasilania powinien również blokować wszystkie ekrany wewnętrzne i zewnętrzne.

Ponieważ okno blokowania jest własnością SystemUI, nie zostanie umieszczone na ekranach prywatnych. Właściciele ekranów prywatnych są odpowiedzialni za ukrywanie okien i ochronę zawartości, gdy urządzenie jest zablokowane. Domyślna implementacja systemu ukrywa tylko działania na wyświetlaczach prywatnych zmieniając widoczność.

Realizacja

Okno zamek na wyświetlaczach drugorzędnych jest zaimplementowany jako Presentation okna w KeyguardDisplayManager . Android 10 zmienił KeyguardDisplayManager#mPresentations do tablicy, która posiada wszystkie okna zaporowe dla wszystkich ekranów wtórnych. KeyguardDisplayManager posiada również wyświetlacz-słuchacza zmiany do reagowania na zmiany w dostępnych wyświetlaczy i zabezpieczyć wszystkie ekrany. Ważne jest, aby natychmiast zablokować wszystkie podłączone wyświetlacze w dowolnym momencie, aby osoby atakujące nie mogły wyodrębnić danych użytkownika nawet przy fizycznym dostępie do urządzenia.

Okno zamek jest wyświetlany na wszystkich wyświetlaczach drugorzędnych publicznych (patrz KeyguardDisplayManager#isKeyguardShowable() ). Właściciele ekranów prywatnych są odpowiedzialni za zabezpieczenie zawartości, gdy urządzenie jest zablokowane.