Androida 14
20 listopada 2023 r
2. Typy urządzeń
Zobacz rewizję
Jeśli implementacje urządzeń przenośnych deklarują obsługę dowolnego 64-bitowego ABI (z 32-bitowym ABI lub bez):
Zobacz rewizję
- [ 7.5 /H-1-13] MUSI obsługiwać funkcję
LOGICAL_MULTI_CAMERA
dla głównej kamery cofania, jeśli jest więcej niż 1 kamera cofania RGB.
- [ 7.5 /H-1-13] MUSI obsługiwać funkcję
Zobacz rewizję
[ 5.8 /T-0-1] MUSI ustawić tryb wyjścia HDMI na najwyższą rozdzielczość dla wybranego formatu SDR lub HDR, który działa z częstotliwością odświeżania 50 Hz lub 60 Hz dla wyświetlacza zewnętrznego.
MUSI ustawić tryb wyjścia HDMI, aby wybrać maksymalną rozdzielczość obsługiwaną przy częstotliwości odświeżania 50 Hz lub 60 Hz.
Zobacz rewizję
- [9/W-0-1] MUSI zadeklarować
android.hardware.security.model.compatible feature
.
- [9/W-0-1] MUSI zadeklarować
6. Zgodność narzędzi i opcji programistycznych
6.1. Narzędzia deweloperskie :
Zobacz rewizję
- [C-0-12] MUSI napisać
LMK_KILL_OCCURRED_FIELD_NUMBER
atom do
Zobacz rewizję
- [C-0-13] MUSI zaimplementować polecenie powłoki
dumpsys gpu --gpuwork
, aby wyświetlić
- [C-0-12] MUSI napisać
9. Zgodność modelu zabezpieczeń
9.7. Funkcjonalność związana z bezpieczeństwem :
Zobacz rewizję
Jeśli implementacje urządzeń korzystają z jądra Linuksa obsługującego SELinux, to:
Zobacz rewizję
Jeśli implementacje urządzeń korzystają z jądra innego niż Linux lub Linux bez SELinux, to:
4 października 2023 r
2. Typy urządzeń
2.2. Wymagania dotyczące urządzenia przenośnego :
Zobacz rewizję
Wdrożenia urządzeń z systemem Android są klasyfikowane jako urządzenia kieszonkowe, jeśli spełniają wszystkie następujące kryteria:
- Mają fizyczną przekątną ekranu w zakresie od 4 cali
do 3,3 cala (lub 2,5 cala w przypadku implementacji urządzeń dostarczonych z poziomem API 29 lub wcześniejszym)do 8 cali.
Rozpocznij nowe wymagania
- Mają interfejs wejściowy z ekranem dotykowym.
- Mają fizyczną przekątną ekranu w zakresie od 4 cali
Zobacz rewizję
Implementacje urządzeń przenośnych:
- [ 7.1 .1.1/H-0-1] MUSI posiadać co najmniej jeden
wyświetlacz kompatybilny z Androidem, który spełnia wszystkie wymagania opisane w tym dokumencie.wyświetlacz o przekątnej co najmniej 2,2 cala na krótszej krawędzi i 3,4 cala na dłuższej krawędzi.
Jeśli implementacje urządzeń przenośnych obsługują obracanie ekranu oprogramowania, to:
- [ 7.1 .1.1/H-1-1]* MUSI zapewnić, że ekran logiczny udostępniany do zastosowań stron trzecich będzie miał co najmniej 2 cale na krótkich krawędziach i 2,7 cala na długich krawędziach. Urządzenia dostarczane z interfejsem API systemu Android w wersji 29 lub wcześniejszej MOGĄ być zwolnione z tego wymogu.
Jeśli implementacje urządzeń przenośnych nie obsługują obracania ekranu oprogramowania,:
- [ 7.1 .1.1/H-2-1]* MUSI zapewnić, że ekran logiczny udostępniany dla aplikacji innych firm będzie miał co najmniej 2,7 cala na krótszej krawędzi. Urządzenia dostarczane z interfejsem API systemu Android w wersji 29 lub wcześniejszej MOGĄ być zwolnione z tego wymogu.
Rozpocznij nowe wymagania
[ 7.1 .1.1/H-0-3]* MUSI zmapować każdy wyświetlacz
UI_MODE_NORMAL
udostępniony aplikacjom stron trzecich na niezakłócony fizyczny obszar wyświetlania o wymiarach co najmniej 2,2 cala na krótkiej krawędzi i 3,4 cala na dłuższej krawędzi.[ 7.1 .1.3/H-0-1]* MUSI ustawić wartość
DENSITY_DEVICE_STABLE
na 92% lub większą niż rzeczywista gęstość fizyczna odpowiedniego wyświetlacza.
Jeśli implementacje urządzeń przenośnych deklarują
android.hardware.audio.output
iandroid.hardware.microphone
, to:[ 5.6 /H-1-1] MUSI mieć średnie ciągłe opóźnienie w obie strony wynoszące 300 milisekund lub mniej w ciągu 5 pomiarów, ze średnim odchyleniem bezwzględnym mniejszym niż 30 ms , na następujących ścieżkach danych: „głośnik do mikrofonu”, 3,5 mm adapter pętli zwrotnej (jeśli jest obsługiwany), pętla zwrotna USB (jeśli jest obsługiwana).
[ 5.6 /H-1-2] MUSI mieć średnie opóźnienie Tap-to-tone wynoszące 300 milisekund lub mniej w ciągu co najmniej 5 pomiarów na ścieżce danych głośnik-mikrofon.
Jeśli implementacje urządzeń przenośnych obejmują co najmniej jeden siłownik dotykowy, to:
- [ 7.10 /H]* NIE NALEŻY używać mimośrodowego siłownika dotykowego (wibratora) z masą wirującą (ERM).
- [ 7.10 /H]* POWINNO zaimplementować wszystkie publiczne stałe dla czystej haptyki w android.view.HapticFeedbackConstants , a mianowicie (CLOCK_TICK, CONTEXT_CLICK, KEYBOARD_PRESS, KEYBOARD_RELEASE, KEYBOARD_TAP, LONG_PRESS, TEXT_HANDLE_MOVE, VIRTUAL_KEY, VIRTUAL_KEY_RELEASE, CONFI RM, ODRZUĆ, GESTURE_START i GESTURE_END).
- [ 7.10 /H]* POWINIEN zaimplementować wszystkie publiczne stałe dla czystej haptyki w android.os.VibrationEffect , mianowicie (EFFECT_TICK, EFFECT_CLICK, EFFECT_HEAVY_CLICK i EFFECT_DOUBLE_CLICK) oraz wszystkie możliwe publiczne stałe
PRIMITIVE_*
dla bogatej haptyki w android.os.VibrationEffect.Composition , mianowicie ( KLIKNIJ, TICK, LOW_TICK, QUICK_FALL, QUICK_RISE, SLOW_RISE, SPIN, THUD). Niektóre z tych prymitywów, takie jak LOW_TICK i SPIN, mogą być wykonalne tylko wtedy, gdy wibrator może obsługiwać stosunkowo niskie częstotliwości. - [7.10/H]* NALEŻY postępować zgodnie ze wskazówkami dotyczącymi mapowania stałych publicznych w android.view.HapticFeedbackConstants na zalecane stałe android.os.VibrationEffect , z odpowiednimi relacjami amplitudy.
- [ 7.10 /H]* NALEŻY postępować zgodnie z oceną jakości interfejsów API createOneShot() i createWaveform() .
- [ 7.10 /H]* POWINIEN sprawdzić, czy wynik publicznego API android.os.Vibrator.hasAmplitudeControl() poprawnie odzwierciedla możliwości wibratora.
- [ 7.10 /H]* POWINIEN umieścić siłownik w pobliżu miejsca, w którym urządzenie jest zwykle trzymane lub dotykane rękami.
Jeśli implementacje urządzeń ręcznych obejmują co najmniej jeden liniowy siłownik rezonansowy 7.10 ogólnego przeznaczenia , to:
- [ 7.10 /H] POWINNO umiejscowić siłownik w pobliżu miejsca, w którym urządzenie jest zwykle trzymane lub dotykane rękami.
- [ 7.10 /H] NALEŻY przesunąć siłownik dotykowy w osi X (lewo-prawo) naturalnej orientacji
pionowejurządzenia .
Jeśli urządzenia przenośne są wyposażone w siłownik dotykowy ogólnego przeznaczenia , którym jest liniowy siłownik rezonansowy osi X (LRA), to:
- [ 7.10 /H] MUSI mieć częstotliwość rezonansową LRA osi X poniżej 200 Hz.
- [ 7.1 .1.1/H-0-1] MUSI posiadać co najmniej jeden
Zobacz rewizję
Implementacje urządzeń przenośnych MUSZĄ obsługiwać następujące formaty kodowania wideo i udostępniać je aplikacjom innych firm:
- [ 5.2 /H-0-3] AV1
Implementacje urządzeń przenośnych MUSZĄ obsługiwać następujące formaty dekodowania wideo i udostępniać je aplikacjom innych firm:
- [ 5.3 /H-0-6] AV1
Zobacz rewizję
Jeśli implementacje urządzenia, w tym klawisz nawigacyjny funkcji ostatnich, jak opisano w sekcji 7.2.3 , zmieniają interfejs, to:
- [ 3.8.3 /H-1-1] MUSI wdrożyć funkcję przypinania ekranu i zapewnić użytkownikowi menu ustawień umożliwiające przełączanie tej funkcji.
Jeśli implementacje urządzeń przenośnych obejmują obsługę interfejsów API
ControlsProviderService
iControl
oraz umożliwiają aplikacjom innych firm publikowanie elementów sterujących urządzeniami , wówczas:- [ 3.8.16 /H-1-6] Implementacje urządzeń MUSZĄ dokładnie odzwierciedlać afordancję użytkownika w następujący sposób:
- Jeśli urządzenie ma ustawioną opcję
config_supportsMultiWindow=true
, a aplikacja zadeklaruje metadaneMETA_DATA_PANEL_ACTIVITY
w deklaracjiControlsProviderService
, w tym nazwę komponentu prawidłowego działania (zgodnie z definicją API), wówczas aplikacja MUSI osadzić tę aktywność w tej afordancji użytkownika. - Jeśli aplikacja nie deklaruje metadanych
META_DATA_PANEL_ACTIVITY
, MUSI renderować określone pola dostarczone przez interfejs APIControlsProviderService
, a także wszelkie określone pola dostarczone przez interfejsy API kontroli .
- Jeśli urządzenie ma ustawioną opcję
- [ 3.8 .16/H-1-7] Jeśli aplikacja zadeklaruje metadane
META_DATA_PANEL_ACTIVITY
, MUSI przekazać wartość ustawienia zdefiniowaną w [3.8.16/H-1-5] przy użyciuEXTRA_LOCKSCREEN_ALLOW_TRIVIAL_CONTROLS
podczas uruchamiania wbudowanego działania.
Jeśli implementacje urządzeń umożliwiają użytkownikom wykonywanie dowolnego rodzaju połączeń,
- [ 7.4.1.2 /H-0-1] MUSI zadeklarować flagę funkcji
android.software.telecom
. - [ 7.4.1.2 /H-0-2] MUSI wdrożyć środowisko telekomunikacyjne .
Zobacz rewizję
Implementacje urządzeń przenośnych:
- [ 8.5 /H-0-1] MUSI zapewnić dostęp użytkownika
w menu Ustawienia, aby zobaczyć wszystkie aplikacje z aktywnymi usługami na pierwszym planie lub zadaniami inicjowanymi przez użytkownika, w tym czas trwania każdej z tych usług od momentu jej uruchomienia, zgodnie z opisem w dokumencie SDK .oraz możliwość zatrzymania aplikacji, w której działa usługa na pierwszym planie lub zadanie inicjowane przez użytkownika.z możliwością zatrzymania aplikacji, w której działa usługa na pierwszym planie i wyświetlenia wszystkich aplikacji, które mają aktywne usługi na pierwszym planie, oraz czasu trwania każdej z tych usług od momentu jej uruchomienia, zgodnie z opisem w dokumencie SDK .- Niektóre aplikacje MOGĄ zostać zwolnione z zatrzymywania lub umieszczania na liście w ramach przystępności użytkownika opisanej w dokumencie SDK .
- [ 8.5 /H-0-1] MUSI zapewnić dostęp użytkownika
- [ 8.5 /H-0-2] MUSI zapewnić użytkownikowi możliwość zatrzymania aplikacji, na której działa usługa na pierwszym planie lub zadanie inicjowane przez użytkownika.
Zobacz rewizję
Jeśli implementacje urządzeń deklarują obsługę android.hardware.telephony
, to:
- [ 9.5 /H-1-1] NIE MOŻE ustawiać
UserManager.isHeadlessSystemUserMode
natrue
.
Jeśli implementacje urządzeń mają bezpieczny ekran blokady i obejmują co najmniej jednego agenta zaufania, który implementuje interfejs API systemu TrustAgentService
, to:
- [ 9.11.1 /H-1-1] MUSI wzywać użytkownika do zastosowania jednej z zalecanych metod podstawowego uwierzytelnienia (np. PIN, wzór, hasło) częściej niż raz na 72 godziny.
Jeśli implementacje urządzeń przenośnych ustawią opcję UserManager.isHeadlessSystemUserMode
na true
, zostaną one
Jeśli implementacje urządzeń przenośnych obsługują usługę System API HotwordDetectionService
lub inny mechanizm wykrywania słów-kluczy bez wskazania dostępu do mikrofonu, to:
- [9.8/H-1-1] MUSI upewnić się, że usługa wykrywania słów kluczowych może przesyłać dane tylko do systemu,
ContentCaptureService
lub usługi rozpoznawania mowy na urządzeniu utworzonej przezSpeechRecognizer#createOnDeviceSpeechRecognizer()
. - [9.8/H-1-6] NIE MOŻE pozwalać na przesłanie więcej niż 100 bajtów danych (z wyłączeniem strumieni audio) z usługi wykrywania słów-kluczy po każdym pomyślnym wyniku słowa-klucza.
- [9.8/H-1-15] MUSI zapewnić, że strumienie audio dostarczane po pomyślnych wynikach wyszukiwania słów kluczowych są przesyłane w jedną stronę z usługi wykrywania słów-kluczy do usługi interakcji głosowej.
Jeśli implementacje urządzeń obejmują aplikację korzystającą z interfejsu API systemu HotwordDetectionService
lub podobnego mechanizmu wykrywania słów-kluczy bez wskazania użycia mikrofonu, aplikacja:
- [9.8/H-2-3] NIE WOLNO przesyłać z usługi wykrywania słów-kluczy danych dźwiękowych, danych, które można wykorzystać do rekonstrukcji (całkowitej lub częściowej) dźwięku lub treści audio niezwiązanych z samym słowem-kluczem, z wyjątkiem
ContentCaptureService
lub usługa rozpoznawania mowy na urządzeniu.
Jeśli implementacje urządzeń przenośnych obsługują usługę System API VisualQueryDetectionService
lub inny mechanizm wykrywania zapytań bez wskazania dostępu do mikrofonu i/lub kamery, to:
- [9.8/H-3-1] MUSI upewnić się, że usługa wykrywania zapytań może przesyłać dane tylko do systemu,
ContentCaptureService
lub usługi rozpoznawania mowy na urządzeniu (utworzonej przezSpeechRecognizer#createOnDeviceSpeechRecognizer()
). - [9.8/H-3-2] NIE MOŻE zezwalać na przesyłanie jakichkolwiek informacji audio lub wideo poza
VisualQueryDetectionService
, z wyjątkiemContentCaptureService
lub usługi rozpoznawania mowy na urządzeniu. - [9.8/H-3-3] MUSI wyświetlać powiadomienie użytkownika w interfejsie użytkownika systemu, gdy urządzenie wykryje zamiar użycia przez użytkownika aplikacji Digital Assistant (np. poprzez wykrycie obecności użytkownika za pomocą kamery).
- [9.8/H-3-4] MUSI wyświetlać wskaźnik mikrofonu i wyświetlać wykryte zapytanie użytkownika w interfejsie użytkownika zaraz po wykryciu zapytania użytkownika.
- [9.8/H-3-5] NIE MOŻE zezwalać aplikacji instalowanej przez użytkownika na świadczenie usługi wizualnego wykrywania zapytań.
Zobacz rewizję
Jeśli implementacje urządzeń przenośnych zwrócą android.os.Build.VERSION_CODES.T
dla android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, to:
- MUSI spełniać wymagania dotyczące multimediów wymienione w sekcji 2.2.7.1 CDD Androida 13 .
Rozpocznij nowe wymagania
Jeśli implementacje urządzeń przenośnych zwrócąandroid.os.Build.VERSION_CODES.U
dla android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, to:- [5.1/H-1-1] MUSI ogłaszać maksymalną liczbę sesji sprzętowego dekodera wideo, które można uruchomić jednocześnie w dowolnej kombinacji kodeków za pomocą metod
CodecCapabilities.getMaxSupportedInstances()
iVideoCapabilities.getSupportedPerformancePoints()
. - [5.1/H-1-2] MUSI obsługiwać 6 sesji 8-bitowego (SDR) sprzętowego dekodera wideo (AVC, HEVC, VP9, AV1 lub nowszego) w dowolnej kombinacji kodeków działających jednocześnie z 3 sesjami w rozdzielczości 1080p przy 30 fps i 3 sesje w rozdzielczości 4k przy 30 klatkach na sekundę, chyba że AV1. Kodeki AV1 są wymagane tylko do obsługi rozdzielczości 1080p, ale nadal są wymagane do obsługi 6 instancji przy 1080p30fps.
- [5.1/H-1-3] MUSI ogłaszać maksymalną liczbę sesji sprzętowego kodera wideo, które można uruchomić jednocześnie w dowolnej kombinacji kodeków za pomocą metod
CodecCapabilities.getMaxSupportedInstances()
iVideoCapabilities.getSupportedPerformancePoints()
. - [5.1/H-1-4] MUSI obsługiwać 6 instancji 8-bitowego (SDR) sesji sprzętowego kodera wideo (AVC, HEVC, VP9, AV1 lub nowszego) w dowolnej kombinacji kodeków działających jednocześnie z 4 sesjami w rozdzielczości 1080p przy 30 fps i 2 sesje w rozdzielczości 4k przy 30 klatkach na sekundę, chyba że AV1. Kodeki AV1 są wymagane tylko do obsługi rozdzielczości 1080p, ale nadal są wymagane do obsługi 6 instancji przy 1080p30fps.
- [5.1/H-1-5] MUSI ogłaszać maksymalną liczbę sesji sprzętowego kodera i dekodera wideo, które można uruchomić jednocześnie w dowolnej kombinacji kodeków za pomocą metod
CodecCapabilities.getMaxSupportedInstances()
iVideoCapabilities.getSupportedPerformancePoints()
. - [5.1/H-1-6] MUSI obsługiwać 6 instancji 8-bitowego (SDR) sprzętowego dekodera wideo i sesji sprzętowego kodera wideo (AVC, HEVC, VP9, AV1 lub nowszy) w dowolnej kombinacji kodeków działających jednocześnie z 3 sesjami w rozdzielczości 4K Rozdzielczość @30fps (chyba że AV1), z czego maksymalnie 2 to sesje kodera i 3 sesje w rozdzielczości 1080p. Kodeki AV1 są wymagane tylko do obsługi rozdzielczości 1080p, ale nadal są wymagane do obsługi 6 instancji przy 1080p30fps.
- [5.1/H-1-19] MUSI obsługiwać 3 wystąpienia 10-bitowego (HDR) sprzętowego dekodera wideo i sesji sprzętowego kodera wideo (AVC, HEVC, VP9, AV1 lub nowsze) w dowolnej kombinacji kodeków działających jednocześnie w rozdzielczości 4K przy 30 klatkach na sekundę (chyba że AV1), z czego co najwyżej 1 to sesja kodera, którą można skonfigurować w formacie wejściowym RGBA_1010102 za pośrednictwem powierzchni GL. Generowanie metadanych HDR przez koder nie jest wymagane w przypadku kodowania z powierzchni GL. Sesje kodeka AV1 są wymagane tylko do obsługi rozdzielczości 1080p, nawet jeśli wymaganie to wymaga 4K.
- [5.1/H-1-7] MUSI mieć opóźnienie inicjalizacji kodeka wynoszące 40 ms lub mniej dla sesji kodowania wideo w rozdzielczości 1080p lub mniejszej dla wszystkich sprzętowych kodeków wideo pod obciążeniem. Ładowanie tutaj jest zdefiniowane jako jednoczesna sesja transkodowania wyłącznie wideo z 1080p na 720p przy użyciu sprzętowych kodeków wideo wraz z inicjowaniem nagrywania audio-wideo 1080p. W przypadku kodeka Dolby Vision opóźnienie inicjalizacji kodeka MUSI wynosić 50 ms lub mniej.
- [5.1/H-1-8] MUSI mieć opóźnienie inicjalizacji kodeka wynoszące 30 ms lub mniej dla sesji kodowania dźwięku o przepływności 128 kb/s lub niższej dla wszystkich koderów audio pod obciążeniem. Ładowanie tutaj jest zdefiniowane jako jednoczesna sesja transkodowania wyłącznie wideo z 1080p na 720p przy użyciu sprzętowych kodeków wideo wraz z inicjowaniem nagrywania audio-wideo 1080p.
- [5.1/H-1-9] MUSI obsługiwać 2 wystąpienia bezpiecznych sesji sprzętowego dekodera wideo (AVC, HEVC, VP9, AV1 lub nowsze) w dowolnej kombinacji kodeków działających jednocześnie w rozdzielczości 4k przy 30 fps (chyba że AV1) dla obu 8- bitowa (SDR) i 10-bitowa zawartość HDR. Sesje kodeka AV1 są wymagane tylko do obsługi rozdzielczości 1080p, nawet jeśli wymaganie to wymaga 4K.
- [5.1/H-1-10] MUSI obsługiwać 3 wystąpienia niezabezpieczonych sesji sprzętowego dekodera wideo wraz z 1 wystąpieniem bezpiecznej sesji sprzętowego dekodera wideo (łącznie 4 instancje) (AVC, HEVC, VP9, AV1 lub nowszy) w dowolnym kodeku kombinacja działająca jednocześnie z 3 sesjami w rozdzielczości 4K przy 30 fps (chyba że AV1), która obejmuje jedną bezpieczną sesję dekodera i 1 nn-bezpieczną sesję w rozdzielczości 1080p przy 30 fps, gdzie maksymalnie 2 sesje mogą odbywać się w 10-bitowym HDR. Sesje kodeka AV1 są wymagane tylko do obsługi rozdzielczości 1080p, nawet jeśli wymaganie to wymaga 4K.
- [5.1/H-1-11] MUSI obsługiwać bezpieczny dekoder dla każdego sprzętowego dekodera AVC, HEVC, VP9 lub AV1 na urządzeniu.
- [5.1/H-1-12] MUSI mieć opóźnienie inicjalizacji kodeka wynoszące 40 ms lub mniej dla sesji dekodowania wideo w rozdzielczości 1080p lub mniejszej dla wszystkich sprzętowych dekoderów wideo pod obciążeniem. Ładowanie tutaj jest zdefiniowane jako jednoczesna sesja transkodowania wyłącznie wideo z 1080p na 720p przy użyciu sprzętowych kodeków wideo wraz z inicjalizacją odtwarzania audio-wideo 1080p. W przypadku kodeka Dolby Vision opóźnienie inicjalizacji kodeka MUSI wynosić 50 ms lub mniej.
- [5.1/H-1-13] MUSI mieć opóźnienie inicjalizacji kodeka wynoszące 30 ms lub mniej dla sesji dekodowania dźwięku o przepływności 128 kb/s lub niższej dla wszystkich dekoderów audio pod obciążeniem. Ładowanie tutaj jest zdefiniowane jako jednoczesna sesja transkodowania wyłącznie wideo z 1080p na 720p przy użyciu sprzętowych kodeków wideo wraz z inicjalizacją odtwarzania audio-wideo 1080p.
- [5.1/H-1-14] MUSI obsługiwać dekoder sprzętowy AV1 Main 10, poziom 4.1 i ziarno filmu.
- [5.1/H-1-15] MUSI mieć co najmniej 1 sprzętowy dekoder wideo obsługujący 4K60.
- [5.1/H-1-16] MUSI mieć co najmniej 1 sprzętowy koder wideo obsługujący 4K60.
- [5.3/H-1-1] NIE MOŻE powodować utraty więcej niż 1 klatki na 10 sekund (tzn. mniej niż 0,167 procent klatki) w przypadku sesji wideo 4K przy 60 kl./s pod obciążeniem.
- [5.3/H-1-2] NIE MOŻE tracić więcej niż 1 klatki na 10 sekund podczas zmiany rozdzielczości wideo w sesji wideo 60 kl./s pod obciążeniem dla sesji 4K.
- [5.6/H-1-1] MUSI mieć opóźnienie „od dotknięcia do tonu” wynoszące 80 milisekund lub mniej przy użyciu testu „od dotknięcia do tonu” CTS Verifier.
- [5.6/H-1-2] MUSI mieć opóźnienie dźwięku w obie strony wynoszące 80 milisekund lub mniej w co najmniej jednej obsługiwanej ścieżce danych.
- [5.6/H-1-3] MUSI obsługiwać >=24-bitowy dźwięk dla wyjścia stereo przez gniazda audio 3,5 mm, jeśli są obecne, i dźwięk przez USB, jeśli jest obsługiwany przez całą ścieżkę danych w celu zapewnienia niskich opóźnień i konfiguracji przesyłania strumieniowego. W przypadku konfiguracji o niskim opóźnieniu aplikacja AAudio powinna używać trybu wywołania zwrotnego o niskim opóźnieniu. Do konfiguracji przesyłania strumieniowego aplikacja powinna używać Java AudioTrack. Zarówno w konfiguracjach o niskim opóźnieniu, jak i konfiguracji przesyłania strumieniowego, wyjście wyjściowe HAL powinno akceptować
AUDIO_FORMAT_PCM_24_BIT
,AUDIO_FORMAT_PCM_24_BIT_PACKED
,AUDIO_FORMAT_PCM_32_BIT
lubAUDIO_FORMAT_PCM_FLOAT
dla docelowego formatu wyjściowego. - [5.6/H-1-4] MUSI obsługiwać >= 4-kanałowe urządzenia audio USB (używane przez kontrolery DJ do podglądu utworów).
- [5.6/H-1-5] MUSI obsługiwać urządzenia MIDI zgodne z klasą i deklarować flagę funkcji MIDI.
- [5.6/H-1-9] MUSI obsługiwać miksowanie co najmniej 12 kanałów. Oznacza to możliwość otwarcia ścieżki AudioTrack z maską kanału 7.1.4 i odpowiedniego przestrzennego lub zmiksowanego dźwięku wszystkich kanałów do stereo.
- [5.6/H-SR] ZALECA SIĘ, aby obsługiwały miksowanie 24-kanałowe z obsługą co najmniej masek 9.1.6 i 22.2-kanałowych.
- [5.7/H-1-2] MUSI obsługiwać
MediaDrm.SECURITY_LEVEL_HW_SECURE_ALL
z poniższymi możliwościami deszyfrowania treści.
Minimalny rozmiar próbki | 4 MB |
Minimalna liczba podpróbek — H264 lub HEVC | 32 |
Minimalna liczba podpróbek - VP9 | 9 |
Minimalna liczba podpróbek - AV1 | 288 |
Minimalny rozmiar bufora podpróbki | 1 MB |
Minimalny ogólny rozmiar bufora kryptograficznego | 500 KiB |
Minimalna liczba równoczesnych sesji | 30 |
Minimalna liczba kluczy na sesję | 20 |
Minimalna łączna liczba kluczy (wszystkie sesje) | 80 |
Minimalna łączna liczba kluczy DRM (wszystkie sesje) | 6 |
Rozmiar wiadomości | 16 KiB |
Odszyfrowane klatki na sekundę | 60 kl./s |
- [5.1/H-1-17] MUSI mieć co najmniej 1 sprzętowy dekoder obrazu obsługujący profil podstawowy AVIF.
- [5.1/H-1-18] MUSI obsługiwać koder AV1, który może kodować rozdzielczość do 480p przy 30 klatkach na sekundę i 1 Mb/s.
-
[5.12/H-1-1] MUSI[5.12/H-SR] są zdecydowanie zalecane do obsługi funkcjiFeature_HdrEditing
dla wszystkich sprzętowych koderów AV1 i HEVC obecnych na urządzeniu. - [5.12/H-1-2] MUSI obsługiwać format kolorów RGBA_1010102 dla wszystkich sprzętowych koderów AV1 i HEVC obecnych w urządzeniu.
- [5.12/H-1-3] MUSI reklamować obsługę rozszerzenia EXT_YUV_target w celu próbkowania tekstur YUV zarówno w wersji 8, jak i 10-bitowej.
- [7.1.4/H-1-1] MUSI mieć co najmniej 6 nakładek sprzętowych w jednostce przetwarzania danych (DPU) Hardware Composer (HWC), z czego co najmniej 2 z nich mogą wyświetlać 10-bitową zawartość wideo.
Jeśli implementacje urządzeń przenośnych zwracają android.os.Build.VERSION_CODES.U
dla android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
i obejmują obsługę sprzętowego kodera AVC lub HEVC, wówczas:
- [5.2/H-2-1] MUSI spełniać minimalny cel jakości określony przez krzywe szybkości zniekształcenia kodera wideo dla sprzętowych kodeków AVC i HEVC, jak określono w przyszłej dokumentacji.
Zobacz rewizję
android.os.Build.VERSION_CODES.U
dla android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, to:- [ 7.5 /H-1-1] MUSI być wyposażony w główny aparat skierowany do tyłu o rozdzielczości co najmniej 12 megapikseli obsługujący przechwytywanie wideo w szybkości 4k przy 30 klatkach na sekundę. Główna kamera skierowana do tyłu to kamera skierowana do tyłu o najniższym identyfikatorze kamery.
- [ 7.5 /H-1-2] MUSI być wyposażony w główny aparat skierowany do przodu o rozdzielczości co najmniej 6 megapikseli i obsługujący przechwytywanie wideo w rozdzielczości 1080p przy 30 klatkach na sekundę. Główna kamera skierowana do przodu to kamera skierowana do przodu o najniższym identyfikatorze kamery.
- [ 7.5 /H-1-3] MUSI obsługiwać właściwość
android.info.supportedHardwareLevel
w trybie FULL lub lepszym dla obu głównych kamer. - [ 7.5 /H-1-4] MUSI obsługiwać
CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
dla obu kamer głównych. - [ 7.5 /H-1-5] MUSI mieć opóźnienie przechwytywania JPEG przez kamerę2 < 1000
900ms dla rozdzielczości 1080p, mierzone za pomocą testu wydajności kamery CTS w warunkach oświetlenia ITS (3000 K) dla obu kamer głównych. - [ 7.5 /H-1-6] MUSI mieć opóźnienie uruchamiania kamery2 (otwarcie kamery do pierwszej klatki podglądu) < 500 ms, jak zmierzono za pomocą testu wydajności kamery CTS w warunkach oświetlenia ITS (3000 K) dla obu kamer głównych.
- [ 7.5 /H-1-8] MUSI obsługiwać
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW
iandroid.graphics.ImageFormat.RAW_SENSOR
dla głównego tylnego aparatu. - [ 7.5 /H-1-9] MUSI być wyposażony w główny aparat skierowany tyłem do kierunku jazdy, obsługujący rozdzielczość 720p lub 1080p przy 240 klatkach na sekundę.
- [ 7.5 /H-1-10] MUSI mieć min. ZOOM_RATIO < 1,0 dla kamer głównych, jeśli w tę samą stronę skierowana jest ultraszerokokątna kamera RGB.
- [ 7.5 /H-1-11] MUSI wdrożyć jednoczesne przesyłanie strumieniowe przód-tył w kamerach głównych.
- [ 7.5 /H-1-12] MUSI obsługiwać
CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION
zarówno dla głównej kamery przedniej, jak i głównej tylnej kamery. - [ 7.5 /H-1-13] MUSI obsługiwać funkcję
LOGICAL_MULTI_CAMERA
dla kamer głównych, jeśli jest więcej niż 1 kamera RGB zwrócona w tym samym kierunku. - [ 7.5 /H-1-14] MUSI obsługiwać funkcję
STREAM_USE_CASE
zarówno dla głównej kamery przedniej, jak i głównej tylnej kamery. - [ 7.5 /H-1-15] MUSI obsługiwać rozszerzenia
Bokeh itrybu nocnego poprzez rozszerzenia CameraX i Camera2 dla kamer głównych. - [ 7.5 /H-1-16] MUSI obsługiwać funkcję DYNAMIC_RANGE_TEN_BIT dla kamer głównych.
- [ 7.5 /H-1-17] MUSI obsługiwać CLEAN_SCENE_MODE_FACE_PRIORITY i wykrywanie twarzy ( STATISTICS_FACE_DETECT_MODE_SIMPLE lub STATISTICS_FACE_DETECT_MODE_FULL ) dla kamer głównych.
Zobacz rewizję
android.os.Build.VERSION_CODES.U
dla android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, to:- [7.1.1.1/H-2-1] MUSI mieć rozdzielczość ekranu co najmniej 1080p.
- [7.1.1.3/H-2-1] MUSI mieć gęstość ekranu co najmniej 400 dpi.
- [7.1.1.3/H-3-1] MUSI mieć wyświetlacz HDR obsługujący średnio co najmniej 1000 nitów.
- [7.6.1/H-2-1] MUSI mieć co najmniej 8 GB pamięci fizycznej.
Zobacz rewizję
android.os.Build.VERSION_CODES.U
dla android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, to:- [8.2/H-1-1] MUSI zapewniać wydajność zapisu sekwencyjnego na poziomie co najmniej 150 MB/s.
- [8.2/H-1-2] MUSI zapewniać wydajność losowego zapisu na poziomie co najmniej 10 MB/s.
- [8.2/H-1-3] MUSI zapewniać prędkość odczytu sekwencyjnego co najmniej 250 MB/s.
- [8.2/H-1-4] MUSI zapewniać wydajność losowego odczytu na poziomie co najmniej 100 MB/s.
- [8.2/H-1-5] MUSI zapewniać równoległy, sekwencyjny odczyt i zapis z wydajnością 2x odczytu i 1x zapisu co najmniej 50 MB/s.
Zobacz rewizję
Implementacje urządzeń telewizyjnych MUSZĄ obsługiwać następujące formaty kodowania wideo i udostępniać je aplikacjom innych firm:
- [ 5.2 /T-0-3] AV1
Implementacje urządzeń telewizyjnych MUSZĄ obsługiwać następujące formaty dekodowania wideo i udostępniać je aplikacjom innych firm:
- [ 5.3.2 /T-0-7] AV1
Zobacz rewizję
Jeśli implementacje urządzeń mają bezpieczny ekran blokady i obejmują co najmniej jednego agenta zaufania, który implementuje interfejs API systemu TrustAgentService
, to:
- [ 9.11.1 /W-1-1] MUSI wzywać użytkownika do zastosowania jednej z zalecanych metod podstawowego uwierzytelnienia (np. PIN, wzór, hasło) częściej niż raz na 72 godziny.
Zobacz rewizję
Jeśli implementacje urządzenia obejmują obsługę radia AM/FM i udostępniają tę funkcjonalność dowolnej aplikacji, to:
- [ 7.4
.10/A-0-1] MUSI zadeklarować obsługęFEATURE_BROADCAST_RADIO
.
Kamera zewnętrzna to kamera, która rejestruje sceny poza implementacją urządzenia, np. kamera cofania.
Wdrożenia urządzeń motoryzacyjnych:
- POWINIEN zawierać jedną lub więcej kamer zewnętrznych.
Jeśli wdrożenia urządzeń motoryzacyjnych obejmują kamerę zewnętrzną, w przypadku takiej kamery:
- [ 7.5 /A-1-1] NIE MOGĄ mieć dostępu do kamer zewnętrznych za pośrednictwem interfejsów API aparatu Android , chyba że spełniają one podstawowe wymagania dotyczące kamer.
- [ 7.5 /A-SR-1] ZDECYDOWANIE ZALECA SIĘ, aby nie obracać ani nie odzwierciedlać w poziomie podglądu z kamery.
- [ 7.5 /A-SR-2] ZALECA SIĘ, aby miały rozdzielczość co najmniej 1,3 megapiksela.
- POWINIEN mieć sprzęt o stałej ostrości lub EDOF (rozszerzona głębia ostrości).
- MOŻE mieć w sterowniku aparatu zaimplementowany sprzętowy lub programowy autofokus.
Jeśli implementacje urządzeń motoryzacyjnych obejmują jedną lub więcej kamer widoku zewnętrznego i ładują usługę Exterior View System (EVS), wówczas w przypadku takiej kamery:
- [ 7.5 /A-2-1] NIE WOLNO obracać ani poziomo odzwierciedlać podglądu z kamery.
Wdrożenia urządzeń motoryzacyjnych:
- MOŻE zawierać jedną lub więcej kamer dostępnych dla aplikacji innych firm.
Jeśli wdrożenia urządzeń motoryzacyjnych obejmują co najmniej jedną kamerę i udostępniają ją aplikacjom stron trzecich, to:
- [ 7.5 /A-3-1] MUSI zgłosić flagę funkcji
android.hardware.camera.any
. - [ 7.5 /A-3-2] NIE MOŻE deklarować kamery jako kamery systemowej .
- MOŻE obsługiwać kamery zewnętrzne opisane w sekcji 7.5.3 .
- MOŻE zawierać funkcje (takie jak automatyczne ustawianie ostrości itp.) dostępne dla kamer skierowanych do tyłu zgodnie z opisem w sekcji 7.5.1 .
Kamera skierowana do tyłu oznacza kamerę skierowaną na cały świat, którą można umieścić w dowolnym miejscu pojazdu i skierowaną na zewnątrz kabiny pojazdu; to znaczy, że obrazuje sceny po drugiej stronie nadwozia pojazdu, podobnie jak kamera cofania.
Kamera skierowana do przodu oznacza kamerę skierowaną do użytkownika, którą można umieścić w dowolnym miejscu pojazdu i skierowaną do wnętrza kabiny pojazdu; to znaczy tworzy obrazy użytkownika, na przykład do wideokonferencji i podobnych zastosowań.
Wdrożenia urządzeń motoryzacyjnych:
- [7.5/A-SR-1] ZALECA SIĘ, aby zawierały jedną lub więcej kamer skierowanych na zewnątrz.
- MOŻE zawierać jedną lub więcej kamer skierowanych w stronę użytkownika.
- [7.5/A-SR-2] ZALECA SIĘ, aby obsługiwały jednoczesne przesyłanie strumieniowe z wielu kamer.
Jeśli implementacje urządzeń motoryzacyjnych obejmują co najmniej jedną kamerę skierowaną na świat, wówczas w przypadku takiej kamery:
- [7.5/A-1-1] MUSI być zorientowany tak, aby dłuższy wymiar kamery był wyrównany z płaszczyzną XY osi czujnika samochodowego Android.
- [7.5/A-SR-3] ZDECYDOWANIE ZALECA SIĘ posiadanie sprzętu o stałej ogniskowej lub sprzętu EDOF (rozszerzona głębia ostrości).
- [7.5/A-1-2] MUSI mieć główną kamerę zwróconą w stronę świata jako kamerę zwróconą w stronę świata z najniższym identyfikatorem kamery.
Jeśli implementacje urządzeń motoryzacyjnych obejmują co najmniej jedną kamerę zwróconą w stronę użytkownika, wówczas w przypadku takiej kamery:
- [7.5/A-2-1] Główna kamera skierowana w stronę użytkownika MUSI być kamerą skierowaną w stronę użytkownika o najniższym identyfikatorze kamery.
- MOŻE być zorientowany w taki sposób, aby dłuższy wymiar kamery był wyrównany z płaszczyzną XY osi czujnika samochodowego Androida.
Jeśli implementacje urządzeń motoryzacyjnych obejmują kamerę, do której można uzyskać dostęp za pośrednictwem interfejsu API android.hardware.Camera
lub android.hardware.camera2
, wówczas:
- [7.5/A-3-1] MUSI spełniać podstawowe wymagania dotyczące aparatu określone w sekcji 7.5.
Jeśli implementacje urządzeń motoryzacyjnych obejmują kamerę, do której nie można uzyskać dostępu za pośrednictwem interfejsu API android.hardware.Camera
ani interfejsu API android.hardware.camera2
, wówczas:
- [7.5/A-4-1] MUSI być dostępny poprzez usługę Extended View System.
Jeśli implementacje urządzeń motoryzacyjnych obejmują jedną lub więcej kamer dostępnych za pośrednictwem usługi Extended View System Service, w przypadku takiej kamery:
- [7.5/A-5-1] NIE MOŻE obracać ani poziomo odzwierciedlać podglądu z kamery.
- [7.5/A-SR-4] ZALECA SIĘ, aby miały rozdzielczość co najmniej 1,3 megapiksela.
Jeśli implementacje urządzeń motoryzacyjnych obejmują jedną lub więcej kamer, które są dostępne zarówno za pośrednictwem usługi Extended View System Service, jak i interfejsu API android.hardware.Camera
lub android.hardware.Camera2
, wówczas w przypadku takiej kamery:
- [7.5/A-6-1] MUSI zgłosić ten sam identyfikator kamery.
Jeśli implementacje urządzeń motoryzacyjnych zapewniają zastrzeżony interfejs API kamery, to:
- [7.5/A-7-1] MUSI zaimplementować takie API kamery, używając API
android.hardware.camera2
lub API systemu Extended View.
Zobacz rewizję
Wdrożenia urządzeń motoryzacyjnych:
- [ 3.8 /A-0-1] NIE MOŻE umożliwiać pełnoprawnym użytkownikom dodatkowym, którzy nie są bieżącymi użytkownikami pierwszego planu, uruchamianie działań i dostęp do interfejsu użytkownika na jakichkolwiek wyświetlaczach.
Zobacz rewizję
Jeśli implementacje urządzeń motoryzacyjnych deklarują android.hardware.microphone
, to:
- [ 9.8.2 /A-1-1] MUSI wyświetlać wskaźnik mikrofonu, gdy aplikacja uzyskuje dostęp do danych dźwiękowych z mikrofonu, ale nie wtedy, gdy dostęp do mikrofonu jest uzyskiwany tylko przez
HotwordDetectionService
,SOURCE_HOTWORD
,ContentCaptureService
lub aplikacje pełniące role opisane w sekcji 9.1 z identyfikatorem CDD [C-4-X]. - [ 9.8.2 /A-1-2] Nie MOŻE ukrywać wskaźnika mikrofonu w przypadku aplikacji systemowych, które mają widoczne interfejsy użytkownika lub bezpośrednią interakcję z użytkownikiem.
- [ 9.8.2 /A-1-3] MUSI zapewniać użytkownikowi uprawnienia do przełączania mikrofonu w aplikacji Ustawienia.
Jeśli implementacje urządzeń motoryzacyjnych deklarują android.hardware.camera.any
, to:
- [ 9.8.2 /A-2-1] MUSI wyświetlać wskaźnik kamery, gdy aplikacja uzyskuje dostęp do danych z kamery na żywo, ale nie wtedy, gdy dostęp do kamery uzyskują tylko aplikacje pełniące role
określonew Sekcji 9.1 Uprawnienia z identyfikatorem CDD [C-4-X][C-3-X].
- [ 9.8.2 /A-2-3] MUSI zapewniać użytkownikowi dostęp do przełączania kamery w aplikacji Ustawienia.
- [ 9.8.2 /A-2-4] MUSI wyświetlać najnowsze i aktywne aplikacje korzystające z aparatu, zwrócone przez
PermissionManager.getIndicatorAppOpUsageData()
, wraz ze wszystkimi powiązanymi z nimi komunikatami o przypisaniu.
Jeśli implementacje urządzeń mają bezpieczny ekran blokady i obejmują co najmniej jednego agenta zaufania, który implementuje interfejs API systemu TrustAgentService
, to:
- [ 9.11.1 /A-1-1] MUSI wzywać użytkownika do zastosowania jednej z zalecanych metod podstawowego uwierzytelnienia (np. PIN, wzór, hasło) częściej niż raz na 336 godzin.
3. Oprogramowanie
3.1. Zgodność zarządzanego interfejsu API :
Zobacz rewizję
Implementacje urządzeń:
- [C-0-8] NIE MOŻE obsługiwać instalowania aplikacji przeznaczonych dla poziomu API mniejszego niż 23.
3.2.3.5. Warunkowe cele aplikacji :
Zobacz rewizję
Jeśli implementacje urządzeń zgłaszają
android.hardware.nfc.uicc
lubandroid.hardware.nfc.ese
, to:- [C-19-1] MUSI wdrożyć interfejs API NfcAdapter.ACTION_TRANSACTION_DETECTED (jako „EVT_TRANSACTION” zdefiniowany w specyfikacji technicznej stowarzyszenia GSM TS.26 – wymagania dotyczące zestawu słuchawkowego NFC) .
3.3.1. Interfejsy binarne aplikacji :
Zobacz rewizję
Implementacje urządzeń:
- [C-0-12] MUSI wyeksportować symbole funkcji dla podstawowych symboli funkcji
Vulkan 1.0Vulkan 1.1 , a także rozszerzeńVK_KHR_surface
,VK_KHR_android_surface
,VK_KHR_swapchain
,VK_KHR_maintenance1
iVK_KHR_get_physical_device_properties2
poprzez bibliotekęlibvulkan.so
. Należy zauważyć, że chociaż wszystkie symbole MUSZĄ być obecne, sekcja 7.1.4.2 opisuje bardziej szczegółowo wymagania, kiedy oczekuje się pełnej implementacji każdej odpowiedniej funkcji.
- [C-0-12] MUSI wyeksportować symbole funkcji dla podstawowych symboli funkcji
Zobacz rewizję
Jeśli implementacje urządzeń obejmują ekran lub wyjście wideo, to:
- [C-1-5] MUSI generować dynamiczne palety tonów kolorów przy użyciu stylów motywów kolorów wyliczonych w dokumentacji
Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
(patrzandroid.theme.customization.theme_styles
), a mianowicieTONAL_SPOT
,VIBRANT
,EXPRESSIVE
,SPRITZ
,RAINBOW
,FRUIT_SALAD
iMONOCHROMATIC
.
- [C-1-5] MUSI generować dynamiczne palety tonów kolorów przy użyciu stylów motywów kolorów wyliczonych w dokumentacji
3.8.8. Przełączanie aktywności :
Zobacz rewizję
Jeśli implementacje urządzenia, w tym klawisz nawigacyjny funkcji ostatnich, jak opisano w sekcji 7.2.3 , zmieniają interfejs, to:
- [C-1-2] MUSI wdrożyć funkcję przypinania ekranu i udostępnić użytkownikowi menu ustawień umożliwiające przełączanie tej funkcji.
3.9.2 Obsługa profili zarządzanych :
Zobacz rewizję
Jeśli implementacje urządzeń deklarują
android.software.managed_users
, to:- [C-1-10] musi upewnić się, że dane z ekranu są zapisywane w pamięci profilu roboczego, gdy zrzut ekranu jest przechwycony za pomocą okna
topActivity
, które skupia się (ten, z którym użytkownik interakcja z ostatnim spośród wszystkich działań) i należy do profilu roboczego profilu roboczego aplikacja . - [C-1-11] Nie można przechwytywać żadnej innej zawartości ekranu (pasek systemowy, powiadomienia lub jakakolwiek zawartość profilu osobistego), z wyjątkiem okna/ systemu aplikacji profilu roboczego podczas zapisywania zrzutu ekranu na profilu pracy (aby upewnić się, że dane profilu osobistego są nie zapisane w profilu pracy).
- [C-1-10] musi upewnić się, że dane z ekranu są zapisywane w pamięci profilu roboczego, gdy zrzut ekranu jest przechwycony za pomocą okna
3.9.5 Ramy rozdzielczości zasady urządzenia : Nowa sekcja
Zobacz wersję
Jeśli implementacje urządzeń zgłaszają
android.software.device_admin
lubandroid.software.managed_users
, to: one:- [C-1-1] musi rozwiązać konflikty polityki urządzeń, jak udokumentowano w dokumentacji AOSP.
5. Kompatybilność multimedialna
Zobacz wersję
Implementacje urządzeń muszą obsługiwać kodowanie następujące kodowanie obrazu:
- [C-0-4] AVIF
- Urządzenia muszą obsługiwać
BITRATE_MODE_CQ
i profil podstawowy.
- Urządzenia muszą obsługiwać
- [C-0-4] AVIF
Zobacz wersję
Implementacje urządzeń muszą obsługiwać dekodowanie następujące kodowanie obrazu:
[C-0-7] AVIF (profil podstawowy)
5.1.6. Szczegóły kodeków obrazu :
Zobacz wersję
Format/kodek Detale Obsługiwane typy plików/formaty kontenera JPG Baza+progresywna Jpeg (.jpg) GIF-y GIF (.gif) PNG Png (.png) BMP BMP (.bmp) Webp WebP (.Webp) Surowy Arw (.arw), cr2 (.cr2), dng (.dng), nef (.nef), nRW (.nRW), orf (.orf), pef (.pef), RAF (.raf), rw2 ( .RW2), SRW (.SRW) Heif Obraz, kolekcja obrazu, sekwencja obrazów Heif (.heif), heic (.heic) AVIF (profil podstawowy) Obraz, kolekcja obrazu, profil podstawowy sekwencji obrazu Pojemnik na heif (.avif) Zobacz wersję
Format/kodek Detale Typy plików/formaty kontenera do obsługi H.263 - 3GPP (.3GP)
- MPEG-4 (.MP4)
- Matroska (.mkv, tylko dekodowanie)
H.264 AVC Szczegółowe informacje znajdują się w sekcji 5.2 i 5.3 - 3GPP (.3GP)
- MPEG-4 (.MP4)
- MPEG-2 TS (.ts, nie można go szukać)
- Matroska (.mkv, tylko dekodowanie)
H.265 HEVC Szczegółowe informacje znajdują się w sekcji 5.3 - MPEG-4 (.MP4)
- Matroska (.mkv, tylko dekodowanie)
MPEG-2 Główny profil - MPEG2-TS (.ts, nie można go szukać)
- MPEG-4 (.mp4, tylko dekodowanie)
- Matroska (.mkv, tylko dekodowanie)
MPEG-4 sp - 3GPP (.3GP)
- MPEG-4 (.MP4)
- Matroska (.mkv, tylko dekodowanie)
VP8 Szczegółowe informacje znajdują się w sekcji 5.2 i 5.3 - Webm (.Webm)
- Matroska (.mkv)
VP9 Szczegółowe informacje znajdują się w sekcji 5.3 - Webm (.Webm)
- Matroska (.mkv)
Av1 Szczegółowe informacje znajdują się w sekcji 5.2 i sekcji 5.3 - MPEG-4 (.MP4)
- Matroska (.mkv, tylko dekodowanie)
5.1.10. Charakterystyka kodeksu medialnego :
Zobacz wersję
Jeśli implementacje urządzeń obsługują kodeki wideo:
- [C-2-1] Wszystkie kodeki wideo muszą opublikować możliwą do osiągnięcia dane dotyczące liczby klatek na sekundę dla następujących rozmiarów, jeśli są obsługiwane przez kodek:
SD (niska jakość) SD (wysoka jakość) HD 720P HD 1080P UHD Rozdzielczość wideo - 176 x 144 PX (H263, MPEG2, MPEG4)
- 352 x 288 PX (enkoder MPEG4, H263, MPEG2)
- 320 x 180 PX (VP8, VP8)
- 320 x 240 px (inne)
- 704 x 576 PX (H263)
- 640 x 360 PX (VP8, VP9)
- 640 x 480 PX (enkoder MPEG4)
- 720 x 480 px (inne, av1 )
- 1408 x 1152 PX (H263)
- 1280 x 720 PX (inne, AV1 )
1920 x 1080 PX (inne niż MPEG4, AV1 ) 3840 x 2160 PX (HEVC, VP9, AV1 ) Zobacz wersję
Jeśli implementacje urządzeń obsługują jakikolwiek enkoder wideo i udostępnij je aplikacjom stron trzecich, one:- Nie powinno być ponad dwoma przesuwnymi oknami, ponad 15% w stosunku do transmisji między odstępami wewnątrzramki (I-Frame).
- Nie powinno być więcej niż 100% nad szybkością nad przesuwanym oknem 1 sekundy.
Jeśli implementacje urządzeń obsługują jakikolwiek enkoder wideo i udostępnij je aplikacjom stron trzecich i ustaw
MediaFormat.KEY_BITRATE_MODE
doBITRATE_MODE_VBR
, tak że enkoder działał w trybie zmiennym, a następnie, o ile nie wpływa na podłogę minimalnej jakości , zakodowany transmisja temperatury:-
[C-5-1] nie powinnobyć , nad jednym przesuwnym oknem, więcej niż 15% w porównaniu z transmisją między odstępami wewnątrzramki (I-Frame). -
[C-5-2]nie powinno być więcej niż 100% w porównaniu z przesuwanym oknem 1 sekundy.
Jeśli implementacje urządzeń obsługują jakikolwiek enkoder wideo i udostępnij je aplikacjom stron trzecich i ustaw
MediaFormat.KEY_BITRATE_MODE
naBITRATE_MODE_CBR
, więc enkoder działa w trybie stałego bitratu, a następnie zakodowany bitrate:-
[C-6-1] musibyć zdecydowanie zalecany, aby nie być więcej niż 15% w stosunku do docelowego temperatury przepustowości w przesuwanym oknie 1 sekundy.
Zobacz wersję
Jeśli implementacje urządzeń obsługują enkodery H.263 i udostępniają je aplikacjom innych firm, one:
- [C-1-1] musi obsługiwać rozdzielczość QCIF (176 x 144) przy użyciu poziomu profilu wyjściowego 45. Rozdzielczość SQCIF jest opcjonalna.
-
Powinien obsługiwać dynamicznie konfigurowalne transmisje transmisji obsługiwanego enkodera.
Zobacz wersję
Jeśli implementacje urządzeń obsługują kodek H.265, one:
- [C-1-1] musi obsługiwać główny poziom profilu 3 do 512 x 512 Rozdzielczość .
-
Powinien obsługiwać profile kodujące HD, jak wskazano w poniższej tabeli. - [C-SR-1] są zdecydowanie zalecane do obsługi profilu SD 720 x 480 i profili kodowania HD, jak wskazano w poniższej tabeli, jeśli istnieje enkoder sprzętowy.
5.2.6. AV1 : Nowa sekcja
Zobacz wersję
Jeśli implementacje urządzeń obsługują AV1 Codec, one: one:
- [C-1-1] musi obsługiwać główny profil, w tym zawartość 8-bitowa i 10-bitowa.
[C-1-2] musi opublikować dane dotyczące wydajności IE raportów o wydajności za pośrednictwem API za pośrednictwem API w tabeli poniżej
getSupportedFrameRatesFor()
lubgetSupportedPerformancePoints()
w celu uzyskania obsługi rozdzielczości w poniższej tabeli.[C-1-3] musi zaakceptować metadane HDR i wyprowadzić je do strumienia bitów
Jeśli enkoder AV1 jest przyspieszony sprzęt, to: to:
- [C-2-1] musi obsługiwać profil kodowania HD1080P z poniższej tabeli:
SD HD 720P HD 1080P UHD Rozdzielczość wideo 720 x 480 px 1280 x 720 px 1920 x 1080 px 3840 x 2160 px Ilość klatek 30 kl./s 30 kl./s 30 kl./s 30 kl./s Szybkość wideo 5 Mbps 8 Mbps 16 Mbps 50 Mb/s Zobacz wersję
Jeśli implementacje urządzeń obsługują dekodery H.263, one:
- [C-1-1] musi obsługiwać podstawowy poziom profilu 30 (CIF, QCIF i SQCIF ROZWIĄZANIE @ 30FPS 384KBPS) i poziomu 45 (rozdzielczości QCIF i SQCIF @ 30fps 128 kb / s) .
Zobacz wersję
Jeśli implementacje urządzeń obsługują kodek AV1, one:- [C-1-1] musi obsługiwać profil 0, w tym treść 10-bitowa.
Jeśli implementacje urządzeń obsługują kodek AV1 i udostępniają je aplikacjom stron trzecich, one:
- [C-1-1] musi obsługiwać główny profil, w tym zawartość 8-bitowa i 10-bitowa.
Jeśli implementacje urządzeń zapewniają obsługę kodeku AV1 z akcelerowanym dekoderem sprzętu, to: one:
- [C-2-1] musi być w stanie zdekodować co najmniej profile dekodowania wideo HD 720P z tabeli poniżej, gdy metoda wysokości zgłoszonej przez
Display.getSupportedModes()
jest równa lub większa niż 720p. - [C-2-2] musi być w stanie zdekodować co najmniej profile dekodowania wideo HD 1080P z tabeli poniżej, gdy metoda wysokości zgłoszonej przez
Display.getSupportedModes()
jest równa lub większa niż 1080p.
SD HD 720P HD 1080P UHD Rozdzielczość wideo 720 x 480 px 1280 x 720 px 1920 x 1080 px 3840 x 2160 px Ilość klatek 30 kl./s 30 kl./s 30 kl./s 30 kl./s Szybkość wideo 5 Mbps 8 Mbps 16 Mbps 50 Mb/s Jeśli implementacje urządzeń obsługują profil HDR za pośrednictwem interfejsów API multimediów, to: one:
- [C-3-1] musi obsługiwać wyodrębnienie i wyświetlanie metadanych HDR z strumienia bitów i/lub pojemnika.
- [C-3-2] musi poprawnie wyświetlać zawartość HDR na ekranie urządzenia lub na standardowym porcie wyjściowym wideo (na przykład HDMI).
5.4.2. Capture for Voice Recognition :
Zobacz wersję
Jeśli implementacje urządzeń deklarują
android.hardware.microphone
, one:- Powinien ustawić wrażliwość na wejście audio tak, aby źródło tonu sinusoidalnego 1000 Hz odtwarzane na poziomie ciśnienia dźwiękowego 90 dB (SPL) (mierzone
w odległości 30 cm odobok mikrofonu) daje idealną odpowiedź RMS 2500 w zakresie 1770 i 3530 dla 16 bitów (lub -22,35 dB ± 3dB pełnej skali dla próbek zmiennoprzecinkowego/podwójnej precyzji) dla każdego mikrofonu używanego do rejestrowania źródła dźwięku rozpoznawania głosu.
- Powinien ustawić wrażliwość na wejście audio tak, aby źródło tonu sinusoidalnego 1000 Hz odtwarzane na poziomie ciśnienia dźwiękowego 90 dB (SPL) (mierzone
Zobacz wersję
Jeśli implementacje urządzeń deklarują funkcję
android.hardware.audio.output
, one:- [C-1-4] musi obsługiwać efekty audio z wejściem i wyjściem zmiennoprzecinkowego.
- [C-1-5] musi upewnić się, że efekty audio obsługują wiele kanałów do liczby kanałów miksera znanego również jako FCC_LIMIT.
Zobacz wersję
Jeśli implementacje urządzeń deklarują
android.hardware.audio.output
, są one zdecydowanie zalecane do spełnienia lub przekraczania następujących wymagań:- [C-SR-4] Znacznik czasu wyjściowego zwróconego przez audiotrack.getTimEstamp i
AAudioStream_getTimestamp
jest dokładny do +/- 1 ms.
- [C-SR-4] Obliczone opóźnienia w obie strony oparte na znacznikach wejściowych i wyjściowych zwróconych przez
AAudioStream_getTimestamp
są silnie zalecane jako w granicach 30AAUDIO_PERFORMANCE_MODE_NONE
od mierzonego opóźnienia w podróży w obie strony dla interfejsów słuchawkowychAAUDIO_PERFORMANCE_MODE_LOW_LATENCY
.
- [C-SR-4] Znacznik czasu wyjściowego zwróconego przez audiotrack.getTimEstamp i
7. Kompatybilność sprzętowa
Zobacz wersję
Android zawiera urządzenia, które automatycznie dostosowują zasoby aplikacji i układy interfejsu użytkownika odpowiednio dla urządzenia, aby zapewnić, że aplikacje zewnętrzne działają dobrze w
różnych konfiguracjach sprzętowych .Różnorodne wyświetlacze i konfiguracje sprzętu. Wyświetlacz kompatybilny z Androidem to ekran wyświetlacza, który implementuje wszystkie zachowania i interfejsy API opisane w programistach Androida-przegląd kompatybilności ekranu , niniejsza sekcja (7.1) i jego podsekcje, a także wszelkie dodatkowe specyficzne zachowania typu urządzenia udokumentowane w rozdziale 2 z sekcji 2 z ten CDD.Na wyświetlaczach (kompatybilnych z Androida), na których mogą uruchamiać wszystkie aplikacje kompatybilne z Androidem, implementacje urządzeń muszą poprawnie zaimplementować te interfejsy API i zachowania, jak szczegółowo opisano w tej sekcji.Rozpocznij nowe wymagania
Implementacje urządzeń:
- [C-0-1] musi domyślnie renderować aplikacje stron trzecich tylko na wyświetlacze kompatybilne z Androidem.
Jednostki odnoszące się do wymagań w niniejszej sekcji są zdefiniowane w następujący sposób:
- Fizyczny rozmiar przekątny . Odległość w centymetrach między dwoma przeciwnymi zakątkami oświetlonej części wyświetlacza.
- Gęstość
kropek na cal (DPI). Liczba pikseli objęty liniowym poziomem poziomym lub pionowym 1 ” , wyrażonym jako piksele na cal (PPI lub DPI) . Tam, gdzie wymienione są wartościDPIPPI i DPI , zarówno poziome, jak i pionowe DPI muszą należeć do wymienionego zakresu. - współczynnik kształtu . Stosunek pikseli dłuższego wymiaru do krótszego wymiaru ekranu. Na przykład wyświetlacz 480x854 pikseli wynosiłby 854/480 = 1,779 lub mniej więcej „16: 9”.
- Piksel niezależny od gęstości (DP) . Wirtualna
jednostkapikseli znormalizowana do gęstości ekranuekranu 160 dpiwynoszącej 160. Dla pewnej gęstości D i liczby pikseli p, liczba pikseli niezależnych od gęstości, jest obliczana jako:piksele = dps * (gęstość/160)dp = (160 / d) * str .
7.1.1.1. Rozmiar i kształt ekranu :
Zobacz wersję
Jeśli implementacje urządzeń obsługują ekrany zdolne do konfiguracji rozmiaru
UI_MODE_TYPE_NORMAL
izawierają kompatybilne z Androidemwyświetlacze fizyczne z zaokrąglonymi zakątkami , aby renderować te ekrany , one:- [C-1-1] musi upewnić się, że dla każdego takiego wyświetlacza spełnia się co najmniej jedno z następujących wymagań:
- Promień zaokrąglonych narożników jest mniejszy lub równy 38 dp.
Gdy skrzynka 15 dp na 15 dp jest zakotwiczona w każdym rogu wyświetlacza logicznego, na ekranie widoczny jest co najmniej jeden piksel każdego pudełka.
Powinien obejmować afordancję użytkownika, aby przejść do trybu wyświetlania z prostokątnymi zakątkami.
Rozpocznij nowe wymagania
Jeśli implementacje urządzeń są zdolne tylko do konfiguracji klawiatury
NO_KEYS
i zamierzają zgłosić obsługę konfiguracji trybuUI_MODE_TYPE_NORMAL
, one:- [C-4-1] musi mieć rozmiar układu, z wyłączeniem wycięcia wyświetlacza, co najmniej 596 dp x 384 dp lub więcej.
Jeśli implementacje urządzeń zawierają wyświetlacze kompatybilne z Androidem, które są składane lub zawierają składany zawias między wieloma paneli wyświetlaczy i udostępnia takie wyświetlacze (y) do renderowania aplikacji stron trzecich, one:
- [C-2-1] musi zaimplementować najnowszą dostępną stabilną wersję interfejsu API rozszerzeń lub stabilną wersję SideCar API, która ma być używana przez bibliotekę JetPack Manager Window Manager .
Jeśli implementacje urządzeń zawierają wyświetlacze kompatybilne z Androidem, które są składane, lub zawiera składany zawias między wieloma paneli wyświetlacza, a jeśli zawias lub fałd przekraczają okno aplikacji na pełne ekran, one:
- [C-3-1] musi zgłosić pozycję, granice i stan zawiasu lub złożyć przez rozszerzenia lub interfejsy API SIDECAR.
Jeśli implementacje urządzeń zawierają jeden lub więcej obszarów wyświetlaczy kompatybilnych z Androidem, które są składane, lub zawierają składany zawias między wieloma obszarami wyświetlania kompatybilnych z Androidem i udostępniają takie obszary wyświetlania aplikacjom, one:
- [C-4-1] musi zaimplementować poprawną wersję poziomu API rozszerzeń Window Manager, jak opisano w nadchodzącej dokumentacji.
7.1.1.2. Współczynnik kształtu ekranu : usunięty
Zobacz wersję
Implementacje urządzeń:
- [C-0-1]
Domyślnie implementacje urządzeńmuszą zgłaszaćtylkojedną z gęstości linii Android Framework, które są wymienione naDisplayMetrics
za pośrednictwem interfejsu APIDENSITY_DEVICE_STABLE
, a ta wartość musi być wartością statyczną dla każdego wyświetlania fizycznegow żadnym momencie; Jednakurządzenie może zgłosić innądowolną gęstośćDisplayMetrics.density
zgodnie ze zmianami konfiguracji wyświetlania dokonanych przez użytkownika (na przykład rozmiar wyświetlania) ustawiony po początkowym rozruchu.
- Implementacje urządzeń powinny zdefiniować standardową gęstość systemu Android Framework, która jest liczbowo najbliżej gęstości fizycznej ekranu, chyba że ta gęstość logiczna popycha zgłoszony rozmiar ekranu poniżej minimalnego obsługiwanego. Jeśli standardowa gęstość systemu Android Framework, która jest numerycznie najbliżej gęstości fizycznej, powoduje rozmiar ekranu, który jest mniejszy niż najmniejszy obsługiwany kompatybilny rozmiar ekranu (szerokość 320 dp), implementacje urządzeń powinny zgłosić kolejną najniższą gęstość standardowej struktury Androida.
Rozpocznij nowe wymagania
- Powinien zdefiniować standardową gęstość frameworka Androida, która jest numerycznie najbliżej gęstości fizycznej ekranu lub wartości, która mapowałaby do tego samego równoważnego pola kątowego pola widoku urządzenia ręcznego.
Jeśli implementacje urządzeń dostarczają,
istniejeafordancja, aby zmienić rozmiar wyświetlania urządzenia , one :- [C-1-1]
Rozmiar wyświetlania nie może być skalowany żadennie może skalować wyświetlacza większego niż 1,5-krotnośćDENSITY_DEVICE_STABLE
natywna gęstośćlub wytwarzać skuteczny minimalny wymiar ekranu mniejszy niż 320dp (równoważny z kwalifikatorem zasobów SW320DP), w zależności od tego, co jest pierwsza. - [C-1-2]
Rozmiar wyświetlania nie może być skalowany żadennie może skalować wyświetlacza mniejszego niż 0,85 razyDENSITY_DEVICE_STABLE
natywna gęstości_device_stable.
- [C-0-1]
Zobacz wersję
Jeśli implementacje urządzeń obejmują obsługę Vulkan
1.0 lub więcej, one:[C-1-3] musi w pełni zaimplementować interfejsy API
Vulkan 1.0Vulkan 1.1 dla każdego wyliczonegoVkPhysicalDevice
.[C-1-5] Nie może wymieniać warstw dostarczanych przez biblioteki poza pakietem aplikacji ani dostarczać innych sposobów śledzenia lub przechwytywania interfejsu API Vulkan, chyba że aplikacja ma zestaw atrybutów
android:debuggable
jakotrue
lub metadanecom.android.graphics.injectLayers.enable
ustawione natrue
.
- Powinien obsługiwać
VkPhysicalDeviceProtectedMemoryFeatures
iVK_EXT_global_priority
.
- [C-1-13] musi spełniać wymagania określone w profilu linii podstawowej Androida 2021 .
[C-SR-5] są zdecydowanie zalecane do obsługi
VkPhysicalDeviceProtectedMemoryFeatures.protectedMemory
iVK_EXT_global_priority
.[C-SR-6] są zdecydowanie zalecane do używania
SkiaVk
z HWUI.
Jeśli implementacje urządzeń obejmują obsługę Vulkan 1.1 i zadeklaruj dowolną flagi funkcji Vulkan opisanych tutaj , one:
- [C-SR-7] są zdecydowanie zalecane do udostępnienia rozszerzenia
VK_KHR_external_fence_fd
dla aplikacji innych firm i umożliwiają aplikację eksport ładunku ogrodzenia i importowanie ładunku ogrodzenia z deskryptorów plików POSIX, jak opisano tutaj .
7.3.10. Czujniki biometryczne :
Zobacz wersję
Jeśli implementacje urządzeń mają wiele czujników biometrycznych, one:
[C-7-1] musi, gdy biometria jest blokowana (tj. Biometryczna jest wyłączona, dopóki użytkownik nie odblokuje z pierwotnym uwierzytelnianiem) lub blokady związane z czasem (tj. Biometria jest tymczasowo wyłączona, dopóki użytkownik nie czeka na przedział czasowy) Ze względu na zbyt wiele nieudanych prób zablokuj również wszystkie inne biometrii niższej klasy biometrycznej. W przypadku blokady związanej z czasem czas wycofania weryfikacji biometrycznej musi być maksymalny czas wycofania wszystkich biometrycznych blokady w czasie.
[C-SR-12] są silnie zalecane, gdy biometryczna jest blokada (tj. Biometryczna jest wyłączona, dopóki użytkownik odblokuje się z pierwotnym uwierzytelnianiem) lub blokada w czasie (tj. Biometryczna jest tymczasowo wyłączona, dopóki użytkownik nie będzie oczekiwał czasu na czas przedział) z powodu zbyt wielu nieudanych prób, aby zablokować wszystkie inne biometry tej samej klasy biometrycznej. W przypadku blokady związanej z czasem, czas wycofania weryfikacji biometrycznej jest zdecydowanie zalecany jako maksymalny czas wycofania wszystkich biometrycznych blokady.
[C-7-2] musi rzucić wyzwanie użytkownikowi za zalecane pierwotne uwierzytelnianie (np. PIN, wzór, hasło), aby zresetować licznik blokady dla zablokowania biometrycznego. Biometryczne biometrii klasy 3 mogą być dozwolone do zresetowania licznika blokady dla zablokowanej biometrii tej samej lub niższej klasy. Biometrii klasy 2 lub klasy 1 nie wolno zakończyć operacji blokady resetowania dla jakichkolwiek biometrii.
Jeśli implementacje urządzeń chcą traktować czujnik biometryczny jako klasę 1 (wcześniej wygoda ), one:
[C-1-12] musi mieć wskaźnik akceptacji fałszowania i imposta nie wyższy niż 40% na gatunki ataku prezentacji (PAI) , mierzone przez protokoły testu biometrycznego Androida .
[C-SR-13] są silnie zalecane, aby mieć podróbkę i wskaźnik akceptacji oszustów, nie wyższy niż 30% na gatunki ataku prezentacji (PAI) , mierzone przez protokoły testu biometrycznego Androida .
[C-SR-14] są silnie zalecane do ujawnienia klasy biometrycznej czujnika biometrycznego i odpowiadającego ryzyku umożliwienia jej.
[C-SR-17] są zdecydowanie zalecane do wdrożenia nowych interfejsów AIDL (takich jak
IFace.aidl
iIFingerprint.aidl
).
Jeśli implementacje urządzeń chcą traktować czujnik biometryczny jako klasę 2 (wcześniej słabe ), one:
- [C-SR-15] są silnie zalecane, aby mieć podróbkę i wskaźnik akceptacji oszusta, nie wyższy niż 20% na gatunki ataku prezentacji (PAI) , mierzone przez protokoły testu biometrycznego Androida .
- [C-2-3] musi wykonać dopasowanie biometryczne w izolowanym środowisku wykonawczym poza przestrzenią użytkownika Androida lub jądra, takiego jak zaufane środowisko wykonawcze (TEE)
lubna chipie z bezpiecznym kanałem do izolowanego środowiska wykonania lub chronione Maszyna wirtualna, która spełnia wymagania w sekcji 9.17 . - [C-2-4] muszą mieć wszystkie zidentyfikowane dane zaszyfrowane i kryptograficznie uwierzytelnione, aby nie można ich było nabrać, odczytać ani zmienić poza izolowanym środowiskiem wykonania lub układu z bezpiecznym kanałem do izolowanego środowiska wykonania, jak udokumentowano w wytycznych dotyczących implementacji na stronie projektu open source Android lub chronionej wirtualnej maszyny kontrolowanej przez hiperwizor, która spełnia wymagania w sekcji 9.17 .
- [C-2-5] dla biometrii opartych na kamerach, podczas gdy uwierzytelnianie lub rejestracja oparta na biometrycznych:
- Musi obsługiwać kamerę w trybie, który zapobiega odczytaniu lub zmienianiu ramek aparatu poza izolowanym środowiskiem wykonawczym lub chip z bezpiecznym kanałem do izolowanego środowiska wykonania lub chronionej wirtualnej maszyny kontrolowanej przez hiperwizor, który spełnia wymagania w sekcji 9.17 .
- W przypadku rozwiązań jednokameryjnych RGB ramki aparatu mogą być czytelne poza izolowanym środowiskiem wykonawczym w celu obsługi operacji, takich jak podgląd rejestracji, ale nadal nie mogą być zmieniane.
- [C-2-7] nie może zezwalać na niezaszyfrowany dostęp do identyfikowalnych danych biometrycznych lub żadnych danych uzyskanych z nich (takich jak osadzanie) do procesora aplikacji poza kontekstem TEE lub chronionej maszyny wirtualnej kontrolowanej przez hiperwizor, który spełnia wymagania w sekcji 9.17 . Urządzenia aktualizacyjne uruchomione na Androidzie w wersji 9 lub wcześniejszych nie są zwolnione z C-2-7.
Jeśli implementacje urządzeń chcą traktować czujnik biometryczny jako klasę 3 (wcześniej silny ), one:
- [C-SR-16] są silnie zalecane, aby mieć podróbki i wskaźnik akceptacji oszustów nie wyższy niż 7% na instrument ataku prezentacji (PAI) , mierzony przez protokoły testu biometrycznego Androida .
7.3.13. IEEE 802.1.15.4 (UWB) :
Zobacz wersję
Jeśli implementacje urządzeń obejmują obsługę 802.1.15.4 i ujawniają funkcjonalność na aplikację innych firm, one:
- [C-1-2] musi zgłosić flagę funkcji sprzętowych
android.hardware.uwb
. - [C-1-3] musi obsługiwać wszystkie następujące zestawy konfiguracyjne (wstępnie zdefiniowane kombinacje parametrów FIRA UCI ) zdefiniowane we wdrożeniu AOSP.
-
CONFIG_ID_1
: STATYCZNYSTATIC STS DS-TWR
, odroczony tryb odroczony, przedział odroczenia 240 ms. -
CONFIG_ID_2
: Definiowany przez Fira jeden do wieluSTATIC STS DS-TWR
, odroczony tryb odroczonego, od interwału 200 ms. Typowy przypadek użycia: Smartfon oddziałuje z wieloma inteligentnymi urządzeniami. -
CONFIG_ID_3
: Taki sam jakCONFIG_ID_1
, z wyjątkiem danych dotyczących Angle-of-Arival (AOA). -
CONFIG_ID_4
: Taki sam jakCONFIG_ID_1
, z wyjątkiem włączenia trybu bezpieczeństwa p-sts. -
CONFIG_ID_5
: Taki sam jakCONFIG_ID_2
, z wyjątkiem włączenia trybu bezpieczeństwa p-sts. -
CONFIG_ID_6
: Taki sam jakCONFIG_ID_3
, z wyjątkiem włączenia trybu bezpieczeństwa p-sts. -
CONFIG_ID_7
: Taki sam jakCONFIG_ID_2
, z wyjątkiem włączania indywidualnego trybu klucza Controlee PTS.
-
- [C-1-4] musi zapewnić afordancję użytkownika, aby umożliwić użytkownikowi przełączenie systemu/wyłączania radia UWB.
- [C-1-5] muszą egzekwować, że aplikacje za pomocą radia UWB zawierają uprawnienie
UWB_RANGING
(w grupie uprawnieńNEARBY_DEVICES
).
Przekazywanie odpowiednich testów zgodności i certyfikacji zdefiniowanych przez standardowe organizacje, w tym FIRA , CCC i CSA , pomaga poprawnie zapewnić funkcje 802.1.15.4.
- [C-1-2] musi zgłosić flagę funkcji sprzętowych
Zobacz wersję
„Telefonia” używana przez interfejsy API Androida i ten dokument odnosi się specjalnie do sprzętu związanego z umieszczaniem połączeń głosowych i wysyłania wiadomości SMS lub ustanawianiem danych mobilnych za pośrednictwem mobilnej (np. GSM, LTE, NR) GSM lub CDMA Network. Urządzenie obsługujące „telefonię” może zaoferować niektóre lub wszystkie usługi połączeń, przesyłania wiadomości i transmisji danych, które pasują do produktu.
za pośrednictwem sieci GSM lub CDMA. Chociaż te połączenia głosowe mogą, ale nie muszą być przełączane pakietami, są one do celów Androida uważanego za niezależne od jakiejkolwiek łączności danych, które można zaimplementować za pomocą tej samej sieci. Innymi słowy, funkcja „telefonii” Androida i interfejsy API odnoszą się specjalnie do połączeń głosowych i SMS -ów. Na przykład implementacje urządzeń, które nie mogą umieszczać połączeń ani wysyłać/odbierać wiadomości SMS, nie są uważane za urządzenie telefoniczne, niezależnie od tego, czy korzystają z sieci komórkowej do łączności danych.Zobacz wersję
Jeśli implementacje urządzeń obejmują obsługę 802.11 i ujawnij funkcjonalność aplikacji innych firm, one:
- [C-1-4] musi obsługiwać multiemisji DNS (MDN) i nie może filtrować pakietów MDNS (224.0.0.251 lub FF02 :: FB ) w dowolnym momencie działania, w tym gdy ekran nie jest w stanie aktywnym, chyba że upuszczenie lub upuszczenie lub upuszczenie lub upuszczanie lub Filtrowanie tych pakietów jest niezbędne, aby pozostać w zakresie zużycia energii wymagane przez wymagania regulacyjne mające zastosowanie do rynku docelowego.
W przypadku implementacji urządzeń telewizyjnych z Androidem, nawet w stanie rezerwowym.
- [C-1-4] musi obsługiwać multiemisji DNS (MDN) i nie może filtrować pakietów MDNS (224.0.0.251 lub FF02 :: FB ) w dowolnym momencie działania, w tym gdy ekran nie jest w stanie aktywnym, chyba że upuszczenie lub upuszczenie lub upuszczenie lub upuszczanie lub Filtrowanie tych pakietów jest niezbędne, aby pozostać w zakresie zużycia energii wymagane przez wymagania regulacyjne mające zastosowanie do rynku docelowego.
Zobacz wersję
Jeśli implementacje urządzeń deklarują funkcję_bluetooth_le, one:
- [C-SR-2] są zdecydowanie zalecane do pomiaru i kompensacji przesunięcia Rx, aby zapewnić, że mediana BLE RSSI wynosi -60dBm +/- 10 dB w odległości 1 m od urządzenia referencyjnego przesyłającego w
ADVERTISE_TX_POWER_HIGH
na „samolotach równoległych” z ekranami skierowanymi w tym samym kierunku. - [C-SR-3] są zdecydowanie zalecane do pomiaru i kompensacji przesunięcia TX, aby upewnić się, że mediana BLE RSSI wynosi -60dBm +/- 10 dB podczas skanowania z urządzenia odniesienia ustawionego w odległości 1 m i transmisji w
ADVERTISE_TX_POWER_HIGH
, gdzie urządzenia są zorientowane tak, że są na „równoległych samolotach” z ekranami skierowanymi w tym samym kierunku.
- [C-10-3] musi zmierzyć i zrekompensować przesunięcie RX, aby upewnić się, że mediana BLE RSSI wynosi -55DBM +/- 10 dB w odległości 1 m od urządzenia odniesienia przesyłającego w
ADVERTISE_TX_POWER_HIGH
. - [C-10-4] musi zmierzyć i zrekompensować przesunięcie TX, aby upewnić się, że mediana BLE RSSI wynosi -55dBm +/- 10 dB podczas skanowania z urządzenia odniesienia ustawionego w odległości 1 m i transmisji w
ADVERTISE_TX_POWER_HIGH
.
Jeśli implementacje urządzeń obsługują Bluetooth wersja 5.0, to: one:
- [C-SR-4] są zdecydowanie zalecane w celu zapewnienia wsparcia dla:
- Le 2M Phy
- LE Codec Phy
- Rozszerzenie reklamowe le
- Okresowa reklama
- Co najmniej 10 zestawów reklamowych
- Co najmniej 8 równoległych połączeń. Każde połączenie może odbywać się w ramach ról topologii.
- Prywatność warstwy LE Link
- Rozmiar „listy rozwiązywania” co najmniej 8 wpisów
- [C-SR-2] są zdecydowanie zalecane do pomiaru i kompensacji przesunięcia Rx, aby zapewnić, że mediana BLE RSSI wynosi -60dBm +/- 10 dB w odległości 1 m od urządzenia referencyjnego przesyłającego w
Zobacz wersję
- [C-1-7] musi upewnić się, że mediana pomiarów odległości przy 1 m od urządzenia odniesienia mieści się w granicach [0,75 m, 1,25 m], gdzie odległość prawdy naziemnej jest mierzona od górnej krawędzi DUT.
trzymany twarzą w górę i przechylił 45 stopni.
- [C-1-7] musi upewnić się, że mediana pomiarów odległości przy 1 m od urządzenia odniesienia mieści się w granicach [0,75 m, 1,25 m], gdzie odległość prawdy naziemnej jest mierzona od górnej krawędzi DUT.
7.5.1. Kamera skierowana do tyłu :
Zobacz wersję
Kamera skierowana do tyłu to aparat znajdujący się z boku urządzenia naprzeciwko wyświetlacza; Oznacza to, że obrazuje sceny po drugiej stronie urządzenia, jak tradycyjny aparat.
Kamera skierowana do tyłu to kamera na całym świecie, która obrazuje sceny po drugiej stronie urządzenia, jak tradycyjny aparat; Na urządzeniach przenośnych, czyli kamera znajdująca się z boku urządzenia naprzeciwko wyświetlacza.
Zobacz wersję
Przedni aparat to aparat położony po tej samej stronie urządzenia co wyświetlacz; Oznacza to, że aparat zwykle używany do obrazowania użytkownika, na przykład w przypadku wideokonferencji i podobnych aplikacji.
Przedni aparat to aparat skierowany do użytkownika, który jest zwykle używany do obrazowania użytkownika, na przykład do wideokonferencji i podobnych aplikacji; Na urządzeniach przenośnych, czyli aparat położony po tej samej stronie urządzenia co wyświetlacz.
Zobacz wersję
Zewnętrzna kamera to aparat, który można fizycznie podłączyć lub odłączyć od implementacji urządzenia w dowolnym momencie i może skierować się w dowolny kierunek; takie jak kamery USB.
7.5.4. Zachowanie API aparatu :
Zobacz wersję
Implementacje urządzeń muszą wdrożyć następujące zachowania dla interfejsów API związanych z kamerą, dla wszystkich dostępnych kamer. Implementacje urządzeń:
- [C-SR-1] W przypadku urządzeń z wieloma kamerami RGB w bliskiej odległości i skierowanej w tym samym kierunku, zdecydowanie zaleca się obsługę logicznego urządzenia aparatu, które wymienia funkcje
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
jako fizyczne podwodności.
- [C-SR-1] W przypadku urządzeń z wieloma kamerami RGB w bliskiej odległości i skierowanej w tym samym kierunku, zdecydowanie zaleca się obsługę logicznego urządzenia aparatu, które wymienia funkcje
Zobacz wersję
Urządzenia, które spełniają wszystkie następujące kryteria, są zwolnione z powyższego wymogu:
- Implementacje urządzeń, które nie są w stanie być obracane przez użytkownika, takie jak urządzenia motoryzacyjne.
Zobacz wersję
Urządzenia, które mają być ręczne lub noszone, mogą obejmować siłownik Haptic o ogólnym przeznaczeniu, dostępny do aplikacji do celów, w tym zwrócenie uwagi przez dzwonki, alarmy, powiadomienia, a także ogólne informacje zwrotne dotykowe.
Jeśli implementacje urządzeń nie obejmują takiego wspólnego siłownika haptic, one:
- [7.10/c] musi zwrócić false dla
Vibrator.hasVibrator()
.
Jeśli implementacje urządzeń zawierają co najmniej jeden taki wspólny siłownik hapttyczny, one:
- [C-1-1] musi zwrócić True dla
Vibrator.hasVibrator()
. - Nie powinien używać mimośrodowego obrotowego siłownika haptic (wibrator).
- Powinien zaimplementować wszystkie stałe publiczne dla jasnych hapticów w
android.view.HapticFeedbackConstants
mianowicie (CLOCK_TICK
,CONTEXT_CLICK
,KEYBOARD_PRESS
,KEYBOARD_TAP
,KEYBOARD_RELEASE
,LONG_PRESS
GESTURE_END
TEXT_HANDLE_MOVE
,VIRTUAL_KEY
,VIRTUAL_KEY_RELEASE
,CONFIRM
,REJECT
, gesty_start iGESTURE_START
). - Powinien zaimplementować wszystkie stałe publiczne dla jasnych hapticów w
android.os.VibrationEffect
mianowicie (EFFECT_TICK
,EFFECT_CLICK
,EFFECT_HEAVY_CLICK
iEFFECT_DOUBLE_CLICK
CLICK
i wszelkie możliwe publicznePRIMITIVE_*
stałe dla bogatych hapticów wandroid.os.VibrationEffect.Composition
nazwa (kliknij, kliknij, niski_tick, niski_tick, niski_tick, niski_tick, niski_tick, niski_tick,TICK
, niski_tick,LOW_TICK
QUICK_FALL
,QUICK_RISE
,SLOW_RISE
,SPIN
,THUD
). Niektóre z tych prymitywów, takie jakLOW_TICK
iSPIN
, mogą być wykonalne tylko wtedy, gdy wibrator może obsługiwać stosunkowo niskie częstotliwości. - Powinien postępować zgodnie z wytycznymi dotyczącymi mapowania stałych publicznych w
android.view.HapticFeedbackConstants
do zalecanych stałychandroid.os.VibrationEffect
, z odpowiednimi relacjami amplitudowymi. - Powinien użyć tych powiązanych mapowań stałych dotyczych.
- Powinien postępować zgodnie z oceną jakości dla interfejsów API
createOneShot()
icreateWaveform()
. - Powinien sprawdzić, czy wynik publicznego
android.os.Vibrator.hasAmplitudeControl()
API poprawnie odzwierciedla możliwości ich wibratora. - Powinien zweryfikować możliwości skalowalności amplitudy poprzez uruchamianie
android.os.Vibrator.hasAmplitudeControl()
.
Jeśli implementacje urządzeń śledzą mapowanie stałych dotyczy, one:
- Powinien zweryfikować status implementacji, uruchamiając
android.os.Vibrator.areAllEffectsSupported()
iandroid.os.Vibrator.arePrimitivesSupported()
API. - Powinien przeprowadzić ocenę jakości stałych dotyczych.
- Powinien zweryfikować i zaktualizować w razie potrzeby konfiguracja awarii dla nieobsługiwanych prymitywów, jak opisano w wytycznych dotyczących wdrażania stałych.
- Powinien zapewnić wsparcie awarii w celu ograniczenia ryzyka niepowodzenia, jak opisano tutaj .
Wymagania specyficzne dla urządzenia znajdują się w sekcji 2.2.1 .
- [7.10/c] musi zwrócić false dla
9. Kompatybilność modelu bezpieczeństwa
Zobacz wersję
Implementacje urządzeń:
- [C-0-4] musi mieć jedną i tylko jedną implementację obu interfejsów użytkownika.
Jeśli implementacje urządzeń wstępnie zainstaluj jakiekolwiek pakiety, które posiadają dowolną inteligencję systemu interfejsu użytkownika, system systemowy Audio Intelligence , system systemowy, inteligencja powiadomień systemowych , inteligencja tekstu systemowego lub role inteligencji wizualnej systemu , pakiety:
- [C-4-1] musi spełniać wszystkie wymagania przedstawione dla implementacji urządzeń w sekcjach
„9.8.6 przechwytywania treści”„9.8.6 Dane na poziomie OS i otoczenia oraz 9.8.15 Implementacje API z piaskownicą”.
- [C-4-2] nie może mieć Android.Permission.internet Zezwolenie. Jest to surowsze niż zdecydowanie zalecane wymienione w rozdziale 9.8.6.
- [C-4-3] nie może wiązać się z innymi aplikacjami, z wyjątkiem następujących aplikacji systemowych: Bluetooth, kontaktów, mediów, telefonii, systemu i komponentów dostarczających interfejsy API. Jest to surowsze niż zdecydowanie zalecane wymienione w rozdziale 9.8.6.
Jeśli implementacje urządzeń zawierają domyślną aplikację do obsługi
VoiceInteractionService
, one:- [C-5-1] nie może przyznać
ACCESS_FINE_LOCATION
jako domyślne dla tej aplikacji.
9,5. Obsługa wielu użytkowników :
Zobacz wersję
Jeśli implementacje urządzeń tworzą dodatkowy profil użytkownika omówiony powyżej, to: one:
- [C-4-5] musi wizualnie odróżnić ikony aplikacji podwójnej instancji, gdy ikony są prezentowane użytkownikom.
- [C-4-6] musi zapewnić afekt użytkownika, aby usunąć dane profilu klonu.
- [C-4-7] musi odinstalować wszystkie aplikacje klonowe, usuwać prywatne katalogi danych aplikacji i ich treści oraz usunąć dane profilu klonów, gdy użytkownik zdecyduje się usunąć całe dane profilu klonu.
- Powinien skłonić użytkownika do usunięcia całego profilu klonów, gdy ostatnia aplikacja klonów zostanie usunięta.
- [C-4-8] musi poinformować użytkownika, że dane aplikacji zostaną usunięte, gdy aplikacja klonów zostanie odinstalowana, lub zapewnić użytkownikom opcję przechowywania danych aplikacji, gdy aplikacja zostanie odinstalowana od urządzenia.
- [C-4-9] MUST delete the private app data directories and their content, when the user chooses to delete the data during uninstall.
[C-4-1] MUST allow the below intents originating from the additional profile to be handled by applications of the primary user on the device:
-
Intent.ACTION_VIEW
-
Intent.ACTION_SENDTO
-
Intent.ACTION_SEND
-
Intent.ACTION_EDIT
-
Intent.ACTION_INSERT
-
Intent.ACTION_INSERT_OR_EDIT
-
Intent.ACTION_SEND_MULTIPLE
-
Intent.ACTION_PICK
-
Intent.ACTION_GET_CONTENT
-
MediaStore.ACTION_IMAGE_CAPTURE
-
MediaStore.ACTION_VIDEO_CAPTURE
-
[C-4-2] MUST inherit all device policy user restrictions and selected non-user restrictions(list below) applied on the primary user of the device to this additional user profile.
[C-4-3] MUST only allow writing contacts from this additional profile via the following intents:
[C-4-4] MUST NOT have contact syncs running for applications running in this additional user profile.
- [C-4-14] MUST have separate permission and storage management for the applications running in this additional profile
- [C-4-5] MUST only allow applications in the additional profile that have a launcher activity to access contacts that are already accessible to the parent user profile.
9.7. Funkcjonalność związana z bezpieczeństwem :
See revision
A Memory Safety technology is a technology that mitigates at least the following classes of bugs with a high (> 90%) probability in applications that use the
android:memtagMode
manifest option:- heap buffer overflow
- use after free
- double free
- wild free (free of a non-malloc pointer)
Implementacje urządzeń:
- [C-SR-15] Are STRONGLY RECOMMENDED to set
ro.arm64.memtag.bootctl_supported
.
If device implementations set the system property
ro.arm64.memtag.bootctl_supported
to true, they:[C-3-1] MUST allow the system property
arm64.memtag.bootctl
to accept a comma-separated list of the following values, with the desired effect applied on the next subsequent reboot:-
memtag
: a Memory Safety technology as defined above is enabled -
memtag-once
: a Memory Safety technology as defined above is transiently enabled, and is automatically disabled upon, next reboot -
memtag-off
: a Memory Safety technology as defined above is disabled
-
[C-3-2] MUST allow the shell user to set
arm64.memtag.bootctl
.[C-3-3] MUST allow any process to read
arm64.memtag.bootctl
.[C-3-4] MUST set
arm64.memtag.bootctl
to the currently requested state upon boot, it MUST also update the property, if the device implementation allows to modify the state without changing the system property.[C-SR-16] Are STRONGLY RECOMMENDED to show a Developer Setting that sets memtag-once and reboots the device. With a compatible bootloader, the Android Open Source Project meets the above requirements through the MTE bootloader protocol .
- [C-SR-17] Are STRONGLY RECOMMENDED to show a Setting in the Security Settings menu that allows the user to enable
memtag
.
See revision
Implementacje urządzeń:
- [C-0-2] MUST display a user warning and obtain explicit user consent allowing any sensitive information that is displayed on the user's screen to be captured
enabled that includes exactly the same message as AOSPwhenevereach and every time a session to capture the screencasting or screen recordingisenabledstarted via theMediaProjection.createVirtualDisplay()
,VirtualDeviceManager.createVirtualDisplay()
, or proprietary APIs.MUST NOT provide users an affordance to disable future display of the user consent.
[C-SR-1] Are STRONGLY RECOMMENDED to display a user warning which is exactly the same message as implemented in AOSP but CAN be altered as long as the message clearly warns the user that any sensitive information on the user's screen is captured.
[C-0-4] MUST NOT provide users an affordance to disable future prompts of the user consent to capture the screen, unless the session is started by a system app that the user has allowed to
associate()
with theandroid.app.role.COMPANION_DEVICE_APP_STREAMING
or theandroid.app.role.COMPANION_DEVICE_NEARBY_DEVICE_STREAMING
device profile.
- [C-0-2] MUST display a user warning and obtain explicit user consent allowing any sensitive information that is displayed on the user's screen to be captured
9.8.6. OS-level and ambient data : This section was renamed from Content Capture and App Search to OS-level and ambient data .
See revision
Android, through the System APIs
, supports a mechanism for device implementations to capture the followingContentCaptureService
,AugmentedAutofillService
,AppSearchGlobalManager.query
, or by other proprietary meansapplication data interactions between the applications and the usersensitive data :- Any screen or other data sent via the
AugmentedAutofillService
to the system. - Any screen or other data accessible via
Content Capture
API. - Any screen or other data accessible via
FieldClassificationService
API - Any application data passed to the system via the
AppSearchManager
API and accessible viaAppSearchGlobalManager.query
.
- Any other events that an application provides to the system via the
Content Capture
API or orAppSearchManager
API a similarly capable Android and proprietary API.
- Audio data obtained as a result of using
SpeechRecognizer#onDeviceSpeechRecognizer()
by the Speech Recognizer Implementation. - Audio data obtained in background (continuously) through
AudioRecord
,SoundTrigger
or other Audio APIs, and not resulting in a user-visible indicator - Camera data obtained in background (continuously) through CameraManager or other Camera APIs, and not resulting in a user-visible indicator
If device implementations capture any of the data above, they:
[C-1-3] MUST only send all such data
and the logoff the device using a privacy-preserving mechanism , except with explicit user consent every time the data is shared . The privacy-preserving mechanism is defined as “those which allow only analysis in aggregate and prevent matching of logged events or derived outcomes to individual users”, to prevent any per-user data being introspectable (eg, implemented using a differential privacy technology such asRAPPOR
).[C-1-5] MUST NOT share such data with other OS components that don't follow requirements outlined in the current section (9.8.6
Content CaptureOS-level and ambient data ), except with explicit user consent every time it is wspólny. Unless such functionality is built as an Android SDK API (AmbientContext
,HotwordDetectionService
).[C-1-6] MUST provide user affordance to erase such data that the
implementation or the proprietary means collectsContentCaptureService
ifwhen the data is stored in any form on the device. If the user chooses to erase the data, MUST remove all collected historical data.
- [C-SR-3] Are STRONGLY RECOMMENDED to be implemented with Android SDK API or a similar OEM-owned open-source repository; and / or be performed in a Sandboxed implementation (see 9.8.15 Sandboxed API implementations).
Android, through
SpeechRecognizer#onDeviceSpeechRecognizer()
provides ability to perform speech recognition on the device, without involving the network. Any implementation of on-device SpeechRecognizer MUST follow the policies outlined in this section.- Any screen or other data sent via the
9.8.10. Connectivity Bug Report :
See revision
If device implementations declare the
android.hardware.telephony
feature flag, they:- [C-1-4] Reports generated using
BUGREPORT_MODE_TELEPHONY
MUST contain at least the following information:-
SubscriptionManagerService
dump
-
- [C-1-4] Reports generated using
9.8.14. Credential Manager : Removed
9.8.15. Sandboxed API Implementations : New section
See revision
Android, through a set of delegate APIs provides a mechanism to process secure OS-level and ambient data. Such processing can be delegated to a preinstalled apk with privileged access and reduced communication capabilities, known as a Sandboxed API Implementation.
Any Sandboxed API implementation:
- [C-0-1] MUST NOT request the INTERNET permission.
- [C-0-2] MUST only access the internet through structured APIs backed by publicly available open-source implementations using privacy-preserving mechanisms, or indirectly via Android SDK APIs. The privacy-preserving mechanism is defined as "those which allow only analysis in aggregate and prevent matching of logged events or derived outcomes to individual users", to prevent any per-user data being introspectable (eg, implemented using a differential privacy technology such as RAPPOR ).
- [C-0-3] MUST keep the services separate from other system components (eg not binding the service or sharing process IDs) except for the following:
- Telephony, Contacts, System UI, and Media
- [C-0-4] MUST NOT allow users to replace the services with a user-installable application or service
- [C-0-5] MUST only allow the preinstalled services to capture such data. Unless the replacement capability is built into AOSP (eg for Digital Assistant Apps).
- [C-0-6] MUST NOT allow any apps other than the preinstalled services mechanism to be able to capture such data. Unless such capture capability is implemented with an Android SDK API.
- [C-0-7] MUST provide user affordance to disable the services.
- [C-0-8] MUST NOT omit user affordance to manage Android permissions that are held by the services and follow the Android permissions model as described in Section 9.1. Pozwolenie .
9.8.16. Continuous Audio and Camera data : New section
See revision
In addition to requirements outlined in 9.8.2 Recording, 9.8.6 OS-level and ambient data, and 9.8.15 Sandboxed API implementations, implementations that make use of Audio data obtained in background (continuously) through AudioRecord, SoundTrigger or other Audio APIs OR Camera data obtained in background (continuously) through CameraManager or other Camera APIs:
- [C-0-1] MUST enforce a corresponding indicator (camera and/or microphone as per section 9.8.2 Recording), unless:
- This access is performed in a Sandboxed implementation (see 9.8.15 Sandboxed API implementation), through a package holding one or more of the following roles: System UI Intelligence , System Ambient Audio Intelligence , System Audio Intelligence , System Notification Intelligence , System Text Intelligence , or System Visual Intelligence .
- The access is performed through a sandbox, implemented and enforced via mechanisms in AOSP (
HotwordDetectionService
,WearableSensingService
,VisualQueryDetector
). - Audio access is performed for assistive purposes by the Digital Assistant application, supplying
SOURCE_HOTWORD
as an audio source. - The access is performed by the system and implemented with open-source code.
- [C-SR-1] Is STRONGLY RECOMMENDED to require user consent for every functionality utilizing such data, and be disabled by default.
- [C-SR-2] STRONGLY RECOMMENDED to apply the same treatment (ie follow the restrictions outlined in 9.8.2 Recording, 9.8.6 OS-level and ambient data, 9.8.15 Sandboxed API implementations, and 9.8.16 Continuous Audio and Camera data) to Camera data coming from a remote wearable device.
If the Camera data is supplied from a remote wearable device and accessed in an unencrypted form outside Android OS, sandboxed implementation or a sandboxed functionality built by
WearableSensingManager
, then they:- [C-1-1] MUST indicate to the remote wearable device to display an additional indicator there.
If devices provide capability to engage with a Digital Assistant Application without the assigned keyword (either handling generic user queries, or analyzing user presence through camera):
- [C-2-1] MUST ensure such implementation is provided by a package holding the
android.app.role.ASSISTANT
role. - [C-2-2] MUST ensure such implementation utilizes
HotwordDetectionService
and/orVisualQueryDetectionService
Android APIs.
- [C-0-1] MUST enforce a corresponding indicator (camera and/or microphone as per section 9.8.2 Recording), unless:
9.8.17. Telemetry : New section
See revision
Android stores system and app logs using StatsLog APIs. These logs are managed via StatsManager APIs which can be used by privileged system applications.
StatsManager also provides a way to collect data categorized as privacy sensitive from devices with a privacy preserving mechanism. In particular,
StatsManager::query
API provides the ability to query restricted metric categories defined in StatsLog .Any implementation querying and collecting restricted metrics from StatsManager:
- [C-0-1] MUST be the sole application/implementation on the device and hold the
READ_RESTRICTED_STATS
permission. - [C-0-2] MUST only send telemetry data and the log of the device using a privacy-preserving mechanism. The privacy-preserving mechanism is defined as "those which allow only analysis in aggregate and prevent matching of logged events or derived outcomes to individual users", to prevent any per-user data being introspectable (eg, implemented using a differential privacy technology such as RAPPOR ).
- [C-0-3] MUST NOT associate such data with any user identity (such as Account ) on the device.
- [C-0-4] MUST NOT share such data with other OS components that don't follow requirements outlined in the current section (9.8.17 Privacy-preserving Telemetry).
- [C-0-5] MUST provide a user affordance to enable/disable privacy-preserving telemetry collection, use, and sharing.
- [C-0-6] MUST provide user affordance to erase such data that the implementation collects if the data is stored in any form on the device. If the user chose to erase the data, MUST remove all data currently stored on the device.
- [C-0-7] MUST disclose underlying privacy-preserving protocol implementation in an open source repository.
- [C-0-8 ]MUST enforce data egress policies in this section to gate collection of data in restricted metric categories defined in StatsLog .
- [C-0-1] MUST be the sole application/implementation on the device and hold the
See revision
Device implementationsIf device implementations have the ability to verify file content on the per-page basis, then they :
[
C-0-3C-2-1 ] support cryptographically verifying file contentagainst a trusted keywithout reading the whole file.[
C-0-4C-2-2 ] MUST NOT allow the read requests on a protected file to succeed when the read contentdo not verify against a trusted keyis not verified per [C-2-1] above .
- [C-2-4] MUST return file checksum in O(1) for enabled files.
See revision
The Android Keystore System allows app developers to store cryptographic keys in a container and use them in cryptographic operations through the KeyChain API or the Keystore API . Implementacje urządzeń:
- [C-0-3] MUST limit the number of failed primary authentication attempts.
- [C-SR-2] Are STRONGLY RECOMMENDED to implement an upper bound of 20 failed primary authentication attempts and if users consent and opt-in the feature, perform a "Factory Data Reset" after exceeding the limit of failed primary authentication attempts.
If device implementations add or modify the authentication methods to unlock the lock screen if based on a known secret and use a new authentication method to be treated as a secure way to lock the screen, then:
- [C-SR-3] A PIN is STRONGLY RECOMMENDED to have at least 6 digits, or equivalently a 20-bit entropy.
- [C-2-1] A PIN of a length less than 6 digits MUST NOT allow automatic entry without user interaction to avoid revealing the PIN length.
9.11.1. Secure Lock Screen, Authentication and Virtual Devices :
See revision
Implementacje urządzeń:
- [C-0-1] MUST limit the number of failed primary authentication attempts.
- [C-SR-5] Are STRONGLY RECOMMENDED to implement an upper bound of 20 failed primary authentication attempts and if users consent and opt-in the feature, perform a "Factory Data Reset" after exceeding the limit of failed primary authentication attempts.
If device implementations set a numerical PIN as the recommended primary authentication method, then:
- [C-SR-6] A PIN is STRONGLY RECOMMENDED to have at least 6 digits, or equivalently a 20-bit entropy.
- [C-SR-7] A PIN of a length less than 6 digits is STRONGLY RECOMMENDED NOT to allow automatic entry without user interaction to avoid revealing the PIN length.
If device implementations have a secure lock screen and include one or more trust agent, which implements the
TrustAgentService
System API, they:[C-7-8] The user MUST be challenged for one of the recommended primary authentication (eg: PIN, pattern, password) methods at least once every 72 hours or less unless the safety of the user (eg driver distraction) is of obawa.If device implementations allow applications to create secondary virtual displays and support associated input events such as via VirtualDeviceManager and the displays are not marked with VIRTUAL_DISPLAY_FLAG_SECURE, they:
[C-13-10] MUST disable installation of apps initiated from virtual devices.9.17. Android Virtualization Framework :
See revision
If the device implements support for the Android Virtualization Framework APIs (
android.system.virtualmachine.*
), the Android host:- [C-1-1] MUST support all the APIs defined by the
android.system.virtualmachine
package. - [C-1-2] MUST NOT modify the Android SELinux and permission model for the management of Protected Virtual Machines (pVM) .
- [C-1-3] MUST NOT modify, omit, or replace the neverallow rules present within the system/sepolicy provided in the upstream Android Open Source Project (AOSP) and the policy MUST compile with all neverallow rules present.
- [C-1-4] MUST only allow platform signed code & privileged apps
MUST NOT allow untrusted code (eg 3p apps)to create and run aProtected Virtual MachinepVM . Note: This might change in future Android releases.
- [C-1-5] MUST NOT allow a
Protected Virtual MachinepVM to execute code that is not part of the factory image or their updates.Anything that is not covered by Android Verified Boot (eg files downloaded from the Internet or sideloaded) MUST NOT be allowed to be run in a Protected Virtual Machine.
- [C-1-5] MUST only allow a non-debuggable pVM to execute code from the factory image or their platform updates which also includes any updates to privileged apps.
If the device implements support for the Android Virtualization Framework APIs (
android.system.virtualmachine.*
), then anyProtected Virtual MachinepVM instance:- [C-2-1] MUST be able to run all operating systems available in the virtualization APEX in a
Protected Virtual MachinepVM . - [C-2-2] MUST NOT allow a
Protected Virtual MachinepVM to run an operating system that is not signed by the device implementor or OS vendor. - [C-2-3] MUST NOT allow a
Protected Virtual MachinepVM to execute data as code (eg SELinux neverallow execmem).
- [C-2-4] MUST NOT modify, omit, or replace the neverallow rules present within the system/sepolicy/microdroid provided in the upstream Android Open Source Project (AOSP).
- [C-2-5] MUST implement
Protected Virtual MachinepVM defense-in-depth mechanisms (eg SELinux for pVMs) even for non-Microdroid operating systems. - [C-2-6] MUST ensure that the pVM fails
firmware refusesto boot ifit cannot verify the initialimages that the VM will run cannot be verified. The verification MUST be done inside the VM. - [C-2-7] MUST ensure that the pVM fails
firmware refusesto boot if the integrity of the instance.img is compromised.
If the device implements support for the Android Virtualization Framework APIs (
android.system.virtualmachine.*
), then the hypervisor:- [C-3-1] MUST ensure that memory pages exclusively owned by a VM (either pVM or host VM) are accessible only to the virtual machine itself or the hypervisor, not by other virtual machines - either protected or non-protected.
MUST NOT allow any pVM to have access to a page belonging to another entity (ie other pVM or hypervisor), unless explicitly shared by the page owner. This includes the host VM. This applies to both CPU and DMA accesses. - [C-3-2] MUST wipe a page after it is used by a pVM and before it is returned to the host (eg the pVM is destroyed).
- [C-
3-3SR-1 ] Is STRONGLY RECOMMENDED to ensureMUST ensurethat that the pVM firmware is loaded and executed prior to any code in a pVM. - [C-3-4] MUST ensure that each VM derives a per-VM secret which
{Boot Certificate Chain (BCC) and Compound Device Identifier (CDIs) provided to a pVM instancecan only be derived by that particular VM instance and changes upon factory reset and OTA.
If the device implements support for the Android Virtualization Framework APIs, then across all areas:
- [C-4-1] MUST NOT provide functionality to a pVM that allows bypassing the Android Security Model.
If the device implements support for the Android Virtualization Framework APIs, then:
- [C-5-1] MUST be capable to support Isolated Compilation but may disable Isolated Compilation feature on the device shipment
of an ART runtime update.
If the device implements support for the Android Virtualization Framework APIs, then for Key Management:
- [C-6-1] MUST root DICE chain at a point that the user cannot modify, even on unlocked devices. (To ensure it cannot be spoofed).
- [C- SR-2
6-2] Is STRONGLY RECOMMENDED to use DICE as the per-VM secret derivation mechanism.MUST do DICE properly ie provide the correct values.
- [C-1-1] MUST support all the APIs defined by the