Android 14
26. Juni 2024
2. Gerätetypen
-
Überarbeitung ansehen
- [7.6.1/H-1-1] DARF nur eine einzige ABI unterstützen (entweder nur 64-Bit oder nur 32-Bit).
Überarbeitung ansehen
Neue Anforderungen erstellen
Wenn Implementierungen von Handheld-Geräten Vulkan unterstützen, gilt Folgendes:
- [7.1.4.2/H-1-1] MUSS die Anforderungen des Android Baseline 2021-Profils erfüllen.
-
Überarbeitung ansehen
Neue Anforderungen erstellen
Wenn Implementierungen auf Smartwatch-Geräten Vulkan unterstützen, gilt Folgendes:
- [7.1.4.2/W-1-1] MUSS die Anforderungen des Android Baseline 2021-Profils erfüllen.
-
Überarbeitung ansehen
Neue Anforderungen erstellen
Wenn Implementierungen von Automobil-Geräten Vulkan unterstützen, gilt Folgendes:
- [7.1.4.2/A-1-1] MUSS die Anforderungen des Android Baseline 2021-Profils erfüllen.
3. Software
-
Für den Parameter „ODM_SKU“:
Überarbeitung ansehen
Der Wert dieses Felds MUSS als 7-Bit-ASCII codierbar sein und dem regulären Ausdruck
^([0-9A-Za-z.,_-]+)$
entsprechen.
5. Multimedia-Kompatibilität
5.1.3 Details zu Audio-Codecs:
Es wurden Details für das Vorbis-Format/Codec hinzugefügt:
Überarbeitung ansehen
Decodierung: Unterstützung für Mono-, Stereo-, 5.0- und 5.1-Inhalte mit Abtastraten von 8.000, 12.000, 16.000, 24.000 und 48.000 Hz.
Codierung: Unterstützung für Mono- und Stereoinhalte mit Abtastraten von 8.000, 080, 120, 120, 120 Hz und 120 Hz
7. Hardwarekompatibilität
-
Überarbeitung ansehen
- [C-1-13] MUSS die Anforderungen des Android Baseline-Profils 2021 erfüllen.
-
Entfernung von:
Überarbeitung ansehen
- SOLLTEN NICHT das in der Android Open Accessory Protocol 2.0-Dokumentation dokumentierte AOAv2-Audio implementiert werden. AOAv2 Audio wird ab Android-Version 8.0 (API-Level 26) eingestellt.
9. Kompatibilität des Sicherheitsmodells
-
[C-SR-1] wurde zum Entfernen duplizierter Inhalte in [C-SR-7] umbenannt und [C-SR-8] entfernt:
Überarbeitung ansehen
[C-SR-1] EMPFOHLEN, Kerneldaten, die nur während der Initialisierung geschrieben werden, nach der Initialisierung als schreibgeschützt markiert zu behalten (z.B.
__ro_after_init
).[C-SR-2] wird dringend empfohlen, das Layout des Kernel-Codes und des Arbeitsspeichers zufällig zu gestalten und Kontakte zu vermeiden, die die Randomisierung beeinträchtigen würden (z.B.
CONFIG_RANDOMIZE_BASE
mit Bootloader-Entropie über/chosen/kaslr-seed Device Tree node
oderEFI_RNG_PROTOCOL
).[C-SR-3] wird dringend empfohlen, die Kontrollflussintegrität (Control Flow Integrity, CFI) im Kernel zu aktivieren, um zusätzlichen Schutz vor Code-Wiederverwendungsangriffen (z.B.
CONFIG_CFI_CLANG
undCONFIG_SHADOW_CALL_STACK
) zu bieten.[C-SR-4] Es wird DRINGEND empfohlen, die Kontrollflussintegrität (Control-Flow Integrity, CFI), den Shadow Call Stack (SCS) oder die Integer Overflow-Bereinigung (IntSan) für Komponenten, für die sie aktiviert ist, nicht zu deaktivieren.
[C-SR-5] wird dringend empfohlen, CFI, SCS und IntSan für alle zusätzlichen sicherheitsrelevanten Userspace-Komponenten zu aktivieren, wie unter CFI und IntSan erläutert.
[C-SR-6] wird dringend empfohlen, die Stack-Initialisierung im Kernel zu aktivieren, um die Verwendung nicht initialisierter lokaler Variablen (
CONFIG_INIT_STACK_ALL
oderCONFIG_INIT_STACK_ALL_ZERO
) zu verhindern. Außerdem sollten Geräteimplementierungen NICHT den Wert annehmen, der vom Compiler zur Initialisierung der lokalen Variablen verwendet wird.[C-SR-7] wird dringend empfohlen, die Heap-Initialisierung im Kernel zu aktivieren, um die Verwendung nicht initialisierter Heap-Zuweisungen (
CONFIG_INIT_ON_ALLOC_DEFAULT_ON
) zu verhindern, und SOLLTE NICHT von dem Wert ausgehen, der vom Kernel zum Initialisieren dieser Zuweisungen verwendet wird.
9.11 Schlüssel und Anmeldedaten:
Überarbeitung ansehen
- [C-1-6] MUSS eine der folgenden Funktionen unterstützen:
- IKeymasterDevice 3.0
- IKeymasterDevice 4.0
- IKeymasterDevice 4.1
- IKeyMintDevice Version 1 oder
- IKeyMintDevice Version 2.
- [C-1-6] MUSS eine der folgenden Funktionen unterstützen:
9.11.1 Sicherer Sperrbildschirm, Authentifizierung und virtuelle Geräte:
Überarbeitung ansehen
- [C-8-3] Sie DÜRFEN KEINE API zur Verwendung durch Drittanbieter-Apps zur Verfügung stellen, um den Sperrstatus zu ändern.
Überarbeitung ansehen
- [C-12-4] MUSS
TrustManagerService.revokeTrust()
aufrufen.- Nach spätestens 24 Stunden nach Erteilung der Vertrauensstellung oder
- Nach acht Stunden Inaktivität oder
- Wenn die Implementierungen keine kryptografisch sichere und präzise Bereichserkennung wie in [C-12-5] definiert verwenden, wenn die zugrunde liegende Verbindung zum nahe gelegenen physischen Gerät unterbrochen wird.
- [C-12-5] Implementierungen, die sich auf eine sichere und genaue Bereichserkennung stützen, um die Anforderungen von [C-12-4] zu erfüllen, MÜSSEN eine der folgenden Lösungen verwenden:
- Implementierungen mit UWB:
- MÜSSEN die in 7.4.9 beschriebenen Konformitäts-, Zertifizierungs-, Genauigkeits- und Kalibrierungsanforderungen für UWB erfüllen.
- MÜSSEN einen der unter 7.4.9 aufgeführten P-STS-Sicherheitsmodi verwenden.
- Implementierungen unter Verwendung von Wi-Fi Neighborhood Awareness Networking (NAN):
- MÜSSEN die Anforderungen an die Genauigkeit in 2.2.1 [7.4.2.5/H-SR-1] erfüllen, die Bandbreite von 160 MHz (oder höher) verwenden und die unter Anwesenheitskalibrierung beschriebenen Schritte zur Einrichtung der Messung ausführen.
- MÜSSEN Secure LTF gemäß IEEE 802.11az verwenden.
- Implementierungen mit UWB:
8. April 2024
2. Gerätetypen
-
Überarbeitung ansehen
Neue Anforderungen erstellen
Wenn in Implementierungen von Handheld-Geräten
FEATURE_BLUETOOTH_LE
deklariert ist, gilt Folgendes:- [7.4.3/H-1-3] MÜSSEN und kompensieren den Rx-Offset, um sicherzustellen, dass der Medianwert für BLE RSSI bei -50 dBm +/-15 dB in 1 m Entfernung von einem Referenzgerät liegt, das bei
ADVERTISE_TX_POWER_HIGH
sendet. - [7.4.3/H-1-4] MÜSSEN den Tx-Offset messen und kompensieren, um sicherzustellen, dass der Medianwert für BLE RSSI bei -50 dBm +/-15 dB liegt, wenn beim Scannen von einem Referenzgerät, das in einer Entfernung von 1 m positioniert ist, und bei der Übertragung bei
ADVERTISE_TX_POWER_HIGH
der Wert liegt.
- [7.4.3/H-1-3] MÜSSEN und kompensieren den Rx-Offset, um sicherzustellen, dass der Medianwert für BLE RSSI bei -50 dBm +/-15 dB in 1 m Entfernung von einem Referenzgerät liegt, das bei
-
Überarbeitung ansehen
Wenn Implementierungen von Handheld-Geräten die System API
HotwordDetectionService
oder einen anderen Mechanismus zur Hotword-Erkennung ohne Angabe des Mikrofonzugriffs unterstützen, gilt Folgendes:- [9.8/H-1-6] DARF NICHT zulassen, dass bei jedem erfolgreichen Hotword-Ergebnis mehr als 100 Byte Daten aus dem Hotword-Erkennungsdienst übertragen werden, mit Ausnahme von Audiodaten, die über HotwordAudioStream weitergeleitet werden.
Überarbeitung ansehen
Ändern Sie [9.8/H-1-13] in:
- [9.8/H-SR-3] Es wird dringend empfohlen, den Prozess, der den Dienst zur Hotword-Erkennung hostet, mindestens einmal pro Stunde oder alle 30 Hardware-Trigger-Ereignisse neu zu starten, je nachdem, was zuerst eintritt.
Überarbeitung ansehen
Anforderungen entfernt [9.8.2/H-4-3], [9.8.2/H-4-4], [9.8.2/H-5-3].
-
Überarbeitung ansehen
Wenn Implementierungen von Handheld-Geräten
android.os.Build.VERSION_CODES.U
fürandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
zurückgeben, gilt Folgendes:- [7.5/H-1-3] MUSS die Eigenschaft
android.info.supportedHardwareLevel
alsFULL
oder besser für die rückwärtige primäre Kamera undLIMITED
oder besser für die primäre Frontkamera unterstützen.
- [7.5/H-1-3] MUSS die Eigenschaft
-
Überarbeitung ansehen
Wenn Fernsehgeräte nicht über einen integrierten Bildschirm verfügen, sondern stattdessen einen über HDMI angeschlossenen externen Bildschirm unterstützen, gilt Folgendes:
- [5.8/T-0-1] MÜSSEN für den HDMI-Ausgabemodus die höchste Auflösung für das ausgewählte Pixelformat eingestellt werden, die mit einer Aktualisierungsrate von 50 Hz oder 60 Hz für den externen Bildschirm funktioniert. Dies hängt von der Videoaktualisierungsrate in der Region ab, in der das Gerät verkauft wird.
MÜSSEN im HDMI-Ausgabemodus die maximale Auflösung ausgewählt werden, die mit einer Aktualisierungsrate von 50 Hz oder 60 Hz unterstützt wird.
- [5.8/T-0-1] MÜSSEN für den HDMI-Ausgabemodus die höchste Auflösung für das ausgewählte Pixelformat eingestellt werden, die mit einer Aktualisierungsrate von 50 Hz oder 60 Hz für den externen Bildschirm funktioniert. Dies hängt von der Videoaktualisierungsrate in der Region ab, in der das Gerät verkauft wird.
3. Software
3.5.1 Anwendungseinschränkung:
Überarbeitung ansehen
- Anforderung [C-1-9] entfernt
5. Multimedia-Kompatibilität
-
Überarbeitung ansehen
Wenn Geräteimplementierungen die Unterstützung für den Dolby Vision-Decoder über
HDR_TYPE_DOLBY_VISION
deklarieren, geschieht Folgendes:- [C-1-3] MÜSSEN die Track-ID der abwärtskompatiblen Basisebenen (falls vorhanden) mit der Track-ID der kombinierten Dolby Vision-Ebene übereinstimmen.
7. Hardwarekompatibilität
7.1.1.1 Bildschirmgröße und ‐form:
Überarbeitung ansehen
Wenn Geräteimplementierungen Bildschirme unterstützen, die für die Größenkonfiguration
UI_MODE_TYPE_NORMAL
geeignet sind und physische Displays mit abgerundeten Ecken zum Rendern dieser Bildschirme verwendet werden, gilt Folgendes:- [C-1-1] MÜSSEN sicherstellen, dass für jedes dieser Displays mindestens eine der folgenden Anforderungen erfüllt ist:
- Wenn in jeder Ecke der logischen Anzeige ein Feld mit
15und 18 dp ×1518 dp verankert ist, ist mindestens ein Pixel jedes Felds auf dem Bildschirm sichtbar.
- Wenn in jeder Ecke der logischen Anzeige ein Feld mit
- [C-1-1] MÜSSEN sicherstellen, dass für jedes dieser Displays mindestens eine der folgenden Anforderungen erfüllt ist:
-
Überarbeitung ansehen
Die folgenden Anforderungen wurden reaktiviert:
Wenn in Geräteimplementierungen
FEATURE_BLUETOOTH_LE
deklariert wird, gilt Folgendes:[C-SR-2] Es wird dringend empfohlen, den Rx-Versatz zu messen und zu kompensieren, um sicherzustellen, dass der Medianwert für BLE RSSI bei 1 m Abstand zu einem Referenzgerät, das die Übertragung an
ADVERTISE_TX_POWER_HIGH
sendet, bei -60 dBm +/-10 dB liegt. Die Geräte sind so ausgerichtet, dass sie auf „parallelen Ebenen“ mit Bildschirmen in die gleiche Richtung ausgerichtet sind.[C-SR-3] Es wird dringend empfohlen, den Tx-Offset zu messen und zu kompensieren, um sicherzustellen, dass der Medianwert für BLE RSSI bei -60 dBm +/-10 dB liegt, wenn das Scannen von einem Referenzgerät, das in 1 m Entfernung positioniert ist, und die Übertragung unter
ADVERTISE_TX_POWER_HIGH
erfolgt, wobei die Geräte so ausgerichtet sind, dass sie sich auf parallelen Ebenen befinden und Bildschirme in die gleiche Richtung zeigen.
Überarbeitung ansehen
Die Anforderungen [C-10-3] und [C-10-4] wurden in 2.2.1. Hardware.
- [C-10-3] MÜSSEN den Rx-Offset messen und kompensieren, um sicherzustellen, dass der Medianwert für BLE RSSI bei -55 dBm +/-10 dB in 1 m Entfernung von einem Referenzgerät liegt, das bei
ADVERTISE_TX_POWER_HIGH
sendet. - [C-10-4] MÜSSEN den Tx-Offset messen und kompensieren, um sicherzustellen, dass der Medianwert für BLE RSSI bei -55 dBm +/-10 dB liegt, wenn beim Scannen von einem Referenzgerät, das in einer Entfernung von 1 m positioniert ist, und bei der Übertragung bei
ADVERTISE_TX_POWER_HIGH
liegt.
20. November 2023
2. Gerätetypen
-
Überarbeitung ansehen
Wenn Implementierungen von Handheld-Geräten die Unterstützung von 64-Bit-ABIs (mit oder ohne 32-Bit-ABI) deklarieren:
-
Überarbeitung ansehen
- [7.5/H-1-13] MUSS die
LOGICAL_MULTI_CAMERA
-Funktion für die primäre rückseitige Kamera unterstützen, wenn mehr als eine RGB-Rückkamera vorhanden ist.
- [7.5/H-1-13] MUSS die
-
Überarbeitung ansehen
[5.8/T-0-1] MÜSSEN den HDMI-Ausgabemodus auf die höchste Auflösung für das ausgewählte SDR- oder HDR-Format einstellen, die mit einer Aktualisierungsrate von 50 Hz oder 60 Hz für den externen Bildschirm funktioniert.
MÜSSEN im HDMI-Ausgabemodus die maximale Auflösung ausgewählt werden, die mit einer Aktualisierungsrate von 50 Hz oder 60 Hz unterstützt wird.
-
Überarbeitung ansehen
- [9/W-0-1] MUSS die
android.hardware.security.model.compatible feature
deklarieren.
- [9/W-0-1] MUSS die
6. Kompatibilität von Entwicklertools und -optionen
-
Überarbeitung ansehen
- [C-0-12] MUSS ein
LMK_KILL_OCCURRED_FIELD_NUMBER
-Atom in die
Überarbeitung ansehen
- [C-0-13] MÜSSEN den Shell-Befehl
dumpsys gpu --gpuwork
implementieren, um
- [C-0-12] MUSS ein
9. Kompatibilität des Sicherheitsmodells
-
Überarbeitung ansehen
Wenn Geräteimplementierungen einen Linux-Kernel verwenden, der SELinux unterstützt, geschieht Folgendes:
Überarbeitung ansehen
Wenn Geräteimplementierungen einen anderen Kernel als Linux oder Linux ohne SELinux verwenden, geschieht Folgendes:
4. Oktober 2023
2. Gerätetypen
2.2 Anforderungen für Handhelds:
Überarbeitung ansehen
Implementierungen von Android-Geräten werden als Handhelds klassifiziert, wenn sie die folgenden Kriterien erfüllen:
- Bildschirmgröße der physischen Diagonale zwischen 4 Zoll
3,3 Zoll (oder 2,5 Zoll für Geräteimplementierungen, die mit API-Level 29 oder früher ausgeliefert wurden)bis 8 Zoll.
Neue Anforderungen erstellen
- über eine Touchscreen-Eingabeoberfläche verfügen.
- Bildschirmgröße der physischen Diagonale zwischen 4 Zoll
-
Überarbeitung ansehen
Implementierungen von Handheld-Geräten:
- [7.1.1.1/H-0-1] MUSS mindestens ein
Android-kompatibles Display haben, das alle in diesem Dokument beschriebenen Anforderungen erfüllt. Das Display hat eine Länge von mindestens 2,2 Zoll an der kurzen und 3,4 Zoll an der langen Seite.
Wenn Implementierungen von Handheld-Geräten die Bildschirmdrehung durch Software unterstützen, gilt Folgendes:
- [7.1.1.1/H-1-1]* MÜSSEN der logische Bildschirm, der für Anwendungen von Drittanbietern zur Verfügung gestellt wird, an den kurzen Seiten mindestens 2 Zoll und an den langen Kanten mindestens 2,7 Zoll lang sein. Geräte, die mit Android API-Level 29 oder niedriger ausgeliefert wurden, KÖNNEN von dieser Anforderung ausgenommen.
Wenn Implementierungen von Handheld-Geräten die Bildschirmdrehung durch Software nicht unterstützen, geschieht Folgendes:
- [7.1.1.1/H-2-1]* MÜSSEN die kurzen Seiten des logischen Bildschirms, der für Anwendungen von Drittanbietern zur Verfügung gestellt wird, mindestens 2,7 Zoll haben. Geräte, die mit Android API-Level 29 oder niedriger ausgeliefert wurden, KÖNNEN von dieser Anforderung ausgenommen.
Neue Anforderungen erstellen
[7.1.1.1/H-0-3]* MÜSSEN jedes
UI_MODE_NORMAL
-Display, das für Anwendungen von Drittanbietern zur Verfügung gestellt wird, auf einem freien Bildschirmbereich platzieren, der an der kurzen Seite mindestens 2,2" und an der langen Seite 3,4" Zoll groß ist.[7.1.1.3/H-0-1]* MÜSSEN den Wert von
DENSITY_DEVICE_STABLE
auf 92% oder größer als die tatsächliche Dichte des entsprechenden Bildschirms setzen.
Wenn in Implementierungen von Handheld-Geräten
android.hardware.audio.output
undandroid.hardware.microphone
deklariert sind, gilt Folgendes:[5.6/H-1-1] MUSS über die Datenpfade „Lautsprecher zu Mikrofon“, 3,5 mm Loopback-Adapter (falls unterstützt), USB-Loopback-Adapter (falls unterstützt) eine durchschnittliche Latenz für kontinuierliche Umlaufzeit von 300 Millisekunden oder weniger als 5 Messungen mit einer mittleren absoluten Abweichung von weniger als 30 ms haben.
[5.6/H-1-2] MUSS eine durchschnittliche Latenz von Tap-to-Tone von 300 Millisekunden oder weniger über mindestens fünf Messungen über dem Datenpfad zwischen dem Lautsprecher und dem Mikrofon haben.
Implementierungen von Handheld-Geräten, die mindestens einen haptischen Bedienungselement enthalten:
- [7.10/H]* DÜRFEN KEINE haptischen Bedienungselement mit exzentrischer rotierender Masse (ERM) verwenden.
- [7.10/H]* SOLLTEN alle öffentlichen Konstanten für eine klare Haptik in android.view.HapticFeedbackConstants implementieren, nämlich (CLOCK_TICK, CONTEXT_CLICK, KEYBOARD_PRESS, KEYBOARD_RELEASE, KEYBOARD_TAPVI, LONG_PRESSAND_KEYEKE_START, LONG_PRESS.
- [7.10/H]* SOLLTEN alle öffentlichen Konstanten für eindeutige Haptik in android.os.VibrationEffect implementieren, nämlich (EFFEKT_TICK, EFFEKT_KLICK, EFFEKT_HEAVY_CLICK und EFFEKT_DOUBLE_CLICK) und alle zulässigen öffentlichen
PRIMITIVE_*
-Konstanten für Rich_PIN0-Haptik{/0, SPI_THICK1, QUANTIL_THICK1 und hoher haptischer Effekt. Einige dieser Primitive, z. B. LOW_TICK und SPIN, sind möglicherweise nur dann ausführbar, wenn die Vibration relativ niedrige Frequenzen unterstützt. - [7.10/H]* SOLLTEN Sie nach der Anleitung zur Zuordnung öffentlicher Konstanten in android.view.HapticFeedbackConstants den empfohlenen android.os.VibrationEffect-Konstanten mit den entsprechenden Amplitudenbeziehungen folgen.
- [7.10/H]* SOLLTEN der Qualitätsprüfung für die APIs createOneShot() und createWaveform() folgen.
- [7.10/H]* SOLLTEN prüfen, ob das Ergebnis der öffentlichen android.os.Vibrator.hasAmplitudeControl() API die Vibrationsfunktionen korrekt wiedergibt.
- [7.10/H]* SOLLTE die Position des Bedienungselements in der Nähe der Stelle positionieren, an der das Gerät normalerweise von Händen gehalten oder berührt wird.
Wenn Implementierungen von Handheld-Geräten mindestens einen linearen Resonator 7.10 für allgemeine Zwecke enthalten, gilt Folgendes:
- [7.10/H] SOLLTE die Position des Bedienungselements in der Nähe der Stelle positionieren, an der das Gerät normalerweise mit Händen gehalten oder berührt wird.
- [7.10/H] SOLLTE den haptischen Auslöser in der X-Achse (links-rechts) im natürlichen
Hochformatdes Geräts verschieben.
Wenn Implementierungen von Handheld-Geräten einen haptischen Bedienelement für allgemeine Zwecke haben, bei dem es sich um einen linearen Resonanzaktuator (X-Achsen-LRA) handelt, gilt Folgendes:
- [7.10/H] SOLLTEN die Resonanzfrequenz der X-Achsen-LRA unter 200 Hz liegen.
- [7.1.1.1/H-0-1] MUSS mindestens ein
-
Überarbeitung ansehen
Implementierungen von Handheld-Geräten MÜSSEN die folgenden Videocodierungsformate unterstützen und für Anwendungen von Drittanbietern verfügbar machen:
- [5.2/H-0-3] AV1
Implementierungen von Handheld-Geräten MÜSSEN die folgenden Videodecodierungsformate unterstützen und für Drittanbieteranwendungen verfügbar machen:
- [5.3/H-0-6] AV1
-
Überarbeitung ansehen
Wenn Geräteimplementierungen, einschließlich der Navigationstaste für die Funktion „Recents“, wie in Abschnitt 7.2.3 beschrieben, die Schnittstelle ändern, passiert Folgendes:
- [3.8.3/H-1-1] MÜSSEN das Verhalten der Bildschirmfixierung implementieren und dem Nutzer ein Einstellungsmenü zum Ein-/Ausschalten der Funktion zur Verfügung stellen.
Wenn Implementierungen von Handheld-Geräten die APIs
ControlsProviderService
undControl
unterstützen und Drittanbieter-Apps erlauben, Gerätesteuerung zu veröffentlichen, gilt Folgendes:- [3.8.16/H-1-6] Geräteimplementierungen MÜSSEN die Leistung für Nutzer wie folgt korrekt wiedergeben:
- Wenn auf dem Gerät
config_supportsMultiWindow=true
festgelegt ist und die App die MetadatenMETA_DATA_PANEL_ACTIVITY
in derControlsProviderService
-Deklaration deklariert, einschließlich des ComponentName einer gültigen Aktivität (wie von der API definiert), MUSS die App diese Aktivität in dieses Nutzerangebot einbetten. - Wenn die App die Metadaten
META_DATA_PANEL_ACTIVITY
nicht deklariert, MÜSSEN die von derControlsProviderService
API bereitgestellten Felder sowie alle von den Control APIs bereitgestellten Felder gerendert werden.
- Wenn auf dem Gerät
- [3.8.16/H-1-7] Wenn die App die Metadaten
META_DATA_PANEL_ACTIVITY
deklariert, MUSS sie beim Starten der eingebetteten Aktivität mithilfe vonEXTRA_LOCKSCREEN_ALLOW_TRIVIAL_CONTROLS
den Wert der in [3.8.16/H-1-5] definierten Einstellung übergeben.
Wenn Geräte, die es Nutzern ermöglichen, beliebige Anrufe zu tätigen,
- [7.4.1.2/H-0-1] MUSS das Funktions-Flag
android.software.telecom
deklarieren. - [7.4.1.2/H-0-2] MÜSSEN das Telekommunikations-Framework implementieren.
-
Überarbeitung ansehen
Implementierungen von Handheld-Geräten:
- [8.5/H-0-1] MÜSSEN ein Nutzerangebot
im Einstellungsmenüzur Verfügung stellen, um alle Apps mit aktiven Diensten oder vom Nutzer initiierten Jobs zu sehen, einschließlich der Dauer der einzelnen Dienste, da sie wie im SDK-Dokument beschrieben gestartet wurden.und die Möglichkeit, eine App zu beenden, in der ein Dienst im Vordergrund ausgeführt wird und die Funktion eines vom Nutzer initiierten Jobs, der im Vordergrund ausgeführt wird, sowie die Möglichkeit, eine App zu beenden, in der ein Dienst im Vordergrund ausgeführt wird, oder ein vom Nutzer initiierter Job zu stoppen.- Einige Apps KÖNNEN, wie im SDK-Dokument beschrieben, von der Beendigung oder Auflistung dieser Apps ausgenommen sein.
- [8.5/H-0-2]MÜSSEN ein Nutzerangebot zum Stoppen einer App bereitstellen, die einen Dienst im Vordergrund ausführt, oder einen vom Nutzer initiierten Job.
- [8.5/H-0-1] MÜSSEN ein Nutzerangebot
-
Überarbeitung ansehen
Wenn in Geräteimplementierungen die Unterstützung von
android.hardware.telephony
deklariert wird, gilt Folgendes:- [9.5/H-1-1] DARF
UserManager.isHeadlessSystemUserMode
NICHT auftrue
setzen.
Wenn Geräteimplementierungen einen sicheren Sperrbildschirm haben und einen oder mehrere Trust Agenten enthalten, die die
TrustAgentService
System API implementieren, geschieht Folgendes:- [9.11.1/H-1-1] MÜSSEN den Nutzer häufiger als alle 72 Stunden zur Eingabe einer der empfohlenen primären Authentifizierungsmethoden (z. B. PIN, Muster, Passwort) auffordern.
Wenn in Implementierungen von Handheld-Geräten
UserManager.isHeadlessSystemUserMode
auftrue
gesetzt wird,Wenn Implementierungen von Handheld-Geräten die System API
HotwordDetectionService
oder einen anderen Mechanismus für die Hotword-Erkennung ohne Anzeige des Mikrofonzugriffs unterstützen, gilt Folgendes:- [9.8/H-1-1] MÜSSEN sicherstellen, dass der Hotword-Erkennungsdienst nur Daten an das System,
ContentCaptureService
oder den vonSpeechRecognizer#createOnDeviceSpeechRecognizer()
erstellten On-Device-Spracherkennungsdienst auf dem Gerät übertragen kann. - [9.8/H-1-6] DÜRFEN bei jedem erfolgreichen Hotword-Ergebnis NICHT zulassen, dass mehr als 100 Byte Daten (mit Ausnahme von Audiostreams) aus dem Hotword-Erkennungsdienst übertragen werden.
- [9.8/H-1-15] MÜSSEN sicherstellen, dass Audiostreams, die bei erfolgreichen Hotword-Ergebnissen bereitgestellt werden, in eine Richtung vom Hotword-Erkennungsdienst an den Sprachinteraktionsdienst übertragen werden.
Wenn in der Geräteimplementierung eine Anwendung enthalten ist, die die System API
HotwordDetectionService
oder einen ähnlichen Mechanismus zur Hotword-Erkennung ohne Hinweis auf die Mikrofonnutzung verwendet, gilt für die Anwendung Folgendes:- [9.8/H-2-3] DÜRFEN KEINE Audiodaten, Audiodaten, die zur vollständigen oder teilweisen Rekonstruktion der Audiodaten verwendet werden können, oder Audioinhalte, die in keinem Zusammenhang mit dem Hotword selbst stehen, übertragen, mit Ausnahme von
ContentCaptureService
oder dem Spracherkennungsdienst auf dem Gerät.
Wenn Implementierungen von Handheld-Geräten die System API
VisualQueryDetectionService
oder einen anderen Mechanismus zur Abfrageerkennung ohne Angabe des Mikrofon- und/oder Kamerazugriffs unterstützen, gilt Folgendes:- [9.8/H-3-1] MÜSSEN sicherstellen, dass der Abfrageerkennungsdienst nur Daten an den System-,
ContentCaptureService
- oder On-Device-Spracherkennungsdienst (erstellt vonSpeechRecognizer#createOnDeviceSpeechRecognizer()
) übertragen kann. - [9.8/H-3-2] DÜRFEN NICHT zulassen, dass Audio- oder Videoinformationen aus
VisualQueryDetectionService
übertragen werden, mit Ausnahme vonContentCaptureService
oder dem Spracherkennungsdienst auf dem Gerät. - [9.8/H-3-3] MÜSSEN in der System-UI ein Nutzerhinweis angezeigt werden, wenn das Gerät erkennt, dass ein Nutzer mit der App für digitalen Assistenten interagieren möchte (z. B. durch die Erkennung der Anwesenheit eines Nutzers über die Kamera).
- [9.8/H-3-4] MÜSSEN eine Mikrofonanzeige und die erkannte Nutzeranfrage direkt nach der Erkennung in der Benutzeroberfläche anzeigen.
- [9.8/H-3-5] DARF NICHT zulassen, dass eine vom Nutzer installierbare Anwendung den visuellen Abfrageerkennungsdienst bereitstellt.
- [9.5/H-1-1] DARF
-
Überarbeitung ansehen
Wenn Implementierungen von Handheld-Geräten
android.os.Build.VERSION_CODES.T
fürandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
zurückgeben, gilt Folgendes:- MÜSSEN die in Android 13 CDD, Abschnitt 2.2.7.1 aufgeführten Anforderungen an Medien erfüllen.
Neue Anforderungen erstellen
Wenn Implementierungen von Handheld-Gerätenandroid.os.Build.VERSION_CODES.U
fürandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
zurückgeben, gilt Folgendes:- [5.1/H-1-1] MÜSSEN die maximale Anzahl von Hardware-Videodecodersitzungen bekannt geben, die gleichzeitig in einer beliebigen Codec-Kombination über die Methoden
CodecCapabilities.getMaxSupportedInstances()
undVideoCapabilities.getSupportedPerformancePoints()
ausgeführt werden können. - [5.1/H-1-2] MUSS 6 Instanzen von 8-Bit-Hardware-Videodecodersitzungen (AVC, HEVC, VP9, AV1 oder höher) in jeder Codec-Kombination unterstützen, die gleichzeitig mit 3 Sitzungen bei einer Auflösung von 1080p bei 30 fps und 3 Sitzungen bei 4K-Auflösung bei AV30 fps läuft, außer AVC, AV1-Codecs sind nur erforderlich, um eine Auflösung von 1080p zu unterstützen. Sie sind aber auch für sechs Instanzen mit 1080p30 fps erforderlich.
- [5.1/H-1-3] MÜSSEN die maximale Anzahl von Hardware-Video-Encoder-Sitzungen bekannt machen, die gleichzeitig in einer beliebigen Codec-Kombination über die Methoden
CodecCapabilities.getMaxSupportedInstances()
undVideoCapabilities.getSupportedPerformancePoints()
ausgeführt werden können. - [5.1/H-1-4] MUSS 6 Instanzen von 8-Bit-Hardware-Video-Encoder-Sitzungen (AVC, HEVC, VP9, AV1 oder höher) in jeder Codec-Kombination unterstützen, die gleichzeitig mit 4 Sitzungen bei einer Auflösung von 1080p bei 30 fps und 2 Sitzungen bei 4K-Auflösung bei AV30 fps läuft, außer AVC, AV1-Codecs sind nur erforderlich, um eine Auflösung von 1080p zu unterstützen. Sie sind aber auch für sechs Instanzen mit 1080p30 fps erforderlich.
- [5.1/H-1-5] MÜSSEN die maximale Anzahl von Hardware-Video-Encoder- und -Decoder-Sitzungen bekannt machen, die gleichzeitig in einer beliebigen Codec-Kombination über die Methoden
CodecCapabilities.getMaxSupportedInstances()
undVideoCapabilities.getSupportedPerformancePoints()
ausgeführt werden können. - [5.1/H-1-6] MÜSSEN 6 Instanzen von 8-Bit-Hardware-Videodecoder- und Hardware-Video-Encoder-Sitzungen (AVC, HEVC, VP9, AV1 oder höher) in einer beliebigen Codec-Kombination unterstützen, die gleichzeitig mit 3 Sitzungen mit einer Auflösung von 4K bei 30 fps (außer AV1) und maximal 30 Encoder-Sitzungen mit Auflösung erforderlich ist. AV1-Codecs sind nur erforderlich, um eine Auflösung von 1080p zu unterstützen. Sie sind aber auch für sechs Instanzen mit 1080p30 fps erforderlich.
- [5.1/H-1-19] MÜSSEN 3 Instanzen von 10-Bit-Hardware-Videodecoder (HDR) und Hardware-Video-Encoder-Sitzungen (AVC, HEVC, VP9, AV1 oder höher) in jeder Codec-Kombination unterstützen, die gleichzeitig mit einer Auflösung von 4K bei 30 fps läuft (es sei denn, AV1 kann ein Surface_GL0-Format sein, das in einer Encoder-Sitzung konfiguriert ist). Bei einer Codierung über die GL-Oberfläche ist keine HDR-Metadatengenerierung durch den Encoder erforderlich. AV1-Codec-Sitzungen sind nur erforderlich, um eine Auflösung von 1080p zu unterstützen, auch wenn 4K für diese Anforderung erforderlich ist.
- [5.1/H-1-7] MÜSSEN bei einer Videocodierungssitzung mit 1080p oder weniger bei allen Hardware-Video-Encodern unter Last eine Codec-Initialisierungslatenz von 40 ms oder weniger haben. Der Ladevorgang ist hier als eine gleichzeitige reine Videotranscodierungssitzung von 1080p bis 720p definiert, die Hardware-Video-Codecs und die Initialisierung von 1080p-Audio-Video-Aufzeichnungen verwendet. Bei Dolby Vision-Codec MUSS die Codec-Initialisierungslatenz 50 ms oder weniger betragen.
- [5.1/H-1-8] MÜSSEN bei einer Audiocodierungssitzung mit 128 kbit/s oder einer niedrigeren Bitrate bei allen Audio-Encodern unter Last eine Codec-Initialisierungslatenz von 30 ms oder weniger auftreten. Der Ladevorgang ist hier als eine gleichzeitige reine Videotranscodierungssitzung von 1080p bis 720p definiert, die Hardware-Video-Codecs und die Initialisierung von 1080p-Audio-Video-Aufzeichnungen verwendet.
- [5.1/H-1-9] MUSS 2 Instanzen sicherer Hardware-Videodecodersitzungen (AVC, HEVC, VP9, AV1 oder höher) in einer beliebigen Codec-Kombination unterstützen, die gleichzeitig mit einer Auflösung von 4K bei 30 fps (außer AV1) für 8-Bit- (SDR) und 10-Bit-HDR-Inhalte läuft. AV1-Codec-Sitzungen sind nur erforderlich, um eine Auflösung von 1080p zu unterstützen, auch wenn 4K für diese Anforderung erforderlich ist.
- [5.1/H-1-10] MÜSSEN 3 Instanzen nicht sicherer Hardware-Videodecoder-Sitzungen zusammen mit einer Instanz einer sicheren Hardware-Videodecoder-Sitzung (insgesamt 4 Instanzen) (AVC, HEVC, VP9, AV1 oder höher) in jeder Codec-Kombination unterstützen, die gleichzeitig mit 3 Sitzungen bei 4K-Auflösung bei 30 fps und einer sicheren AV1-Sitzung mit einer Auflösung von 30 fps und einer sicheren AV1-Sitzung mit 4K-Auflösung bei 30 fps ausgeführt wird. AV1-Codec-Sitzungen sind nur erforderlich, um eine Auflösung von 1080p zu unterstützen, auch wenn 4K für diese Anforderung erforderlich ist.
- [5.1/H-1-11] MÜSSEN für jeden Hardware-AVC-, HEVC-, VP9- oder AV1-Decoder auf dem Gerät einen sicheren Decoder unterstützen.
- [5.1/H-1-12] MÜSSEN unter Last bei einer Videodecodierungssitzung mit 1080p oder kleiner für alle Hardware-Videodecoder eine Codec-Initialisierungslatenz von maximal 40 ms haben. Das Laden ist definiert als eine gleichzeitige reine Videotranscodierung mit 1080p bis 720p, die Hardware-Video-Codecs und die Initialisierung der Audio-Video-Wiedergabe von 1080p verwendet. Bei Dolby Vision-Codec MUSS die Codec-Initialisierungslatenz 50 ms oder weniger betragen.
- [5.1/H-1-13] MÜSSEN bei einer Audiodecodierungssitzung mit 128 kbit/s oder einer niedrigeren Bitrate für alle Audiodecoder unter Last eine Codec-Initialisierungslatenz von 30 ms oder weniger haben. Der Ladevorgang ist hier als eine gleichzeitige reine Videotranscodierungssitzung von 1080p bis 720p definiert, die Hardware-Video-Codecs zusammen mit der Initialisierung der Audio-Video-Wiedergabe von 1080p verwendet.
- [5.1/H-1-14] MÜSSEN den AV1-Hardwaredecoder Main 10, Level 4.1 und Filmkörnung unterstützen.
- [5.1/H-1-15] MUSS mindestens einen Hardware-Videodecoder haben, der 4K60 unterstützt.
- [5.1/H-1-16] MUSS mindestens einen Hardware-Video-Encoder haben, der 4K60 unterstützt.
- [5.3/H-1-1] DARF BEI einer Videositzung mit 4K und 60 fps unter Last NICHT mehr als einen Frame in 10 Sekunden (d.h.weniger als 0,167 % Frame-Abfall) fallen.
- [5.3/H-1-2] DÜRFEN NICHT mehr als 1 Frame in 10 Sekunden während einer Änderung der Videoauflösung in einer Videositzung mit 60 fps unter Last bei einer 4K-Sitzung fallen.
- [5.6/H-1-1] MÜSSEN bei Verwendung des Tap-to-Tone-Tests von CTS Verifier eine Antippen-Ton-Latenz von maximal 80 Millisekunden haben.
- [5.6/H-1-2] MÜSSEN über mindestens einen unterstützten Datenpfad eine Umlauf-Audiolatenz von 80 Millisekunden oder weniger haben.
- [5.6/H-1-3] MUSS MEHR ALS 24-Bit-Audio für die Stereoausgabe über 3,5-mm-Audiobuchsen unterstützen, sofern vorhanden, und über USB, wenn dies über den gesamten Datenpfad für Konfigurationen mit niedriger Latenz und Streaming-Konfigurationen unterstützt wird. Für die Konfiguration mit niedriger Latenz sollte AAudio von der Anwendung im Callback-Modus mit niedriger Latenz verwendet werden. Für die Streamingkonfiguration sollte von der Anwendung ein Java AudioTrack verwendet werden. Sowohl in den Konfigurationen mit niedriger Latenz als auch bei Streamingkonfigurationen sollte die HAL-Ausgabesenke entweder
AUDIO_FORMAT_PCM_24_BIT
,AUDIO_FORMAT_PCM_24_BIT_PACKED
,AUDIO_FORMAT_PCM_32_BIT
oderAUDIO_FORMAT_PCM_FLOAT
als Zielausgabeformat akzeptieren. - [5.6/H-1-4] MÜSSEN USB-Audiogeräte mit mindestens 4 Kanälen unterstützen (wird von DJ-Controllern für die Vorschau von Songs verwendet.)
- [5.6/H-1-5] MÜSSEN klassenkonforme MIDI-Geräte unterstützen und das MIDI-Funktions-Flag deklarieren.
- [5.6/H-1-9] MUSS mindestens 12 Kanäle unterstützen. Dies impliziert die Möglichkeit, einen AudioTrack mit 7.1.4-Kanal-Maske zu öffnen und alle Kanäle ordnungsgemäß auf Stereo zu übertragen oder zu verkleinern.
- [5.6/H-SR] Es wird dringend empfohlen, 24-Kanal-Mischungen mit mindestens den Kanalmasken 9.1.6 und 22.2 zu unterstützen.
- [5.7/H-1-2] MUSS
MediaDrm.SECURITY_LEVEL_HW_SECURE_ALL
mit den unten aufgeführten Funktionen zur Inhaltsentschlüsselung unterstützen.
Mindeststichprobengröße 4 MiB Mindestanzahl von Unterstichproben – H264 oder HEVC 32 Mindestanzahl von Teilstichproben – VP9 9 Mindestanzahl von Teilstichproben – AV1 288 Minimale Zwischenspeichergröße für Teilstichproben 1 MiB Mindestgröße des generischen Krypto-Zwischenspeichers 500 KiB Mindestanzahl gleichzeitiger Sitzungen 30 Mindestanzahl von Schlüsseln pro Sitzung 20 Mindestanzahl von Schlüsseln (alle Sitzungen) 80 Mindestanzahl der DRM-Schlüssel (alle Sitzungen) 6 Nachrichtengröße 16 KiB Entschlüsselte Frames pro Sekunde 60 fps - [5.1/H-1-17] MUSS mindestens einen Hardware-Bilddecoder haben, der das AVIF-Baseline-Profil unterstützt.
- [5.1/H-1-18] MUSS AV1-Encoder unterstützen, der eine Auflösung von bis zu 480p bei 30 fps und 1 Mbit/s codieren kann.
[5.12/H-1-1] MÜSSEN[5.12/H-SR] dringend empfohlen werden, um dieFeature_HdrEditing
-Funktion für alle Hardware-AV1- und HEVC-Encoder auf dem Gerät zu unterstützen.- [5.12/H-1-2] MÜSSEN das RGBA_1010102-Farbformat für alle Hardware-AV1- und HEVC-Encoder auf dem Gerät unterstützen.
- [5.12/H-1-3] MÜSSEN die Unterstützung der Erweiterung EXT_YUV_target für Stichproben aus YUV-Texturen sowohl in 8 als auch in 10 Bit anbieten.
- [7.1.4/H-1-1] MÜSSEN mindestens 6 Hardware-Overlays in der Datenverarbeitungseinheit (DPU) Hardware Composer (HWC) haben, wobei mindestens zwei davon 10-Bit-Videoinhalte wiedergeben können.
Wenn Implementierungen von Handheld-Geräten
android.os.Build.VERSION_CODES.U
fürandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
zurückgeben und einen AVC- oder HEVC-Encoder Hardware unterstützen, gilt Folgendes:- [5.2/H-2-1] MÜSSEN das Mindestqualitätsziel erfüllen, das in den Videoencoder-Raten-Verzerrungskurven für Hardware-AVC- und HEVC-Codecs definiert ist, wie in der kommenden Dokumentation definiert.
-
Überarbeitung ansehen
Wenn Implementierungen von Handheld-Gerätenandroid.os.Build.VERSION_CODES.U
fürandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
zurückgeben, gilt Folgendes:- [7.5/H-1-1] MUSS eine primäre Rückkamera mit einer Auflösung von mindestens 12 Megapixeln haben, die eine Videoaufnahme mit 4K bei 30 fps unterstützt. Die primäre Kamera auf der Rückseite ist die Kamera auf der Rückseite mit der niedrigsten Kamera-ID.
- [7.5/H-1-2] MÜSSEN eine primäre Frontkamera mit einer Auflösung von mindestens 6 Megapixeln haben und Videoaufnahmen mit 1080p bei 30 fps unterstützen. Die primäre Frontkamera ist die Frontkamera mit der niedrigsten Kamera-ID.
- [7.5/H-1-3] MUSS die Eigenschaft
android.info.supportedHardwareLevel
für beide primären Kameras als FULL oder besser unterstützen. - [7.5/H-1-4] MUSS
CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
für beide primären Kameras unterstützen. - [7.5/H-1-5] MÜSSEN eine JPEG-Aufnahmelatenz der Kamera2 von unter 1.000
900ms für eine 1080p-Auflösung haben. Der Leistungstest der CTS-Kamera wurde unter ITS-Beleuchtungsbedingungen (3.000 K) für beide primären Kameras gemessen. - [7.5/H-1-6] MUSS die Startlatenz von Kamera 2 (Kamera öffnen, um den ersten Vorschauframe öffnen) unter 500 ms liegen, wie von der CTS-Kameraleistungstest unter ITS-Beleuchtungsbedingungen (3.000 K) für beide primären Kameras gemessen.
- [7.5/H-1-8] MUSS
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW
undandroid.graphics.ImageFormat.RAW_SENSOR
für die primäre Rückkamera unterstützen. - [7.5/H-1-9] MUSS auf der Rückseite eine primäre Kamera haben, die 720p oder 1080p bei 240 fps unterstützt.
- [7.5/H-1-10] MÜSSEN mindestens ZOOM_RATIO < 1,0 für die primären Kameras haben, wenn eine Ultraweitwinkel-RGB-Kamera in die gleiche Richtung gerichtet ist.
- [7.5/H-1-11] MUSS gleichzeitiges Front-Back-Streaming auf primären Kameras implementieren.
- [7.5/H-1-12] MUSS
CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION
sowohl für die primäre Front- als auch die primäre Rückkamera unterstützen. - [7.5/H-1-13] MUSS die
LOGICAL_MULTI_CAMERA
-Funktion für die primären Kameras unterstützen, wenn es mehr als eine RGB-Kamera gibt, die in die gleiche Richtung zeigt. - [7.5/H-1-14] MUSS die Funktion
STREAM_USE_CASE
sowohl für die primäre Frontkamera als auch für die primäre Rückkamera unterstützen. - [7.5/H-1-15] MÜSSEN
Bokeh- undNachtmoduserweiterungen für primäre Kameras über die Erweiterungen CameraX und Camera2 unterstützen. - [7.5/H-1-16] MUSS die Funktion DYNAMIC_RANGE_TEN_BIT für die primären Kameras unterstützen.
- [7.5/H-1-17] MUSS CONTROL_SCENE_MODE_FACE_PRIORITY und Gesichtserkennung (STATISTICS_FACE_DETECT_MODE_SIMPLE oder STATISTICS_FACE_DETECT_MODE_FULL) für die primären Kameras unterstützen.
-
Überarbeitung ansehen
Wenn Implementierungen von Handheld-Gerätenandroid.os.Build.VERSION_CODES.U
fürandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
zurückgeben, gilt Folgendes:- [7.1.1.1/H-2-1] MUSS eine Bildschirmauflösung von mindestens 1080p haben.
- [7.1.1.3/H-2-1] MUSS eine Bildschirmdichte von mindestens 400 dpi haben.
- [7.1.1.3/H-3-1] MUSS ein HDR-Display mit mindestens 1.000 cd/m2 im Durchschnitt haben.
- [7.6.1/H-2-1] MUSS mindestens 8 GB physischen Arbeitsspeicher haben.
-
Überarbeitung ansehen
Wenn Implementierungen von Handheld-Gerätenandroid.os.Build.VERSION_CODES.U
fürandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
zurückgeben, gilt Folgendes:- [8.2/H-1-1] MÜSSEN eine sequentielle Schreibleistung von mindestens 150 MB/s gewährleisten.
- [8.2/H-1-2] MÜSSEN eine zufällige Schreibleistung von mindestens 10 MB/s gewährleisten.
- [8.2/H-1-3] MÜSSEN eine sequentielle Leseleistung von mindestens 250 MB/s gewährleisten.
- [8.2/H-1-4] MÜSSEN eine zufällige Leseleistung von mindestens 100 MB/s gewährleisten.
- [8.2/H-1-5] MÜSSEN eine parallele sequenzielle Lese- und Schreibleistung mit einer 2-fachen Lese- und einer 1-fachen Schreibleistung von mindestens 50 MB/s gewährleisten.
-
Überarbeitung ansehen
Implementierungen von Fernsehgeräten MÜSSEN die folgenden Videocodierungsformate unterstützen und für Drittanbieteranwendungen verfügbar machen:
- [5.2/T-0-3] AV1
Implementierungen von Fernsehgeräten MÜSSEN die folgenden Videodecodierungsformate unterstützen und für Drittanbieteranwendungen verfügbar machen:
- [5.3.2/T-0-7] AV1
-
Überarbeitung ansehen
Wenn Geräteimplementierungen einen sicheren Sperrbildschirm haben und einen oder mehrere Trust Agenten enthalten, die die
TrustAgentService
System API implementieren, geschieht Folgendes:- [9.11.1/W-1-1] MÜSSEN den Nutzer häufiger als alle 72 Stunden zur Eingabe einer der empfohlenen primären Authentifizierungsmethoden (z. B. PIN, Muster, Passwort) auffordern.
-
Überarbeitung ansehen
Wenn Geräteimplementierungen AM/FM-Radio unterstützen und die Funktion für eine beliebige Anwendung verfügbar machen, gilt Folgendes:
- [7.4
.10/A-0-1] MUSS die Unterstützung fürFEATURE_BROADCAST_RADIO
deklarieren.
Eine Außenkamera ist eine Kamera, die Szenen außerhalb der Geräteimplementierung aufnimmt, z. B. die Rückkamera.
Implementierungen von Automobilgeräten:
- SOLLTEN eine oder mehrere Außenkameras enthalten.
Wenn Implementierungen von Automobil-Geräten eine Außenkamera umfassen, gilt Folgendes:
- [7.5/A-1-1] DÜRFEN KEINE Außenansichtskameras über die Android Camera APIs zugänglich haben, es sei denn, sie erfüllen die Hauptanforderungen der Kamera.
- [7.5/A-SR-1] wird dringend empfohlen, die Kameravorschau nicht zu drehen oder horizontal zu spiegeln.
- [7.5/A-SR-2] wird dringend empfohlen, eine Auflösung von mindestens 1,3 Megapixeln zu haben.
- SOLLTEN entweder über Fixfokus- oder EDOF-Hardware verfügen.
- KANN im Kameratreiber entweder Hardware-Autofokus oder Software-Autofokus implementiert sein.
Wenn Implementierungen für Automobilgeräte eine oder mehrere Außenkameras umfassen und den EVS-Dienst (Exterior View System) laden, gilt für eine solche Kamera Folgendes:
- [7.5/A-2-1] DARF die Kameravorschau NICHT drehen oder horizontal spiegeln.
Implementierungen von Automobilgeräten:
- KÖNNEN eine oder mehrere Kameras enthalten, die für Anwendungen von Drittanbietern verfügbar sind.
Wenn Implementierungen von Automobilgeräten mindestens eine Kamera enthalten und für Anwendungen von Drittanbietern verfügbar gemacht werden, geschieht Folgendes:
- [7.5/A-3-1] MÜSSEN das Funktions-Flag
android.hardware.camera.any
melden. - [7.5/A-3-2] DARF die Kamera nicht als Systemkamera deklarieren.
- KANN externe Kameras unterstützen, wie in Abschnitt 7.5.3 beschrieben.
- KÖNNEN Funktionen (z. B. Autofokus) von Rückkameras enthalten, wie in Abschnitt 7.5.1 beschrieben.
Eine nach hinten gerichtete Kamera ist eine nach außen gerichtete Kamera, die sich an jedem beliebigen Ort im Fahrzeug anbringen kann und auf die Außenseite des Fahrzeugs zeigt. Das heißt, sie nimmt Szenen von der hinteren Seite der Fahrzeugkarosserie auf, z. B. von der Rückkamera.
Eine Frontkamera ist eine Kamera, die sich an jedem beliebigen Ort im Fahrzeug befindet und in den Innenraum des Fahrzeugs zeigt. Das heißt, sie erfasst den Nutzer, z. B. bei Videokonferenzen und ähnlichen Anwendungen.
Implementierungen von Automobilgeräten:
- [7.5/A-SR-1] wird dringend empfohlen, eine oder mehrere nach außen gerichtete Kameras zu verwenden.
- KANN eine oder mehrere Kameras für den Nutzer enthalten.
- [7.5/A-SR-2] WIRD UNBEDINGT EMPFOHLEN, das gleichzeitige Streaming mehrerer Kameras zu unterstützen.
Wenn Automotive-Geräteimplementierungen mindestens eine Kamera enthalten, die nach der Welt gerichtet ist, gilt für eine solche Kamera Folgendes:
- [7.5/A-1-1] MUSS so ausgerichtet sein, dass die lange Achse der Kamera mit der x-y-Ebene der Android-Automotive-Sensorachsen übereinstimmt.
- [7.5/A-SR-3] Wir empfehlen dringend, entweder Fixfokus- oder EDOF-Hardware (Extended Depth of Field) zu verwenden.
- [7.5/A-1-2] MÜSSEN die primäre nach außen gerichtete Kamera als die nach außen gerichtete Kamera mit der niedrigsten Kamera-ID haben.
Wenn Implementierungen für Automotive-Geräte mindestens eine Kamera enthalten, die dann für den Nutzer sichtbar ist, gilt für eine solche Kamera Folgendes:
- [7.5/A-2-1] Die primäre Kamera für den Nutzer MÜSSEN die Kamera mit der niedrigsten Kamera-ID sein.
- KANN so ausgerichtet werden, dass die lange Dimension der Kamera mit der x-y-Ebene der Android-Automotive-Sensorachsen übereinstimmt.
Wenn Implementierungen für Automotive-Geräte eine Kamera enthalten, auf die entweder über die
android.hardware.Camera
API oder dieandroid.hardware.camera2
API zugegriffen werden kann, gilt Folgendes:- [7.5/A-3-1] MUSS den grundlegenden Kameraanforderungen in Abschnitt 7.5 entsprechen.
Wenn Implementierungen für Automotive-Geräte eine Kamera enthalten, auf die weder über die
android.hardware.Camera
noch über dieandroid.hardware.camera2
API zugegriffen werden kann, geschieht Folgendes:- [7.5/A-4-1] MÜSSEN über den Extended View System-Dienst zugänglich sein.
Wenn Automotive-Geräteimplementierungen eine oder mehrere Kameras umfassen, die über den Extended View System Service zugänglich sind, gilt für eine solche Kamera Folgendes:
- [7.5/A-5-1] Dürfen die Kameravorschau NICHT drehen oder horizontal spiegeln.
- [7.5/A-SR-4] Eine Auflösung von mindestens 1,3 Megapixel wird dringend empfohlen.
Wenn die Implementierungen für Automobilgeräte eine oder mehrere Kameras umfassen, die sowohl über den Extended View System Service als auch über die
android.hardware.Camera
oder dieandroid.hardware.Camera2
API zugänglich sind, gilt für eine solche Kamera Folgendes:- [7.5/A-6-1] MÜSSEN dieselbe Kamera-ID melden.
Wenn Automotive-Geräteimplementierungen eine proprietäre Kamera-API bieten, gilt Folgendes:
- [7.5/A-7-1] MÜSSEN eine solche Kamera-API mit der
android.hardware.camera2
API oder der Extended View System API implementieren.
- [7.4
-
Überarbeitung ansehen
Implementierungen von Automobilgeräten:
- [3.8/A-0-1] DARF NICHT erlauben, dass sekundäre Nutzer, die nicht der aktuelle Nutzer im Vordergrund sind, Aktivitäten starten und auf allen Bildschirmen Zugriff auf die Benutzeroberfläche haben.
-
Überarbeitung ansehen
Wenn in Implementierungen von Automobil-Geräten
android.hardware.microphone
deklariert ist, gilt Folgendes:- [9.8.2/A-1-1] MÜSSEN die Mikrofonanzeige einblenden, wenn eine App auf Audiodaten vom Mikrofon zugreift, aber nicht, wenn nur
HotwordDetectionService
,SOURCE_HOTWORD
,ContentCaptureService
oder Apps mit den in Abschnitt 9.1 genannten Rollen mit der CDD-Kennung [C-4-X] auf das Mikrofon zugreifen. - [9.8.2/A-1-2] DARF die Mikrofonanzeige für System-Apps, die sichtbare Benutzeroberflächen oder direkte Nutzerinteraktionen haben, nicht ausblenden.
- [9.8.2/A-1-3] MUSS dem Nutzer die Möglichkeit bieten, das Mikrofon in der App „Einstellungen“ ein- oder auszuschalten.
Wenn in Implementierungen von Automobil-Geräten
android.hardware.camera.any
deklariert ist, gilt Folgendes:- [9.8.2/A-2-1] MÜSSEN die Kameraanzeige einblenden, wenn eine App auf Live-Kameradaten zugreift, aber nicht, wenn nur Apps mit den in
Abschnitt 9.1angegebenen Rollen mit der CDD-Kennung [C-4-X][C-3-X]auf die Kamera zugreifen.
- [9.8.2/A-2-3] MÜSSEN Nutzern die Möglichkeit bieten, die Kamera in den Einstellungen ein- und auszuschalten.
- [9.8.2/A-2-4] MÜSSEN aktuelle und aktive Apps, die die Kamera verwenden, wie von
PermissionManager.getIndicatorAppOpUsageData()
zurückgegeben, zusammen mit allen damit verbundenen Quellenangaben angezeigt werden.
Wenn Geräteimplementierungen einen sicheren Sperrbildschirm haben und einen oder mehrere Trust Agenten enthalten, die die
TrustAgentService
System API implementieren, geschieht Folgendes:- [9.11.1/A-1-1] MUSS den Nutzer häufiger als alle 336 Stunden zur Eingabe einer der empfohlenen primären Authentifizierungsmethoden (z. B. PIN, Muster, Passwort) auffordern.
- [9.8.2/A-1-1] MÜSSEN die Mikrofonanzeige einblenden, wenn eine App auf Audiodaten vom Mikrofon zugreift, aber nicht, wenn nur
3. Software
3.1 Kompatibilität mit verwalteten APIs:
Überarbeitung ansehen
Geräteimplementierungen:
- [C-0-8] DARF NICHT die Installation von Anwendungen unterstützen, die auf ein API-Level unter 23 ausgerichtet sind.
3.2.3.5 Bedingte Anwendungs-Intents:
Überarbeitung ansehen
Wenn Geräteimplementierungen
android.hardware.nfc.uicc
oderandroid.hardware.nfc.ese
melden, geschieht Folgendes:- [C-19-1] MÜSSEN die NfcAdapter.ACTION_TRANSACTION_DETECTED Intent API implementieren (als „EVT_TRANSACTION“ gemäß der technischen Spezifikation der GSM Association TS.26 – Anforderungen an NFC-Mobilgeräte).
3.3.1 Binäre Anwendungsschnittstellen:
Überarbeitung ansehen
Geräteimplementierungen:
- [C-0-12] MÜSSEN Funktionssymbole für die Kernfunktionssymbole
Vulkan 1.0des Typs Vulkan 1.1 sowie die ErweiterungenVK_KHR_surface
,VK_KHR_android_surface
,VK_KHR_swapchain
,VK_KHR_maintenance1
undVK_KHR_get_physical_device_properties2
über die Bibliotheklibvulkan.so
exportieren. Alle Symbole MÜSSEN zwar vorhanden sein, Abschnitt 7.1.4.2 beschreibt jedoch genauer, wann die vollständige Implementierung der einzelnen Funktionen erwartet wird.
- [C-0-12] MÜSSEN Funktionssymbole für die Kernfunktionssymbole
-
Überarbeitung ansehen
Wenn Geräteimplementierungen eine Bildschirm- oder Videoausgabe beinhalten, gilt Folgendes:
- [C-1-5] MÜSSEN dynamische Farbtonpaletten mithilfe von Farbdesignstilen generieren, die in der Dokumentation zu
Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
(sieheandroid.theme.customization.theme_styles
) aufgeführt sind, nämlichTONAL_SPOT
,VIBRANT
,EXPRESSIVE
,SPRITZ
,RAINBOW
,FRUIT_SALAD
und undMONOCHROMATIC
.
- [C-1-5] MÜSSEN dynamische Farbtonpaletten mithilfe von Farbdesignstilen generieren, die in der Dokumentation zu
3.8.8 Wechseln zwischen Aktivitäten:
Überarbeitung ansehen
Wenn Geräteimplementierungen, die die Navigationstaste der Funktion „Zuletzt verwendet“ wie in Abschnitt 7.2.3 beschrieben, geändert haben, gilt Folgendes:
- [C-1-2] MÜSSEN die Funktionsweise der Bildschirmfixierung implementieren und dem Nutzer ein Einstellungsmenü zur Ein/Aus-Schaltfläche für die Funktion zur Verfügung stellen.
3.9.2 Unterstützung für verwaltete Profile:
Überarbeitung ansehen
Wenn in Geräteimplementierungen
android.software.managed_users
deklariert wird, gilt Folgendes:- [C-1-10] MÜSSEN darauf achten, dass die Screenshotdaten im Arbeitsprofilspeicher gespeichert werden, wenn ein Screenshot mit einem
topActivity
-Fenster mit Fokus erstellt wird (das, mit dem der Nutzer zuletzt unter allen Aktivitäten interagiert hat) und zu einer Arbeitsprofil-App gehört. - [C-1-11] DÜRFEN KEINE anderen Bildschirminhalte (Systemleiste, Benachrichtigungen oder Inhalte aus privaten Profilen) mit Ausnahme der Fenster/Fenster des Arbeitsprofils erfassen, wenn ein Screenshot im Arbeitsprofil gespeichert wird. So wird sichergestellt, dass keine persönlichen Profildaten im Arbeitsprofil gespeichert werden.
- [C-1-10] MÜSSEN darauf achten, dass die Screenshotdaten im Arbeitsprofilspeicher gespeichert werden, wenn ein Screenshot mit einem
3.9.5 Framework zur Behebung von Geräterichtlinien: Neuer Abschnitt
Überarbeitung ansehen
Wenn Geräteimplementierungen
android.software.device_admin
oderandroid.software.managed_users
melden, gilt Folgendes:- [C-1-1] MÜSSEN Konflikte mit Geräterichtlinien wie in der AOSP-Dokumentation beschrieben lösen.
5. Multimedia-Kompatibilität
-
Überarbeitung ansehen
Geräteimplementierungen MÜSSEN die Codierung der folgenden Bildcodierung unterstützen:
- [C-0-4] AVIF
- Geräte müssen
BITRATE_MODE_CQ
und Baseline-Profil unterstützen.
- Geräte müssen
- [C-0-4] AVIF
-
Überarbeitung ansehen
Geräteimplementierungen MÜSSEN die Decodierung der folgenden Bildcodierung unterstützen:
[C-0-7] AVIF (Baseline-Profil)
5.1.6 Details zu Image-Codecs:
Überarbeitung ansehen
Format/Codec Details Unterstützte Dateitypen/Containerformate JPEG Base+progressiv JPEG (JPG) GIF GIF (.gif) PNG PNG (PNG) BMP BMP (BMP) WebP WebP (WebP) Raw ARW (.arw), CR2 (.cr2), DNG (.dng), NEF (.nef), NRW (.nrw), ORF (.orf), PEF (.pef), RAF (.raf), RW2 (.rw2), SRW (.srw) HEIF Bild, Bildersammlung, Bildsequenz HEIF (.heif), HEIC (.heic) AVIF (Baseline-Profil) Bild, Bilderfassung, Bildsequenz-Baseline-Profil HEIF-Container (.avif) -
Überarbeitung ansehen
Format/Codec Details Zu unterstützende Dateitypen/Containerformate H.263 - 3GPP (3GP)
- MPEG-4 (MP4)
- Matroska (.mkv, nur decodieren)
H.264-AVC Weitere Informationen finden Sie in Abschnitt 5.2 und 5.3. - 3GPP (3GP)
- MPEG-4 (MP4)
- MPEG-2-TS (Ts, nicht suchbar)
- Matroska (.mkv, nur decodieren)
H.265 HEVC Weitere Informationen finden Sie in Abschnitt 5.3. - MPEG-4 (MP4)
- Matroska (.mkv, nur decodieren)
MPEG-2 Profil "Main" - MPEG2-TS (.ts, nicht suchbar)
- MPEG-4 (.mp4, nur decodieren)
- Matroska (.mkv, nur decodieren)
MPEG-4 SP - 3GPP (3GP)
- MPEG-4 (MP4)
- Matroska (.mkv, nur decodieren)
VP8 Einzelheiten finden Sie in Abschnitt 5.2 und 5.3. - WebM (.webm)
- Matroska (.mkv)
VP9 Weitere Informationen finden Sie in Abschnitt 5.3. - WebM (.webm)
- Matroska (.mkv)
AV1 Weitere Informationen finden Sie in Abschnitt 5.2 und Abschnitt 5.3. - MPEG-4 (.mp4)
- Matroska (.mkv, nur decodieren)
5.1.10 Medien-Codec-Charakterisierung:
Überarbeitung ansehen
Wenn Geräteimplementierungen Video-Codecs unterstützen:
- [C-2-1] Alle Video-Codecs MÜSSEN erreichbare Framerate-Daten für die folgenden Größen veröffentlichen, wenn sie vom Codec unterstützt werden:
SD (niedrige Qualität) SD (hohe Qualität) HD 720p HD 1080p UHD Videoauflösung - 176 x 144 Pixel (H263, MPEG2, MPEG4)
- 352 x 288 Pixel (MPEG4-Encoder, H263, MPEG2)
- 320 x 180 Pixel (VP8, VP8)
- 320 x 240 px (sonstige)
- 704 x 576 Pixel (H263)
- 640 x 360 Pixel (VP8, VP9)
- 640 x 480 Pixel (MPEG4-Encoder)
- 720 x 480 Pixel (andere, AV1)
- 1408 x 1152 Pixel (H263)
- 1280 x 720 Pixel (andere, AV1)
1920 x 1080 Pixel (außer MPEG4, AV1) 3840 x 2160 Pixel (HEVC, VP9, AV1) -
Überarbeitung ansehen
Wenn Geräteimplementierungen Video-Encoder unterstützen und für Drittanbieter-Apps verfügbar machen, geschieht Folgendes:- Über zwei gleitende Fenster NICHT mehr als 15% über der Bitrate zwischen Intraframe-Intervallen (I-Frame) liegen
- NICHT mehr als 100% über der Bitrate auf einem gleitenden Fenster von einer Sekunde liegen.
Wenn Geräteimplementierungen einen Videoencoder unterstützen und für Drittanbieter-Apps zur Verfügung stellen und
MediaFormat.KEY_BITRATE_MODE
aufBITRATE_MODE_VBR
setzen, damit der Encoder im Modus mit variabler Bitrate arbeitet, gilt für die codierte Bitrate Folgendes, sofern die Mindestqualität nicht beeinträchtigt wird :[C-5-1] MUSSSOLLTE NICHT über einem gleitenden Fenster mehr als 15% über der Bitrate zwischen Intraframe-Intervallen (I-Frame) liegen.[C-5-2] MUSSSOLL NICHT mehr als 100% über der Bitrate auf einem gleitenden Fenster von 1 Sekunde liegen.
Wenn Geräteimplementierungen einen Videoencoder unterstützen und für Drittanbieter-Apps verfügbar machen und
MediaFormat.KEY_BITRATE_MODE
aufBITRATE_MODE_CBR
setzen, damit der Encoder im Modus mit konstanter Bitrate arbeitet, gilt für die codierte Bitrate:[C-6-1] MUSS[C-SR-2] wird dringend empfohlen, bei einem gleitenden Fenster von 1 Sekunde NICHT mehr als 15% über der Zielbitrate zu liegen.
-
Überarbeitung ansehen
Wenn Geräteimplementierungen H.263-Encoder unterstützen und für Drittanbieter-Apps verfügbar machen, gilt Folgendes:
- [C-1-1] MUSS die QCIF-Auflösung (176 x 144) mit Referenzprofilebene 45 unterstützen. Die SQCIF-Auflösung ist optional.
Dynamisch konfigurierbare Bitraten für den unterstützten Encoder unterstützen
-
Überarbeitung ansehen
Wenn Geräteimplementierungen den H.265-Codec unterstützen, gilt Folgendes:
- [C-1-1] MUSS Hauptprofilebene 3 bis zu einer Auflösung von 512 x 512 unterstützen.
SOLLTEN die HD-Codierungsprofile wie in der folgenden Tabelle angegeben unterstützen.- [C-SR-1] wird dringend empfohlen, die SD-Profile (720 x 480) und die HD-Codierungsprofile zu unterstützen, wie in der folgenden Tabelle angegeben, wenn ein Hardware-Encoder vorhanden ist.
5.2.6 AV1: neuer Abschnitt
Überarbeitung ansehen
Wenn Geräteimplementierungen den AV1-Codec unterstützen, geschieht Folgendes:
- [C-1-1] MUSS das Hauptprofil einschließlich 8-Bit- und 10-Bit-Inhalte unterstützen.
[C-1-2] MÜSSEN Leistungsdaten, d.h. Berichte zur Leistung, über die APIs
getSupportedFrameRatesFor()
odergetSupportedPerformancePoints()
veröffentlichen, wenn die Lösungen in der Tabelle unten unterstützt werden.[C-1-3] MUSS HDR-Metadaten akzeptieren und im Bitstream ausgeben
Wenn der AV1-Encoder hardwarebeschleunigt ist, geschieht Folgendes:
- [C-2-1] MUSS bis einschließlich HD1080p-Codierungsprofil aus der folgenden Tabelle unterstützen:
SD HD 720p HD 1080p UHD Videoauflösung 720 x 480 Pixel 1280 x 720 px 1920 x 1080 px 3840 x 2160 Pixel Video-Framerate Frame-Rate: 30 fps Frame-Rate: 30 fps Frame-Rate: 30 fps Frame-Rate: 30 fps Video-Bitrate 5 Mbit/s 8 Mbit/s 16 Mbit/s 50 Mbit/s -
Überarbeitung ansehen
Wenn Geräteimplementierungen H.263-Decoder unterstützen, gilt Folgendes:
- [C-1-1] MUSS Baseline-Profilstufe 30 (CIF-, QCIF- und SQCIF-Auflösungen bei 30 fps, 384 kbit/s) und Stufe 45 (QCIF- und SQCIF-Auflösungen bei 30 fps und 128 kbit/s) unterstützen.
-
Überarbeitung ansehen
Wenn Geräteimplementierungen den AV1-Codec unterstützen, gilt Folgendes:- [C-1-1] MUSS Profil 0 einschließlich 10-Bit-Inhalten unterstützen.
Wenn Geräteimplementierungen den AV1-Codec unterstützen und für Drittanbieter-Apps verfügbar machen, gilt Folgendes:
- [C-1-1] MUSS das Hauptprofil einschließlich 8-Bit- und 10-Bit-Inhalte unterstützen.
Wenn Geräteimplementierungen den AV1-Codec mit einem hardwarebeschleunigten Decoder unterstützen, gilt Folgendes:
- [C-2-1] MÜSSEN mindestens HD-Videodecodierungsprofile mit 720p aus der folgenden Tabelle decodieren können, wenn die von der Methode
Display.getSupportedModes()
gemeldete Höhe mindestens 720p beträgt. - [C-2-2] MÜSSEN mindestens HD-Videodecodierungsprofile mit 1080p aus der folgenden Tabelle decodieren können, wenn die von der Methode
Display.getSupportedModes()
gemeldete Höhe mindestens 1080p beträgt.
SD HD 720p HD 1080p UHD Videoauflösung 720 x 480 Pixel 1280 x 720 px 1920 x 1080 px 3840 x 2160 Pixel Video-Framerate Frame-Rate: 30 fps Frame-Rate: 30 fps Frame-Rate: 30 fps Frame-Rate: 30 fps Video-Bitrate 5 Mbit/s 8 Mbit/s 16 Mbit/s 50 Mbit/s Wenn Geräteimplementierungen HDR-Profile über die Media APIs unterstützen, gilt Folgendes:
- [C-3-1] MUSS das Extrahieren und Ausgeben von HDR-Metadaten aus dem Bitstream und/oder dem Container unterstützen.
- [C-3-2] MÜSSEN HDR-Inhalte richtig auf dem Gerätebildschirm oder an einem Standard-Videoausgangsanschluss (z. B. HDMI) anzeigen.
5.4.2 Aufnahme für Spracherkennung:
Überarbeitung ansehen
Wenn in Geräteimplementierungen
android.hardware.microphone
deklariert wird, gilt Folgendes:- SOLLTE die Audioeingabeempfindlichkeit so einstellen, dass eine sinusoidale Tonquelle von 1.000 Hz bei 90 dB Schalldruckpegel (gemessen
in einem Abstand von 30 cm zum Mikrofon)neben dem Mikrofon eine ideale Antwort von RMS 2.500 und einer Gleitkommazahl von 1.770 mit 1.770 und 1.770 B3-Samples sowie 1.770 cd/m2 für eine Gleitkommazahl-Erkennung und
- SOLLTE die Audioeingabeempfindlichkeit so einstellen, dass eine sinusoidale Tonquelle von 1.000 Hz bei 90 dB Schalldruckpegel (gemessen
-
Überarbeitung ansehen
Wenn in Geräteimplementierungen die Funktion
android.hardware.audio.output
deklariert wird, geschieht Folgendes:- [C-1-4] MUSS Audioeffekte mit Gleitkommaeingabe und -ausgabe unterstützen.
- [C-1-5] MÜSSEN sicherstellen, dass Audioeffekte mehrere Kanäle bis zur Mischkanalanzahl (auch als FCC_LIMIT bezeichnet) unterstützen.
-
Überarbeitung ansehen
Wenn in Geräteimplementierungen
android.hardware.audio.output
deklariert wird, wird dringend empfohlen, die folgenden Anforderungen zu erfüllen oder zu übertreffen:- [C-SR-4] Der von AudioTrack.getTimestamp und
AAudioStream_getTimestamp
zurückgegebene Ausgabezeitstempel ist auf +/- 1 ms genau.
- [C-SR-4] Die berechneten Umlauflatenzen, die auf den von
AAudioStream_getTimestamp
zurückgegebenen Eingabe- und Ausgabezeitstempeln basieren, werden UNBEDINGT empfohlen, innerhalb von 30 ms der gemessenen Umlauflatenz fürAAUDIO_PERFORMANCE_MODE_NONE
undAAUDIO_PERFORMANCE_MODE_LOW_LATENCY
für Lautsprecher sowie kabelgebundene und kabellose Headsets zu liegen.
- [C-SR-4] Der von AudioTrack.getTimestamp und
7. Hardwarekompatibilität
-
Überarbeitung ansehen
Android bietet Funktionen, mit denen App-Assets und UI-Layouts automatisch an das Gerät angepasst werden, um sicherzustellen, dass Anwendungen von Drittanbietern auf
verschiedenen Hardwarekonfigurationeneinwandfrei funktionieren. Ein mit Android kompatibler Bildschirm ist ein Bildschirm, auf dem alle unter Android-Entwickler – Übersicht über die Bildschirmkompatibilität, in diesem Abschnitt (7.1) und den zugehörigen Unterabschnitten beschriebenen Verhaltensweisen und APIs sowie alle weiteren gerätetypspezifischen Verhaltensweisen implementiert werden, die in Abschnitt 2 dieser CDD beschrieben sind.Auf den mit Android kompatiblen Displays, auf denen alle Android-kompatiblen Anwendungen von Drittanbietern ausgeführt werden können, MÜSSEN diese APIs und Verhaltensweisen korrekt implementiert werden, wie in diesem Abschnitt beschrieben.Neue Anforderungen erstellen
Geräteimplementierungen:
- [C-0-1] MÜSSEN Drittanbieter-Apps standardmäßig nur auf Android-kompatiblen Bildschirmen rendern.
Die Einheiten, auf die in den Anforderungen in diesem Abschnitt verwiesen wird, sind wie folgt definiert:
- physische diagonale Größe. Der Abstand in Zoll zwischen zwei gegenüberliegenden Ecken des beleuchteten Teils des Displays.
Punkt pro Zoll (dpi): Die Anzahl der Pixel, die von einer linearen horizontalen oder vertikalen Spanne von 1 Zolleingeschlossen werden, ausgedrückt als Pixel pro Zoll (ppi oder dpi). Wenn die ppi- und dpi-Werte fürdpiangegeben sind, müssen sowohl die horizontale als auch die vertikale DPI-Werte in den aufgeführten Bereich fallen.- Seitenverhältnis. Das Verhältnis der Pixel der längeren Seite zur kürzeren Seite des Bildschirms. Eine Anzeige mit 480 × 854 Pixeln wäre beispielsweise 854/480 = 1, 779, also ungefähr „16:9“.
- dichteunabhängige Pixel (dp):
Dieeine virtuelle Pixeleinheit, normalisiert auf eineBildschirmdichte von 160 dpieine Bildschirmdichte von 160. Für eine bestimmte Dichte d und eine Anzahl von Pixeln p wird die Anzahl der dichteunabhängigen Pixel dp so berechnet:pixels = dps * (density/160)dp = (160 / d) * p .
7.1.1.1 Bildschirmgröße und ‐form:
Überarbeitung ansehen
Wenn Geräteimplementierungen Bildschirme unterstützen, die die Größenkonfiguration
UI_MODE_TYPE_NORMAL
unterstützen undAndroid-kompatibleBildschirme mit abgerundeten Ecken verwenden, um diese Bildschirme zu rendern, geschieht Folgendes:- [C-1-1] MÜSSEN für jedes dieser Displays mindestens eine der folgenden Anforderungen erfüllen:
- Der Radius der abgerundeten Ecken ist kleiner oder gleich 38 dp.
Wenn eine Box mit 15 dp × 15 dp in jeder Ecke der logischen Anzeige verankert ist, ist mindestens ein Pixel jedes Felds auf dem Bildschirm sichtbar.
SOLLTEN die Nutzer die Möglichkeit haben, in den Anzeigemodus mit den rechteckigen Ecken zu wechseln.
Neue Anforderungen erstellen
Wenn in Geräteimplementierungen nur die Tastaturkonfiguration
NO_KEYS
möglich ist und die Unterstützung für die Konfiguration des UI-ModusUI_MODE_TYPE_NORMAL
gemeldet werden soll, geschieht Folgendes:- [C-4-1] MÜSSEN eine Layoutgröße von mindestens 596 dp x 384 dp ohne Display-Aussparungen haben.
Wenn in Geräteimplementierungen Android-kompatible Displays enthalten sind, die faltbar sind, oder ein klappbares Scharnier zwischen mehreren Displays enthalten, das bzw. die zum Rendern von Drittanbieter-Apps zur Verfügung stehen, gilt Folgendes:
- [C-2-1] MÜSSEN die neueste verfügbare stabile Version der extensions API oder die stabile Version der Sidecar API implementieren, die von der Window Manager Jetpack-Bibliothek verwendet werden soll.
Wenn Geräteimplementierungen ein oder mehrere Android-kompatible Bildschirme umfassen, die faltbar sind, oder ein faltbares Scharnier zwischen mehreren Anzeigebereichen haben und sich das Scharnier oder die Faltung durch ein Anwendungsfenster im Vollbildmodus kreuzt, gilt Folgendes:
- [C-3-1] MÜSSEN die Position, die Grenzen und den Zustand des Scharniers über Erweiterungen oder Sidecar-APIs an die Anwendung melden.
Wenn Geräteimplementierungen einen oder mehrere mit Android kompatible Bereiche, die faltbar sind, oder ein faltbares Scharnier zwischen mehreren Android-kompatiblen Displaybereichen umfassen und diese Bereiche für Apps verfügbar machen, gilt Folgendes:
- [C-4-1] MÜSSEN die richtige Version der Window Manager Extensions API-Ebene implementieren, wie in der kommenden Dokumentation beschrieben.
7.1.1.2 Bildschirmseitenverhältnis: entfernt
-
Überarbeitung ansehen
Geräteimplementierungen:
- [C-0-1]
Standardmäßig wird bei Geräteimplementierungennureine der Android-Framework-Dichten gemeldet, die über dieDENSITY_DEVICE_STABLE
API inDisplayMetrics
aufgeführt sind. Dieser Wert muss ein statischer Wert für jedes physische Display seinDARF NICHT zu jeder Zeit geändert werden.Jedoch Eine andere Einstellung Eine andere Dichte des Geräts wird angezeigt.DisplayMetrics.density
- Bei Geräteimplementierungen MÜSSEN die standardmäßige Android-Framework-Dichte definiert werden, die numerisch der physischen Dichte des Bildschirms am nächsten kommt, es sei denn, diese logische Dichte führt dazu, dass die gemeldete Bildschirmgröße unter das unterstützte Minimum fällt. Wenn die Standard-Android-Framework-Dichte, die numerisch der physischen Dichte am nächsten kommt, zu einer Bildschirmgröße führt, die kleiner als die kleinste unterstützte kompatible Bildschirmgröße (320 dp) ist, SOLLTE die Geräteimplementierung die nächstniedrigere Standard-Android-Framework-Dichte angeben.
Neue Anforderungen erstellen
- SOLLTE die standardmäßige Android-Framework-Dichte definieren, die numerisch der physischen Dichte des Bildschirms entspricht, oder einen Wert, der den gleichen äquivalenten Winkel-Sichtfeldmessungen eines Handheld-Geräts zuordnen würde.
Wenn Geräteimplementierungen
die Möglichkeit bieten, die Anzeigegröße des Geräts zu ändern, werden sie:- [C-1-1]
Die Displaygröße DARF NICHT skaliert werdenDÜRFEN NICHT die Anzeige auf ein 1,5-Faches derDENSITY_DEVICE_STABLE
nativen Dichteskalieren oder eine effektive Mindestgröße von unter 320 dp haben (entspricht dem Ressourcen-Qualifier sw320dp), je nachdem, was zuerst eintritt. - [C-1-2]
Die Anzeigegröße DARF NICHT skaliert werdenDürfen die Anzeige NICHT auf weniger als das 0,85-Fache derDENSITY_DEVICE_STABLE
nativen Dichteskaliert werden.
- [C-0-1]
-
Überarbeitung ansehen
Wenn Geräteimplementierungen
Vulkan 1.0 oder höherunterstützen, gilt Folgendes:[C-1-3] MÜSSEN die Vulkan 1.1 APIs von
Vulkan 1.0für jede aufgelisteteVkPhysicalDevice
vollständig implementieren.[C-1-5] DARF KEINE Layers aufzählen, die von Bibliotheken außerhalb des Anwendungspakets bereitgestellt werden, und keine anderen Möglichkeiten zum Tracing oder Abfangen der Vulkan API bieten, es sei denn, für die Anwendung ist das Attribut
android:debuggable
auftrue
oder die Metadatencom.android.graphics.injectLayers.enable
auftrue
gesetzt.
- SOLLTEN
VkPhysicalDeviceProtectedMemoryFeatures
undVK_EXT_global_priority
unterstützen.
- [C-1-13] MUSS die Anforderungen des Android Baseline-Profils 2021 erfüllen.
[C-SR-5] wird dringend empfohlen,
VkPhysicalDeviceProtectedMemoryFeatures.protectedMemory
undVK_EXT_global_priority
zu unterstützen.[C-SR-6] wird dringend empfohlen,
SkiaVk
mit HWUI zu verwenden.
Wenn Geräteimplementierungen Vulkan 1.1 unterstützen und eines der hier beschriebenen Vulkan-Funktions-Flags deklarieren, geschieht Folgendes:
- [C-SR-7] Es wird dringend empfohlen, die Erweiterung
VK_KHR_external_fence_fd
für Drittanbieteranwendungen verfügbar zu machen und der Anwendung zu ermöglichen, Fence-Nutzlasten in POSIX-Dateideskriptoren zu exportieren und aus POSIX-Dateideskriptoren zu importieren, wie hier beschrieben.
-
Überarbeitung ansehen
Geräteimplementierungen mit mehreren biometrischen Sensoren:
[C-7-1] MÜSSEN, wenn ein biometrisches Verfahren aufgrund zu vieler fehlgeschlagener Versuche vorübergehend gesperrt wird (das biometrische Verfahren wird deaktiviert, bis der Nutzer mit der primären Authentifizierung entsperrt) oder zeitgebunden ist (d. h., es wird vorübergehend deaktiviert, bis der Nutzer auf ein Zeitintervall wartet). Dies gilt auch für alle anderen biometrischen Daten einer niedrigeren biometrischen Klasse. Im Fall einer zeitgebundenen Sperrung MUSS die Backoff-Zeit für die biometrische Überprüfung die maximale Backoff-Zeit aller biometrischen Daten sein.
[C-SR-12] Werden dringend empfohlen, wenn ein biometrisches Verfahren aufgrund zu vieler fehlgeschlagener Versuche vorübergehend gesperrt wird (d. h. das biometrische Verfahren wird deaktiviert, bis der Nutzer mit der primären Authentifizierung entsperrt) oder biometrisches Verfahren (das biometrische Verfahren wird vorübergehend deaktiviert, bis der Nutzer ein bestimmtes Zeitintervall wartet). Im Fall einer zeitgebundenen Sperrung wird UNBEDINGT die maximale Backoff-Zeit aller biometrischen Daten in der biometrischen Überprüfung empfohlen.
[C-7-2] MÜSSEN den Nutzer zur empfohlenen primären Authentifizierung auffordern (z. B. mit PIN, Muster, Passwort), um den Sperrzähler zurückzusetzen, wenn ein biometrisches Verfahren gesperrt wird. Klasse 3 darf den Sperrzähler für ein gesperrtes biometrisches Verfahren derselben oder einer niedrigeren Klasse zurücksetzen. Biometrische Verfahren der Klasse 2 oder Klasse 1 DÜRFEN KEINEN Sperrvorgang zum Zurücksetzen für biometrische Daten durchführen.
Wenn in Geräteimplementierungen ein biometrischer Sensor als Klasse 1 (früher Nutzerfreundlichkeit) behandelt werden soll, gilt Folgendes:
[C-1-12] MUSS eine Spoofing- und Imposter-Akzeptanzrate von nicht mehr als 40 % pro Art des Präsentationsangriffs (PAI) haben, wie von den Android Biometrics Test Protocols gemessen.
[C-SR-13] Es wird dringend empfohlen, eine Spoofing- und Hochstufungsrate von maximal 30% pro Art des Präsentationsangriffs (PAI) gemäß den Android Biometrics Test Protocols zu verwenden.
[C-SR-14] wird dringend empfohlen, die biometrische Klasse des biometrischen Sensors und die entsprechenden Risiken der Aktivierung anzugeben.
[C-SR-17] wird dringend empfohlen, die neuen AIDL-Schnittstellen (z. B.
IFace.aidl
undIFingerprint.aidl
) zu implementieren.
Wenn in Geräteimplementierungen ein biometrischer Sensor als Klasse 2 (früher Schwach) behandelt werden soll, gilt Folgendes:
- [C-SR-15] Es wird dringend empfohlen, die Akzeptanzrate von Spoofing und Hochstapler-Spoofen nicht über 20% pro Präsentationsangriffsart (PAI) zu setzen, wie von den Android Biometrics Test Protocols gemessen.
- [C-2-3] MÜSSEN den biometrischen Abgleich in einer isolierten Ausführungsumgebung außerhalb des Android-Nutzer- oder Kernelbereichs wie der Trusted Execution Environment (TEE)
oderauf einem Chip mit einem sicheren Kanal zur isolierten Ausführungsumgebung oder auf einer geschützten virtuellen Maschine durchführen, die die Anforderungen in Abschnitt 9.17 erfüllt. - [C-2-4] MÜSSEN alle identifizierbaren Daten verschlüsselt und kryptografisch authentifiziert haben, sodass sie außerhalb der isolierten Ausführungsumgebung oder eines Chips mit einem sicheren Kanal nicht außerhalb der isolierten Ausführungsumgebung oder eines Chips mit einem sicheren Kanal für die isolierte Ausführungsumgebung erfasst, gelesen oder geändert werden können, wie in den Implementierungsrichtlinien auf der Website des Android Open Source Project oder einer geschützten virtuellen Maschine, die von Hypervisor gesteuert wird, die die Anforderungen in Abschnitt 9.17 erfüllt, dokumentiert ist.
- [C-2-5] Für kamerabasierte biometrische Verfahren und biometrische Authentifizierung oder Registrierung:
- Die Kamera MÜSSEN in einem Modus betrieben werden, der verhindert, dass Kameraframes außerhalb der isolierten Ausführungsumgebung oder eines Chips mit einem sicheren Kanal gelesen oder geändert werden, in die isolierte Ausführungsumgebung oder eine geschützte virtuelle Maschine, die vom Hypervisor gesteuert wird und die Anforderungen in Abschnitt 9.17 erfüllt.
- Bei RGB-Lösungen mit einer Kamera können die Kamerabilder außerhalb der isolierten Ausführungsumgebung lesbar sein, um Vorgänge wie die Vorschau für die Registrierung zu unterstützen, DÜRFEN aber dennoch NICHT geändert werden.
- [C-2-7] DÜRFEN NICHT den unverschlüsselten Zugriff auf identifizierbare biometrische Daten oder daraus abgeleitete Daten (z. B. Einbettungen) auf den Anwendungsprozessor außerhalb des Kontexts des TEE oder der vom Hypervisor gesteuerten geschützten virtuellen Maschine, die die Anforderungen in Abschnitt 9.17 erfüllt, zulassen. Geräteupgrades, die unter Android 9 oder niedriger gestartet wurden, sind nicht von C-2-7 ausgenommen.
Wenn in Geräteimplementierungen ein biometrischer Sensor als Klasse 3 (früher Stark) behandelt werden soll, gilt Folgendes:
- [C-SR-16] Es wird dringend empfohlen, eine Spoofing- und Hochstufungsrate von maximal 7% pro Art des Präsentationsangriffs (PAI) gemäß den Android Biometrics Test Protocols zu verwenden.
-
Überarbeitung ansehen
Wenn Geräteimplementierungen 802.1.15.4 unterstützen und die Funktionalität einer Drittanbieter-App zur Verfügung stellen, gilt Folgendes:
- [C-1-2] MÜSSEN das Hardwarefunktions-Flag
android.hardware.uwb
melden. - [C-1-3] MUSS alle folgenden Konfigurationssätze (vordefinierte Kombinationen von FIRA UCI-Parametern) unterstützen, die in der AOSP-Implementierung definiert sind.
CONFIG_ID_1
: FiRa-definierte Unicast-STATIC STS DS-TWR
-Bereichsbestimmung, verzögerter Modus, Bereichsintervall 240 ms.CONFIG_ID_2
: Von FiRa definierte 1:n-STATIC STS DS-TWR
-Bereichsbestimmung, verzögerter Modus, Abstandsintervall 200 ms. Typischer Anwendungsfall: Smartphones interagieren mit vielen Smart-Home-Geräten.CONFIG_ID_3
: EntsprichtCONFIG_ID_1
, mit dem Unterschied, dass keine Daten zum Anlaufwinkel (AoA) gemeldet werden.CONFIG_ID_4
: EntsprichtCONFIG_ID_1
, mit dem Unterschied, dass der P-STS-Sicherheitsmodus aktiviert ist.CONFIG_ID_5
: EntsprichtCONFIG_ID_2
, mit dem Unterschied, dass der P-STS-Sicherheitsmodus aktiviert ist.CONFIG_ID_6
: EntsprichtCONFIG_ID_3
, mit dem Unterschied, dass der P-STS-Sicherheitsmodus aktiviert ist.CONFIG_ID_7
: EntsprichtCONFIG_ID_2
, mit dem Unterschied, dass der P-STS-Schlüsselmodus für einzelne Steuerelemente aktiviert ist.
- [C-1-4] MÜSSEN eine Funktion anbieten, mit der der Nutzer das UWB-Radio ein- oder ausschalten kann.
- [C-1-5] MÜSSEN erzwingen, dass Apps, die UWB-Funkschnittstelle verwenden, die Berechtigung
UWB_RANGING
(unter der BerechtigungsgruppeNEARBY_DEVICES
) haben.
Das Bestehen der relevanten Konformitäts- und Zertifizierungstests, die von Standardorganisationen wie FIRA, CCC und CSA definiert wurden, trägt dazu bei, dass 802.1.15.4 ordnungsgemäß funktioniert.
- [C-1-2] MÜSSEN das Hardwarefunktions-Flag
-
Überarbeitung ansehen
Der von den Android-APIs verwendete Begriff "Telefonie" bezieht sich in diesem Dokument speziell auf Hardware für das Tätigen von Sprachanrufen und das Senden von SMS-Nachrichten oder das Einrichten mobiler Daten über ein GSM-, CDMA-, LTE-, NR-)GSM- oder CDMA-Netzwerk. Ein Gerät, das „Telefonie“ unterstützt, kann je nach Produkt einige oder alle Anruf-, Messaging- und Datendienste anbieten.
über ein GSM- oder CDMA-Netzwerk. Auch wenn diese Sprachanrufe paketversetzt werden können oder nicht, gelten sie für Android als unabhängig von anderen Datenverbindungen, die über dasselbe Netzwerk implementiert werden. Mit anderen Worten,die Android-Telefoniefunktion und -APIs beziehen sich speziell auf Sprachanrufe und SMS. Beispielsweise werden Geräteimplementierungen, die keine Anrufe tätigen oder SMS senden/empfangen können, nicht als Telefoniegerät betrachtet, unabhängig davon, ob sie ein Mobilfunknetz für die Datenverbindung verwenden. -
Überarbeitung ansehen
Wenn Geräteimplementierungen 802.11 unterstützen und die Funktionalität einer Drittanbieter-App zur Verfügung stellen, geschieht Folgendes:
- [C-1-4] MUSS Multicast-DNS (mDNS) unterstützen und DARF KEINE mDNS-Pakete (224.0.0.251 oder ff02::fb) zu jedem Zeitpunkt, auch wenn sich der Bildschirm nicht in einem aktiven Zustand befindet, filtern, es sei denn, das Löschen oder Filtern dieser Pakete ist notwendig, um in den für den Zielmarkt erforderlichen Bereichen des Stromverbrauchs zu bleiben.
Für Android TV-Geräteimplementierungen, auch im Stand-by-Modus.
- [C-1-4] MUSS Multicast-DNS (mDNS) unterstützen und DARF KEINE mDNS-Pakete (224.0.0.251 oder ff02::fb) zu jedem Zeitpunkt, auch wenn sich der Bildschirm nicht in einem aktiven Zustand befindet, filtern, es sei denn, das Löschen oder Filtern dieser Pakete ist notwendig, um in den für den Zielmarkt erforderlichen Bereichen des Stromverbrauchs zu bleiben.
-
Überarbeitung ansehen
Wenn in Geräteimplementierungen FEATURE_BLUETOOTH_LE deklariert ist, gilt Folgendes:
- [C-SR-2] Es wird dringend empfohlen, den Rx-Versatz zu messen und zu kompensieren, um sicherzustellen, dass der Medianwert für BLE RSSI bei 1 m Abstand zu einem Referenzgerät, das Daten sendet, bei
ADVERTISE_TX_POWER_HIGH
beträgt. Die Geräte sind dabei auf parallelen Ebenen mit Bildschirmen ausgerichtet, die in die gleiche Richtung zeigen. - [C-SR-3] Es wird dringend empfohlen, den Tx-Versatz zu messen und zu kompensieren, um sicherzustellen, dass der Medianwert für BLE RSSI bei -60 dBm +/-10 dB liegt, wenn das Scannen von einem Referenzgerät, das in 1 m Entfernung positioniert ist, und die Übertragung an
ADVERTISE_TX_POWER_HIGH
erfolgt. Dabei sind die Geräte so ausgerichtet, dass sie sich auf parallelen Ebenen befinden und Bildschirme in die gleiche Richtung zeigen.
- [C-10-3] MÜSSEN den Rx-Offset messen und kompensieren, um sicherzustellen, dass der Medianwert für BLE RSSI bei -55 dBm +/-10 dB in 1 m Entfernung von einem Referenzgerät liegt, das bei
ADVERTISE_TX_POWER_HIGH
sendet. - [C-10-4] MÜSSEN den Tx-Offset messen und kompensieren, um sicherzustellen, dass der Medianwert für BLE RSSI bei -55 dBm +/-10 dB liegt, wenn beim Scannen von einem Referenzgerät, das in einer Entfernung von 1 m positioniert ist, und bei der Übertragung bei
ADVERTISE_TX_POWER_HIGH
liegt.
Wenn Geräteimplementierungen die Bluetooth-Version 5.0 unterstützen, gilt Folgendes:
- [C-SR-4] Wir empfehlen Ihnen dringend, folgende Fragen zu unterstützen:
- LE 2 Mio. PHY
- LE-Codec PHY
- LE-Werbeerweiterung
- Regelmäßige Werbung
- Mindestens 10 Anzeigensätze
- Mindestens 8 gleichzeitige LE-Verbindungen. Jede Verbindung kann einer der Rollen von Verbindungstopologien zugewiesen sein.
- LE-Link-Layer-Datenschutz
- Eine Auflöseliste von mindestens 8 Einträgen
- [C-SR-2] Es wird dringend empfohlen, den Rx-Versatz zu messen und zu kompensieren, um sicherzustellen, dass der Medianwert für BLE RSSI bei 1 m Abstand zu einem Referenzgerät, das Daten sendet, bei
-
Überarbeitung ansehen
- [C-1-7] MÜSSEN darauf achten, dass der Medianwert der Entfernungsmessungen in 1 m vom Referenzgerät innerhalb von [0,75 m, 1,25 m] liegt, wobei der Ground-Truth-Abstand vom oberen Rand des DUTs gemessen wird.
Das Gerät muss mit dem Display nach oben gehalten und um 45 Grad geneigt sein.
- [C-1-7] MÜSSEN darauf achten, dass der Medianwert der Entfernungsmessungen in 1 m vom Referenzgerät innerhalb von [0,75 m, 1,25 m] liegt, wobei der Ground-Truth-Abstand vom oberen Rand des DUTs gemessen wird.
-
Überarbeitung ansehen
Eine Kamera auf der Rückseite ist eine Kamera, die sich an der Seite des Geräts gegenüber dem Display befindet. Sie nimmt also wie eine herkömmliche Kamera Szenen auf der anderen Seite des Geräts auf.
Eine Rückkamera ist eine nach außen gerichtete Kamera, die wie bei einer herkömmlichen Kamera Szenen auf der anderen Seite des Geräts erfasst. Bei Handheld-Geräten ist dies eine Kamera, die sich an der Seite des Geräts gegenüber dem Display befindet.
-
Überarbeitung ansehen
Eine Frontkamera ist eine Kamera, die sich an der gleichen Seite des Geräts wie das Display befindet. Das ist eine Kamera, die in der Regel zum Abbilden des Nutzers verwendet wird, z. B. für Videokonferenzen und ähnliche Anwendungen.
Eine Frontkamera ist eine Kamera, die in der Regel zum Abbilden des Nutzers verwendet wird, z. B. für Videokonferenzen und ähnliche Anwendungen. Bei Handheld-Geräten ist dies eine Kamera, die sich auf derselben Seite des Geräts wie der Bildschirm befindet.
-
Überarbeitung ansehen
Eine externe Kamera ist eine Kamera, die jederzeit an der Geräteimplementierung angebracht oder von ihr getrennt werden kann und in alle Richtungen zeigen kann, zum Beispiel USB-Kameras.
7.5.4 Funktionsweise der Camera API:
Überarbeitung ansehen
Bei Geräteimplementierungen MÜSSEN die folgenden Verhaltensweisen für die kamerabezogenen APIs für alle verfügbaren Kameras implementiert werden. Geräteimplementierungen:
- [C-SR-1] Bei Geräten mit mehreren RGB-Kameras in unmittelbarer Nähe und, die in die gleiche Richtung gerichtet sind, wird dringend empfohlen, ein logisches Kameragerät mit der Funktion
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
zu unterstützen, die aus allen RGB-Kameras besteht, die in diese Richtung gerichtet sind, als physische Untergeräte.
- [C-SR-1] Bei Geräten mit mehreren RGB-Kameras in unmittelbarer Nähe und, die in die gleiche Richtung gerichtet sind, wird dringend empfohlen, ein logisches Kameragerät mit der Funktion
-
Überarbeitung ansehen
Geräte, die alle der folgenden Kriterien erfüllen, sind von der oben genannten Anforderung ausgenommen:
- Geräteimplementierungen, die nicht vom Nutzer gedreht werden können, z. B. Automobilgeräte.
-
Überarbeitung ansehen
Geräte, die in der Hand gehalten oder getragen werden, können einen haptischen Bedienungselement für allgemeine Zwecke enthalten, das für verschiedene Zwecke zur Verfügung steht, einschließlich zum Erzeugen von Aufmerksamkeit durch Klingeltöne, Alarme, Benachrichtigungen und allgemeines Touch-Feedback.
Wenn Geräteimplementierungen KEINEN derartigen haptischen Bedienungselement für allgemeine Zwecke enthalten, ist Folgendes zu beachten:
- [7.10/C] MUSS für
Vibrator.hasVibrator()
"false" zurückgeben.
Wenn Geräteimplementierungen mindestens einen solchen haptischen Bedienelement für allgemeine Zwecke enthalten, ist Folgendes möglich:
- [C-1-1] MUSS für
Vibrator.hasVibrator()
"true" zurückgeben. - DU DARF KEINEN haptischen Bedienungselement mit exzentrischer rotierender Masse (ERM) verwendet werden.
- SOLLTEN alle öffentlichen Konstanten für eine klare Haptik in
android.view.HapticFeedbackConstants
implementieren: (CLOCK_TICK
,CONTEXT_CLICK
,KEYBOARD_PRESS
,KEYBOARD_RELEASE
,KEYBOARD_TAP
,LONG_PRESS
,TEXT_HANDLE_MOVE
,VIRTUAL_KEY
,VIRTUAL_KEY_RELEASE
,CONFIRM
,REJECT
,GESTURE_START
undGESTURE_END
). - SOLLTEN alle öffentlichen Konstanten für eindeutige Haptik in
android.os.VibrationEffect
{2, d. h. nur {2/7 f/7 f/7 f, 1, 1, 1, 1, 1, 1, 1, 1, Vibritor}, {18/Primitive , {2, 1, 1, 1, 1, 1, 1, 1, 1, 1}:}EFFECT_TICK
EFFECT_CLICK
EFFECT_HEAVY_CLICK
EFFECT_DOUBLE_CLICK
PRIMITIVE_*
android.os.VibrationEffect.Composition
CLICK
TICK
LOW_TICK
LOW_TICK
QUICK_FALL
QUICK_RISE
SLOW_RISE
SPIN
SPIN
THUD
- SOLLTE der Anleitung zum Zuordnen öffentlicher Konstanten in
android.view.HapticFeedbackConstants
den empfohlenenandroid.os.VibrationEffect
-Konstanten mit den entsprechenden Amplitudenbeziehungen folgen. - SOLLTE diese verknüpften Zuordnungen der haptischen Konstanten verwenden.
- SOLLTEN Sie die Qualitätsprüfung für
createOneShot()
undcreateWaveform()
APIs durchführen. - MÜSSEN verifizieren, dass das Ergebnis der öffentlichen
android.os.Vibrator.hasAmplitudeControl()
API die Vibrationsfunktionen korrekt wiedergibt. - SOLLTEN die Funktionen für die Amplituden-Skalierbarkeit durch Ausführung von
android.os.Vibrator.hasAmplitudeControl()
prüfen.
Wenn Geräteimplementierungen der Zuordnung der haptischen Konstanten folgen, gilt Folgendes:
- MÜSSEN den Implementierungsstatus durch Ausführen der APIs
android.os.Vibrator.areAllEffectsSupported()
undandroid.os.Vibrator.arePrimitivesSupported()
prüfen. - SOLLTEN SIE eine Qualitätsprüfung für haptische Konstanten durchführen.
- SOLLTEN Sie die Fallback-Konfiguration für nicht unterstützte Primitive überprüfen und bei Bedarf aktualisieren, wie in der Implementierungsanleitung für Konstanten beschrieben.
- SOLLTEN SIE wie hier beschrieben Fallback-Unterstützung anbieten, um das Fehlerrisiko zu minimieren.
Informationen zu gerätespezifischen Anforderungen finden Sie in Abschnitt 2.2.1.
- [7.10/C] MUSS für
9. Kompatibilität des Sicherheitsmodells
-
Überarbeitung ansehen
Geräteimplementierungen:
- [C-0-4] MUSS nur eine Implementierung beider Benutzeroberflächen haben.
Wenn bei Geräteimplementierungen alle Pakete vorinstalliert werden, die eine der Rollen System UI Intelligence, System Ambient Audio Intelligence, System Audio Intelligence, System Notification Intelligence, System Text Intelligence oder System Visual Intelligence enthalten, gilt Folgendes:
- [C-4-1] MÜSSEN alle Anforderungen erfüllen, die in den Abschnitten
9.8.6 Inhalte erfassenund 9.8.6 Betriebssystem- und Umgebungsdaten und 9.8.15 Implementierungen von APIs in einer Sandbox beschrieben werden.
- [C-4-2] DÜRFEN KEINE Berechtigung „android.permission.INTERNET“ haben. Dies ist strenger als die in Abschnitt 9.8.6 UNBEDINGT EMPFOHLENE EMPFEHLUNG.
- [C-4-3] DÜRFEN NICHT an andere Apps gebunden werden, mit Ausnahme der folgenden System-Apps: Bluetooth, Kontakte, Medien, Telefonie, SystemUI und Komponenten, die Internet-APIs bereitstellen. Dies ist strenger als in Abschnitt 9.8.6 UNBEDINGT EMPFOHLEN.
Wenn Geräteimplementierungen eine Standardanwendung zur Unterstützung von
VoiceInteractionService
enthalten, gilt Folgendes:- [C-5-1] DARF
ACCESS_FINE_LOCATION
NICHT als Standard für diese Anwendung zuweisen.
9.5 Unterstützung für mehrere Nutzer:
Überarbeitung ansehen
Wenn das oben beschriebene zusätzliche Nutzerprofil bei Geräteimplementierungen erstellt wird, geschieht Folgendes:
- [C-4-5] MÜSSEN die Symbole der Dual-Instanz-Anwendung visuell abgrenzen, wenn sie den Nutzern angezeigt werden.
- [C-4-6] MÜSSEN ein Nutzerangebot zum Löschen vollständiger Klonprofildaten angeben.
- [C-4-7] MÜSSEN alle geklonten Apps deinstalliert, die privaten App-Datenverzeichnisse und deren Inhalte sowie die Klonprofildaten gelöscht werden, wenn sich der Nutzer entscheidet, gesamte geklonte Profildaten zu löschen.
- SOLLTE den Nutzer auffordern, alle Daten des Klonprofils zu löschen, wenn die letzte Klon-App gelöscht wird.
- [C-4-8] MÜSSEN den Nutzer darüber informieren, dass die App-Daten gelöscht werden, wenn die geklonte App deinstalliert wird, oder Nutzern die Möglichkeit bieten, die App-Daten zu behalten, wenn die App vom Gerät deinstalliert wird.
- [C-4-9] MÜSSEN die privaten App-Datenverzeichnisse und deren Inhalte löschen, wenn der Nutzer sich entscheidet, die Daten während der Deinstallation zu löschen.
[C-4-1] MÜSSEN die folgenden Intents, die aus dem zusätzlichen Profil stammen, von Anwendungen des Hauptnutzers auf dem Gerät verarbeiten:
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] MÜSSEN alle Nutzereinschränkungen für Geräterichtlinien und ausgewählte, nicht nutzerbezogene Einschränkungen(Liste unten) übernehmen, die auf den Hauptnutzer des Geräts auf dieses zusätzliche Nutzerprofil angewendet werden.
[C-4-3] DARF nur das Schreiben von Kontakten aus diesem zusätzlichen Profil über die folgenden Intents zulassen:
[C-4-4] DÜRFEN KEINE Kontaktsynchronisierungen für Anwendungen in diesem zusätzlichen Nutzerprofil ausführen.
- [C-4-14] MUSS für die in diesem zusätzlichen Profil ausgeführten Anwendungen eine separate Berechtigungs- und Speicherverwaltung haben
- [C-4-5] DARF nur Apps im zusätzlichen Profil mit einer Launcher-Aktivität den Zugriff auf Kontakte erlauben, die für das übergeordnete Nutzerprofil bereits zugänglich sind.
-
Überarbeitung ansehen
Eine Speichersicherheitstechnologie ist eine Technologie, mit der mindestens die folgenden Klassen von Fehlern mit einer hohen Wahrscheinlichkeit (> 90%) in Anwendungen behoben werden, die die Manifestoption
android:memtagMode
verwenden:- Heap-Pufferüberlauf
- Nach Ablauf der kostenlosen Testversion verwenden
- Double Free
- Wild Free (ohne Nicht-Malloc-Pointer)
Geräteimplementierungen:
- [C-SR-15] wird dringend empfohlen,
ro.arm64.memtag.bootctl_supported
festzulegen.
Wenn das Systemattribut
ro.arm64.memtag.bootctl_supported
bei Implementierungen auf Geräten auf „true“ gesetzt wird, geschieht Folgendes:[C-3-1] MÜSSEN der Systemeigenschaft
arm64.memtag.bootctl
erlauben, eine durch Kommas getrennte Liste der folgenden Werte zu akzeptieren, wobei der gewünschte Effekt beim nächsten nachfolgenden Neustart angewendet wird:memtag
: Eine der oben definierten Speichersicherheitstechnologien ist aktiviert.memtag-once
: Eine wie oben definierte Speichersicherheitstechnologie ist vorübergehend aktiviert und beim nächsten Neustart automatisch deaktiviert.memtag-off
: Eine der oben definierten Speichersicherheitstechnologien ist deaktiviert.
[C-3-2] MÜSSEN dem Shell-Nutzer erlauben,
arm64.memtag.bootctl
festzulegen.[C-3-3] MÜSSEN jedem Prozess erlauben,
arm64.memtag.bootctl
zu lesen.[C-3-4] MÜSSEN
arm64.memtag.bootctl
beim Booten auf den aktuell angeforderten Status setzen. Wenn die Geräteimplementierung den Status ändern kann, ohne die Systemeigenschaft zu ändern, MUSS auch die Eigenschaft aktualisiert werden.[C-SR-16] wird dringend empfohlen, eine Entwicklereinstellung anzuzeigen, die das Memtag-Ereignis einmalig festlegt und das Gerät neu startet. Mit einem kompatiblen Bootloader erfüllt das Android-Open-Source-Projekt die oben genannten Anforderungen über das MTE-Bootloader-Protokoll.
- [C-SR-17] Es wird dringend empfohlen, im Menü "Sicherheitseinstellungen" eine Einstellung anzuzeigen, mit der Nutzer
memtag
aktivieren können.
-
Überarbeitung ansehen
Geräteimplementierungen:
- [C-0-2] MÜSSEN eine Nutzerwarnung anzeigen und die ausdrückliche Einwilligung des Nutzers einholen, damit alle vertraulichen Informationen, die auf dem Bildschirm des Nutzers angezeigt werden,
erfasst werden können, die genau die gleiche Nachricht wie AOSP enthalten,wennjeder und wenn eine Sitzung zur Erfassung des Bildschirms,Streamen oder Starten der Bildschirmaufzeichnung}über die APIs,das Streamen oder die Bildschirmaufzeichnung}{/1.1.1{.MediaProjection.createVirtualDisplay()
1.VirtualDeviceManager.createVirtualDisplay()
DÜRFEN Nutzern NICHT die Möglichkeit geben, die spätere Anzeige der Nutzereinwilligung zu deaktivieren.
[C-SR-1] Es wird dringend empfohlen, eine Nutzerwarnung anzuzeigen, die genau der in AOSP implementierten Nachricht entspricht, die jedoch geändert werden kann, solange der Nutzer deutlich darauf hingewiesen wird, dass vertrauliche Informationen auf dem Bildschirm des Nutzers erfasst werden.
[C-0-4] DÜRFEN Nutzern die Möglichkeit bieten, zukünftige Aufforderungen der Nutzereinwilligung zur Bildschirmaufnahme zu deaktivieren, es sei denn, die Sitzung wird von einer System-App gestartet, der der Nutzer
associate()
mit demandroid.app.role.COMPANION_DEVICE_APP_STREAMING
- oder demandroid.app.role.COMPANION_DEVICE_NEARBY_DEVICE_STREAMING
-Geräteprofil gestattet hat.
- [C-0-2] MÜSSEN eine Nutzerwarnung anzeigen und die ausdrückliche Einwilligung des Nutzers einholen, damit alle vertraulichen Informationen, die auf dem Bildschirm des Nutzers angezeigt werden,
9.8.6 Daten auf Betriebssystemebene und Umgebungsdaten: Dieser Abschnitt wurde von Content Capture und App-Suche in Betriebssystem- und Umgebungsdaten umbenannt.
Überarbeitung ansehen
Android unterstützt über die System-APIs
einen Mechanismus für Geräteimplementierungen, mit dem die folgendenContentCaptureService
,AugmentedAutofillService
,AppSearchGlobalManager.query
oder mit anderen proprietären MittelnInteraktionen zwischen Anwendungsdaten zwischen den Anwendungen und dem Nutzerfür sensible Daten erfasst werden:- Alle Bildschirm- oder anderen Daten, die über
AugmentedAutofillService
an das System gesendet werden. - Alle Bildschirme oder andere Daten, auf die über die
Content Capture
API zugegriffen werden kann. - Alle Bildschirme oder andere Daten, auf die über die
FieldClassificationService
API zugegriffen werden kann - Alle Anwendungsdaten, die über die
AppSearchManager
API an das System übergeben und überAppSearchGlobalManager.query
zugänglich sind.
- Alle anderen Ereignisse, die eine App dem System über die
Content Capture
API oder dieAppSearchManager
API, eine ähnlich leistungsfähige Android- und proprietäre API, zur Verfügung stellt.
- Audiodaten, die durch die Verwendung von
SpeechRecognizer#onDeviceSpeechRecognizer()
durch die Implementierung der Spracherkennung abgerufen wurden. - Audiodaten, die im Hintergrund (fortlaufend) über
AudioRecord
,SoundTrigger
oder andere Audio-APIs abgerufen werden, ohne dass sie für den Nutzer sichtbar sind - Kameradaten, die im Hintergrund (fortlaufend) über CameraManager oder andere Kamera-APIs abgerufen werden, ohne dass für den Nutzer ein Indikator angezeigt wird
Wenn Geräteimplementierungen eines der oben genannten Daten erheben, geschieht Folgendes:
[C-1-3] DARF nur alle diese Daten
und das Logvom Gerät unter Verwendung eines datenschutzfreundlichen Verfahrens gesendet werden, außer bei jeder Weitergabe der Daten mit ausdrücklicher Zustimmung des Nutzers. Der Datenschutzmechanismus ist definiert als „Mechanismen, die nur Analysen in aggregierter Form ermöglichen und den Abgleich protokollierter Ereignisse oder abgeleiteter Ergebnisse mit einzelnen Nutzern verhindern“, um zu verhindern, dass nutzerspezifische Daten introspektiv sind (z.B. durch Implementierung einer Differential Privacy-Technologie wieRAPPOR
).[C-1-5] DÜRFEN solche Daten NICHT an andere Betriebssystemkomponenten weitergeben, die nicht den im aktuellen Abschnitt (9.8.6
Inhaltserfassung) auf Betriebssystemebene und Umgebungsdaten beschriebenen Anforderungen entsprechen. Ausgenommen hiervon sind die ausdrücklichen Einwilligungen des Nutzers, die weitergegeben werden. Sofern diese Funktionen nicht als Android SDK API (AmbientContext
,HotwordDetectionService
) erstellt werden.[C-1-6] MÜSSEN Nutzern die Möglichkeit bieten, solche Daten zu löschen, die von der
-Implementierung oder mit den proprietären Mitteln erhoben werden,ContentCaptureService
wennwann die Daten in irgendeiner Form auf dem Gerät gespeichert werden. Wenn sich der Nutzer dafür entscheidet, die Daten zu löschen, MÜSSEN alle gesammelten Verlaufsdaten entfernt werden.
- [C-SR-3] EMPFOHLENE Implementierung mit der Android SDK API oder einem ähnlichen Open-Source-Repository eines OEMs und / oder in einer Sandbox-Implementierung (siehe Abschnitt 9.8.15 Sandboxed API-Implementierungen).
Android bietet über
SpeechRecognizer#onDeviceSpeechRecognizer()
die Möglichkeit, auf dem Gerät eine Spracherkennung durchzuführen, ohne das Netzwerk einzubeziehen. Jede Implementierung der Spracherkennung auf dem Gerät MUSS den in diesem Abschnitt beschriebenen Richtlinien entsprechen.- Alle Bildschirm- oder anderen Daten, die über
9.8.10. Fehlerbericht zur Konnektivität:
Überarbeitung ansehen
Wenn Geräteimplementierungen das Funktions-Flag
android.hardware.telephony
deklarieren, geschieht Folgendes:- [C-1-4] Mit
BUGREPORT_MODE_TELEPHONY
generierte Berichte MÜSSEN mindestens die folgenden Informationen enthalten:SubscriptionManagerService
-Dump
- [C-1-4] Mit
9.8.14. Credential Manager: entfernt
9.8.15. Sandboxed API-Implementierungen: Neuer Abschnitt
Überarbeitung ansehen
Android bietet über eine Reihe von delegierten APIs einen Mechanismus, um sichere Betriebssystem- und Umgebungsdaten zu verarbeiten. Eine solche Verarbeitung kann an ein vorinstalliertes APK mit privilegiertem Zugriff und eingeschränkten Kommunikationsfunktionen delegiert werden. Dies wird als „Sandboxed API-Implementierung“ bezeichnet.
Jede Sandboxed API-Implementierung:
- [C-0-1] DARF NICHT die INTERNET-Berechtigung anfordern.
- [C-0-2] DARF nur über strukturierte APIs auf das Internet zugreifen, die auf öffentlich verfügbaren Open-Source-Implementierungen basieren, die datenschutzfreundliche Mechanismen verwenden, oder indirekt über Android SDK APIs. Der Datenschutzmechanismus ist definiert als „Mechanismen, die nur die Analyse in aggregierter Form ermöglichen und den Abgleich protokollierter Ereignisse oder abgeleiteter Ergebnisse mit einzelnen Nutzern verhindern“, um zu verhindern, dass nutzerspezifische Daten nehmbar sind (z.B. implementiert mit einer Differential Privacy-Technologie wie RAPPOR).
- [C-0-3] MÜSSEN die Dienste von anderen Systemkomponenten getrennt halten (z.B. nicht die Dienst- oder Freigabeprozess-IDs binden), mit folgenden Ausnahmen:
- Telefonie, Kontakte, System-UI und Medien
- [C-0-4] Nutzern DARF NICHT erlauben, die Dienste durch eine vom Nutzer installierbare Anwendung oder einen Dienst zu ersetzen
- [C-0-5] MUSS nur den vorinstallierten Diensten erlauben, solche Daten zu erfassen. Es sei denn, die Ersatzfunktion ist in AOSP integriert (z.B. für Apps für digitale Assistenten).
- [C-0-6] DÜRFEN zulassen, dass außer den Mechanismen der vorinstallierten Dienste nur die Apps der vorinstallierten Dienste solche Daten erfassen. Es sei denn, eine solche Erfassungsfunktion ist mit einer Android SDK API implementiert.
- [C-0-7] MÜSSEN die Dienste zur Deaktivierung von Nutzerfunktionen anbieten.
- [C-0-8] DARF NICHT auf die Nutzerangebote verzichten, um Android-Berechtigungen der Dienste zu verwalten und dem Android-Berechtigungsmodell zu folgen, wie in Abschnitt 9.1. Berechtigung:
9.8.16. Kontinuierliche Audio- und Kameradaten: Neuer Abschnitt
Überarbeitung ansehen
Zusätzlich zu den in 9.8.2 Aufzeichnung, 9.8.6 Implementierungen auf Betriebssystem- und Umgebungsdaten und 9.8.15 API-Implementierungen in einer Sandbox beschriebenen Anforderungen, Implementierungen, die Audiodaten verwenden, die im Hintergrund (ständig) über AudioRecord, SoundTrigger oder andere Audio-APIs ODER Kamera-Daten im Hintergrund (fortlaufend) über CameraManager oder andere Kamera-APIs abgerufen werden:
- [C-0-1] MÜSSEN eine entsprechende Anzeige (Kamera und/oder Mikrofon gemäß Abschnitt 9.8.2 Aufzeichnung) erzwingen, es sei denn:
- Dieser Zugriff erfolgt in einer Sandbox-Implementierung (siehe 9.8.15 Sandboxed API-Implementierung) über ein Paket mit einer oder mehreren der folgenden Rollen: System UI Intelligence, System Ambient Audio Intelligence, System Audio Intelligence, System Notification Intelligence, System Text Intelligence oder System Visual Intelligence.
- Der Zugriff wird über eine Sandbox ausgeführt, implementiert und durch Mechanismen in AOSP (
HotwordDetectionService
,WearableSensingService
,VisualQueryDetector
) erzwungen. - Der Audiozugriff wird zu unterstützenden Zwecken von der App „Digital Assistant“ durchgeführt, wobei
SOURCE_HOTWORD
als Audioquelle angegeben wird. - Der Zugriff wird vom System durchgeführt und mit Open-Source-Code implementiert.
- [C-SR-1] Es wird dringend empfohlen, für jede Funktion, die solche Daten verwendet, die Einwilligung der Nutzer einzuholen. Diese Funktion sollte standardmäßig deaktiviert sein.
- [C-SR-2] EMPFOHLEN, Kameradaten von einem tragbaren Remote-Gerät gleich zu behandeln (d.h., die in 9.8.2 Aufzeichnung, 9.8.6 Betriebssystem- und Umgebungsdaten, 9.8.15 Sandboxed API-Implementierungen und 9.8.16 Continuous Audio- und Kameradaten beschriebenen Einschränkungen) auf Kameradaten anzuwenden.
Wenn die Kameradaten von einem Wearable-Remote-Gerät bereitgestellt werden und außerhalb des Android-Betriebssystems in unverschlüsselter Form außerhalb des Android-Betriebssystems, einer Sandbox-Implementierung oder einer von
WearableSensingManager
erstellten Sandbox-Funktion zugegriffen wird, gilt Folgendes:- [C-1-1] MUSS dem tragbaren Remote-Gerät angeben, dass dort eine zusätzliche Anzeige eingeblendet wird.
Wenn Geräte die Möglichkeit bieten, ohne das zugewiesene Schlüsselwort mit einer Digital Assistant-Anwendung zu interagieren (entweder zur Verarbeitung allgemeiner Nutzeranfragen oder zur Analyse der Nutzerpräsenz über die Kamera):
- [C-2-1] MÜSSEN dafür sorgen, dass eine solche Implementierung von einem Paket mit der Rolle
android.app.role.ASSISTANT
bereitgestellt wird. - [C-2-2] MÜSSEN darauf achten, dass bei dieser Implementierung
HotwordDetectionService
- und/oderVisualQueryDetectionService
-Android-APIs verwendet werden.
- [C-0-1] MÜSSEN eine entsprechende Anzeige (Kamera und/oder Mikrofon gemäß Abschnitt 9.8.2 Aufzeichnung) erzwingen, es sei denn:
9.8.17. Telemetrie: Neuer Abschnitt
Überarbeitung ansehen
Android speichert System- und App-Protokolle mithilfe von StatsLog APIs. Diese Logs werden über StatsManager APIs verwaltet, die von privilegierten Systemanwendungen verwendet werden können.
StatsManager bietet auch eine Möglichkeit zum Erfassen von Daten, die von Geräten mit einem datenschutzfreundlichen Mechanismus als datenschutzsensibel eingestuft werden. Insbesondere bietet die
StatsManager::query
API die Möglichkeit, eingeschränkte Messwertkategorien abzufragen, die in StatsLog definiert sind.Jede Implementierungsabfrage und das Erfassen eingeschränkter Messwerte von StatsManager:
- [C-0-1] MUSS die einzige Anwendung/Implementierung auf dem Gerät sein und die Berechtigung
READ_RESTRICTED_STATS
haben. - [C-0-2] DARF nur Telemetriedaten und das Protokoll des Geräts unter Verwendung eines Mechanismus zur Einhaltung des Datenschutzes senden. Der Datenschutzmechanismus ist definiert als „Mechanismen, die nur Analysen in aggregierter Form ermöglichen und den Abgleich protokollierter Ereignisse oder abgeleiteter Ergebnisse mit einzelnen Nutzern verhindern“, um zu verhindern, dass nutzerspezifische Daten introspektiv sind (z.B. Implementierung mit einer Differential Privacy-Technologie wie RAPPOR).
- [C-0-3] DÜRFEN solche Daten NICHT mit einer Nutzeridentität (z. B. Account) auf dem Gerät verknüpfen.
- [C-0-4] DÜRFEN derartige Daten NICHT an andere Betriebssystemkomponenten weitergeben, die nicht den im aktuellen Abschnitt (9.8.17 Datenschutzfreundliche Telemetrie) beschriebenen Anforderungen entsprechen.
- [C-0-5] MÜSSEN eine Funktion zum Aktivieren/Deaktivieren der datenschutzfreundlichen Erfassung, Verwendung und Weitergabe von Telemetriedaten zur Verfügung stellen.
- [C-0-6] MÜSSEN Nutzern die Möglichkeit bieten, solche Daten zu löschen, die von der Implementierung erhoben werden, wenn diese in irgendeiner Form auf dem Gerät gespeichert werden. Wenn der Nutzer die Daten löschen möchte, MÜSSEN alle aktuell auf dem Gerät gespeicherten Daten entfernt werden.
- [C-0-7] MÜSSEN die zugrunde liegende datenschutzfreundliche Protokollimplementierung in einem Open-Source-Repository offenlegen.
- [C-0-8 ]MÜSSEN in diesem Abschnitt Richtlinien für ausgehenden Datentraffic erzwingen, um die Erfassung von Daten in eingeschränkten Messwertkategorien, die in StatsLog definiert sind, zu steuern.
- [C-0-1] MUSS die einzige Anwendung/Implementierung auf dem Gerät sein und die Berechtigung
-
Überarbeitung ansehen
GeräteimplementierungenWenn Geräteimplementierungen Dateiinhalte auf Seitenbasis prüfen können, gilt Folgendes:
[
C-0-3C-2-1] unterstützt die kryptografische Überprüfung von Dateiinhaltenmit einem vertrauenswürdigen Schlüssel, ohne die gesamte Datei zu lesen.[
C-0-4C-2-2] DARF NICHT zulassen, dass Leseanfragen für eine geschützte Datei erfolgreich sind, wenn der gelesene Inhaltnicht anhand eines vertrauenswürdigen Schlüssels verifiziertwird und nicht gemäß [C-2-1] oben überprüft wird.
- [C-2-4] MÜSSEN für aktivierte Dateien Datei-Prüfsumme in O(1) zurückgeben.
9.11 Schlüssel und Anmeldedaten:
Überarbeitung ansehen
Mit dem Android-Schlüsselspeichersystem können App-Entwickler kryptografische Schlüssel in einem Container speichern und über die KeyChain API oder die Keystore API für kryptografische Vorgänge verwenden. Geräteimplementierungen:
- [C-0-3] MÜSSEN die Anzahl der fehlgeschlagenen primären Authentifizierungsversuche begrenzen.
- [C-SR-2] Es wird dringend empfohlen, eine Obergrenze von 20 fehlgeschlagenen primären Authentifizierungsversuchen zu implementieren. Wenn Nutzer einwilligen und der Funktion zustimmen, sollten Sie nach Überschreiten der maximalen Anzahl fehlgeschlagener primärer Authentifizierungsversuche ein Zurücksetzen auf die Werkseinstellungen durchführen.
Wenn bei Geräteimplementierungen die Authentifizierungsmethoden zum Entsperren des Sperrbildschirms hinzugefügt oder geändert werden, wenn dies auf einem bekannten Secret basiert, und eine neue Authentifizierungsmethode verwendet wird, die als sichere Methode zum Sperren des Bildschirms behandelt wird, dann:
- [C-SR-3] Eine PIN sollte mindestens 6 Ziffern oder eine 20-Bit-Entropie haben.
- [C-2-1] Bei einer PIN mit weniger als 6 Ziffern DARF die automatische Eingabe ohne Nutzerinteraktion NICHT erlaubt werden, damit die PIN-Länge nicht offengelegt wird.
9.11.1 Sicherer Sperrbildschirm, Authentifizierung und virtuelle Geräte:
Überarbeitung ansehen
Geräteimplementierungen:
- [C-0-1] MÜSSEN die Anzahl der fehlgeschlagenen primären Authentifizierungsversuche begrenzen.
- [C-SR-5] Es wird dringend empfohlen, eine Obergrenze von 20 fehlgeschlagenen primären Authentifizierungsversuchen zu implementieren. Wenn Nutzer der Funktion zustimmen und der Funktion zustimmen, nach Überschreiten des Limits für fehlgeschlagene primäre Authentifizierungsversuche ein Zurücksetzen auf die Werkseinstellungen durchführen.
Wenn in Geräteimplementierungen eine numerische PIN als empfohlene primäre Authentifizierungsmethode festgelegt ist, gehe so vor:
- [C-SR-6] Eine PIN sollte mindestens 6 Ziffern oder eine 20-Bit-Entropie haben.
- [C-SR-7] Bei einer PIN mit weniger als 6 Ziffern wird dringend empfohlen, die automatische Eingabe ohne Nutzerinteraktion NICHT zu erlauben, um zu verhindern, dass die PIN offengelegt wird.
Wenn Geräteimplementierungen einen sicheren Sperrbildschirm haben und einen oder mehrere Trust Agenten enthalten, die die
TrustAgentService
System API implementieren, geschieht Folgendes:[C-7-8] Der Nutzer MUSS mindestens alle 72 Stunden zu einer der empfohlenen Methoden zur primären Authentifizierung (z. B. PIN, Muster, Passwort) aufgefordert werden, es sei denn, die Sicherheit des Nutzers (z. B. Ablenkung des Fahrers) ist ein Problem.Wenn Geräteimplementierungen Anwendungen das Erstellen sekundärer virtueller Displays ermöglichen und zugehörige Eingabeereignisse unterstützen, z. B. über VirtualDeviceManager und die Bildschirme nicht mit VIRTUAL_DISPLAY_FLAG_SECURE gekennzeichnet sind, gilt Folgendes:
[C-13-10] MÜSSEN die Installation von Apps deaktivieren, die über virtuelle Geräte initiiert wurden.9.17 Android Virtualization-Framework:
Überarbeitung ansehen
Wenn auf dem Gerät die Unterstützung der Android Virtualization Framework APIs (
android.system.virtualmachine.*
) implementiert ist, gilt für den Android-Host Folgendes:- [C-1-1] MUSS alle im Paket
android.system.virtualmachine
definierten APIs unterstützen. - [C-1-2] DARF NICHT das Android SELinux und das Berechtigungsmodell für die Verwaltung von geschützten virtuellen Maschinen (pVM) ändern.
- [C-1-3] DARF die Neverallow-Regeln, die im vorgelagerten Android Open Source Project (AOSP) im vorgelagerten Android Open Source Project (AOSP) vorhanden sind, NICHT geändert, weggelassen oder ersetzt werden. Die Richtlinie MÜSSEN mit allen vorhandenen „Neverallow“-Regeln kompiliert werden.
- [C-1-4] DÜRFEN nur von der Plattform signierten Code und privilegierte Anwendungen zulassen
DÜRFEN NICHT zulassen, dass nicht vertrauenswürdiger Code (z.B. Drittanbieter-Apps)einegeschützte virtuelle MaschinepVM erstellt und ausführt. Hinweis: Das kann sich in zukünftigen Android-Versionen ändern.
- [C-1-5] DARF einer
geschützten virtuellen MaschinepVM NICHT erlauben, Code auszuführen, der nicht Teil des Factory-Images oder ihrer Updates ist.Alles, was nicht vom Android Verified Boot abgedeckt wird, z.B. Dateien, die aus dem Internet heruntergeladen oder per Sideload übertragen werden, DÜRFEN NICHT auf einer geschützten virtuellen Maschine ausgeführt werden.
- [C-1-5] MUSS nur einer nicht Debug-fähigen pVM erlauben, Code vom Factory-Image oder von deren Plattformupdates auszuführen, was auch alle Aktualisierungen privilegierter Anwendungen umfasst.
Wenn das Gerät die Unterstützung der Android Virtualization Framework APIs (
android.system.virtualmachine.*
) implementiert, gilt für jedeProtected Virtual MachinepVM -Instanz Folgendes:- [C-2-1] MÜSSEN alle in der Virtualisierungs-APEX verfügbaren Betriebssysteme in einer
geschützten virtuellen MaschinepVM ausführen können. - [C-2-2] DARF NICHT zulassen, dass eine
geschützte virtuelle MaschinepVM ein Betriebssystem ausführt, das nicht vom Geräteimplementierer oder Betriebssystemanbieter signiert ist. - [C-2-3] DARF NICHT zulassen, dass eine
geschützte virtuelle MaschinepVM Daten als Code ausführt (z.B. SELinux niemals erlaubt Ausführung von Ausführungen).
- [C-2-4] DARF die „Neverallow“-Regeln im vorgelagerten Android Open Source Project (AOSP) im System/sepolicy/microdroid NICHT ändern, weglassen oder ersetzen.
- [C-2-5] MÜSSEN auch für andere Betriebssysteme, die keine Microdroid-Betriebssysteme verwenden,
Protected Virtual MachinepVM -Defense-in-Depth-Mechanismen implementieren (z.B. SELinux für pVMs). - [C-2-6] MÜSSEN sicherstellen, dass die pVM fehlschlägt
die Firmware nicht startet, wenndie anfänglichenImages, die die Ausführung der VM nicht verifizieren können, nicht verifiziert werden kann. Die Überprüfung MUSS innerhalb der VM durchgeführt werden. - [C-2-7] MÜSSEN sicherstellen, dass die pVM ausfällt .
Die Firmware verweigertden Start, wenn die Integrität von „instance.img“ kompromittiert wird.
Wenn das Gerät die Unterstützung für die Android Virtualization Framework APIs (
android.system.virtualmachine.*
) implementiert, gilt für den Hypervisor Folgendes:- [C-3-1] MÜSSEN sicherstellen, dass Speicherseiten, die ausschließlich einer VM (entweder pVM oder Host-VM) gehören, nur für die virtuelle Maschine oder den Hypervisor zugänglich sind und nicht über andere virtuelle Maschinen – ob geschützt oder nicht geschützt.
DÜRFEN KEINEN pVM Zugriff auf eine Seite gewähren, die zu einer anderen Entität wie einer anderen pVM oder einem Hypervisor gehört, es sei denn, der Seiteninhaber hat dies explizit freigegeben. Dies schließt die Host-VM ein. Dies gilt sowohl für CPU- als auch für DMA-Zugriffe. - [C-3-2] MÜSSEN eine Seite auf Werkseinstellungen zurücksetzen, nachdem sie von einer pVM verwendet wurde und bevor sie an den Host zurückgegeben wird (z.B. wenn die pVM gelöscht wird).
- [C-
3-3SR-1] Es wird dringend empfohlen,sicherzustellen, dass die pVM-Firmware vor Code in einer pVM geladen und ausgeführt wird. - [C-3-4] MÜSSEN sicherstellen, dass jede VM ein Secret pro VM ableitet, das
{der einer pVM-Instanz bereitgestellten Boot Certificate Chain (BCC) und Compound Device Identifier (CDIs)nur von dieser bestimmten VM-Instanz abgeleitet werden kann und sich beim Zurücksetzen auf die Werkseinstellungen und OTA ändert.
Wenn das Gerät die Unterstützung für die Android Virtualization Framework APIs implementiert, gilt für alle Bereiche:
- [C-4-1] DARF KEINE Funktionen für eine pVM bereitstellen, die das Umgehen des Android-Sicherheitsmodells ermöglicht.
Wenn auf dem Gerät die Unterstützung für die Android Virtualization Framework APIs implementiert ist, gilt Folgendes:
- [C-5-1] MUSS in der Lage sein, die isolierte Kompilierung zu unterstützen, kann aber die Funktion für die isolierte Kompilierung auf der Gerätelieferung
eines ART-Laufzeitupdatesdeaktivieren.
Wenn auf dem Gerät die Unterstützung für Android Virtualization Framework APIs implementiert ist, gilt für die Schlüsselverwaltung Folgendes:
- [C-6-1] MÜSSEN die DICE-Kette an einem Punkt starten, den der Nutzer selbst auf entsperrten Geräten nicht ändern kann. (Um sicherzustellen, dass es nicht gefälscht werden kann)
- [C-SR-2
6-2] Dringend empfohlen, DICE als Mechanismus zur Secret-Ableitung pro VM zu verwenden.MÜSSEN die DICES richtig ausführen, d.h. die richtigen Werte angeben.
- [C-1-1] MUSS alle im Paket