Android 14
26 juin 2024
2. Types d'appareils
-
Voir la révision
- [7.6.1/H-1-1] DOIT ne prendre en charge qu'une seule ABI (64 bits uniquement ou 32 bits uniquement).
Voir la révision
Commencer les nouvelles exigences
Si les implémentations d'appareils portables sont compatibles avec Vulkan, elles:
- [7.1.4.2/H-1-1] DOIT respecter les exigences spécifiées par le profil Android Baseline 2021.
-
Voir la révision
Commencer les nouvelles exigences
Si les implémentations d'appareils de la montre sont compatibles avec Vulkan, elles:
- [7.1.4.2/W-1-1] DOIT respecter les exigences spécifiées par le profil Android Baseline 2021.
-
Voir la révision
Commencer les nouvelles exigences
Si les implémentations d'appareils Automotive sont compatibles avec Vulkan, elles:
- [7.1.4.2/A-1-1] DOIT respecter les exigences spécifiées par le profil Android Baseline 2021.
3. Logiciel
3.2.2. Paramètres de compilation:
Pour le paramètre ODM_SKU:
Voir la révision
La valeur de ce champ DOIT être encodable au format ASCII 7 bits et correspondre à l'expression régulière
^([0-9A-Za-z.,_-]+)$
.
5. Compatibilité multimédia
5.1.3. Détails du codecs audio
Ajout d'informations sur le format/codec Vorbis:
Voir la révision
Décodage: prise en charge des contenus mono, stéréo, 5.0 et 5.1 avec des taux d'échantillonnage de 8 000, 12 000, 16 000, 24 000 et 48 000 Hz.
Encodage: prise en charge des contenus mono et stéréo avec des taux d'échantillonnage de 8 000, 12 000, 0 Hz, 0 et 2
7. Compatibilité matérielle
-
Voir la révision
- [C-1-13] DOIT respecter les exigences spécifiées dans le profil Android Baseline 2021.
-
Suppression des éléments suivants:
Voir la révision
- NE DEVRAIT PAS implémenter l'audio AOAv2 documenté dans la documentation du protocole Android Open Accessory 2.0. L'audio AOAv2 est obsolète à partir de la version Android 8.0 (niveau d'API 26).
9. Compatibilité des modèles de sécurité
9.7. Fonctionnalité de sécurité:
[C-SR-1] a été renuméroté en [C-SR-7] pour supprimer le contenu en double et [C-SR-8] a été supprimé :
Voir la révision
[C-SR-1] VIVEMENT RECOMMANDÉ pour conserver les données du noyau qui ne sont écrites que lors de l'initialisation marquées en lecture seule après l'initialisation (par exemple,
__ro_after_init
).[C-SR-2] EST FORTEMENT RECOMMANDÉ pour randomiser la mise en page du code du noyau et de la mémoire, et pour éviter toute exposition qui pourrait compromettre la randomisation (par exemple,
CONFIG_RANDOMIZE_BASE
avec l'entropie du bootloader via/chosen/kaslr-seed Device Tree node
ouEFI_RNG_PROTOCOL
).[C-SR-3] Il est FORTEMENT RECOMMANDÉ d'activer l'intégrité du flux de contrôle (CFI) dans le noyau afin de fournir une protection supplémentaire contre les attaques de réutilisation de code (par exemple,
CONFIG_CFI_CLANG
etCONFIG_SHADOW_CALL_STACK
).[C-SR-4] Il est FORTEMENT RECOMMANDÉ de ne pas désactiver Control-Flow Integrity (CFI), Shadow Call Stack (SCS) ou Integer Overflow Sanitization (IntSan) sur les composants pour lesquels ils sont activés.
[C-SR-5] Il est FORTEMENT RECOMMANDÉ d'activer CFI, SCS et IntSan pour tous les composants d'espace utilisateur supplémentaires sensibles à la sécurité, comme expliqué dans CFI et IntSan.
[C-SR-6] Il est FORTEMENT RECOMMANDÉ d'activer l'initialisation de la pile dans le noyau afin d'empêcher l'utilisation de variables locales non initialisées (
CONFIG_INIT_STACK_ALL
ouCONFIG_INIT_STACK_ALL_ZERO
). De plus, les implémentations d'appareils NE DOIVENT PAS supposer la valeur utilisée par le compilateur pour initialiser les paramètres locaux.[C-SR-7] Il est FORTEMENT RECOMMANDÉ d'activer l'initialisation du tas de mémoire dans le noyau afin d'empêcher l'utilisation d'allocations de segments de mémoire non initialisés (
CONFIG_INIT_ON_ALLOC_DEFAULT_ON
). Il NE DOIT PAS supposer la valeur utilisée par le noyau pour initialiser ces allocations.
-
Voir la révision
- [C-1-6] DOIT être compatible avec l'un des éléments suivants :
- IKeymasterDevice 3.0,
- IKeymasterDevice 4.0,
- IKeymasterDevice 4.1,
- IKeyMintDevice version 1 ou
- IKeyMintDevice version 2.
- [C-1-6] DOIT être compatible avec l'un des éléments suivants :
9.11.1. Écran de verrouillage sécurisé, authentification et appareils virtuels :
Voir la révision
- [C-8-3] Ils NE DOIVENT PAS exposer d'API permettant à des applications tierces de modifier l'état de verrouillage.
Voir la révision
- [C-12-4] DOIT appeler
TrustManagerService.revokeTrust()
- 24 heures maximum à compter de l'octroi de l'approbation ; ou
- après une période d'inactivité de 8 heures ;
- Si les implémentations n'utilisent pas de plages exactes et sécurisées de manière cryptographique, comme défini dans [C-12-5], la connexion sous-jacente à l'appareil physique à proximité est perdue.
- [C-12-5] Les implémentations qui reposent sur une mesure de plage précise et sécurisée pour répondre aux exigences du [C-12-4] DOIVENT utiliser l'une des solutions suivantes :
- Implémentations utilisant l'UWB :
- DOIT répondre aux exigences de conformité, de certification, de précision et d'étalonnage pour la UWB décrites dans la section 7.4.9.
- DOIT utiliser l'un des modes de sécurité P-STS énumérés dans la section 7.4.9.
- Implémentations utilisant le réseau Wi-Fi Neighborhood Awareness (NAN) :
- DOIT répondre aux exigences de précision spécifiées dans la section 2.2.1 [7.4.2.5/H-SR-1], utiliser la bande passante de 160 MHz (ou plus) et suivre les étapes de configuration de la mesure spécifiées dans Étalonnage de présence.
- DOIT utiliser un LTF sécurisé tel que défini dans la norme IEEE 802.11az.
- Implémentations utilisant l'UWB :
8 avril 2024
2. Types d'appareils
-
Voir la révision
Commencer les nouvelles exigences
Si les implémentations d'appareils portables déclarent
FEATURE_BLUETOOTH_LE
, elles:- [7.4.3/H-1-3] DOIT mesurer et compenser le décalage Rx pour s'assurer que le RSSI BLE médian est de -50 dBm +/-15 dB à 1 m de distance d'un appareil de référence émettant à
ADVERTISE_TX_POWER_HIGH
. - [7.4.3/H-1-4] DOIT mesurer et compenser le décalage Tx pour s'assurer que le RSSI BLE médian est de -50 dBm à +/-15 dB lors de la recherche depuis un appareil de référence situé à 1 m de distance et en transmettant à
ADVERTISE_TX_POWER_HIGH
.
- [7.4.3/H-1-3] DOIT mesurer et compenser le décalage Rx pour s'assurer que le RSSI BLE médian est de -50 dBm +/-15 dB à 1 m de distance d'un appareil de référence émettant à
-
Voir la révision
Si les implémentations d'appareils portables sont compatibles avec l'API système
HotwordDetectionService
ou un autre mécanisme de détection de mot clé sans indication d'accès au micro, elles:- [9.8/H-1-6] NE DOIT PAS autoriser la transmission de plus de 100 octets de données en dehors du service de détection de mots clés pour chaque résultat de mot clé réussi, à l'exception des données audio transmises via HotwordAudioStream.
Voir la révision
Remplacez [9.8/H-1-13] par:
- [9.8/H-SR-3] Il est FORTEMENT RECOMMANDÉ de redémarrer le processus hébergeant le service de détection de mots clés au moins une fois par heure ou tous les 30 événements déclenchés par le matériel, selon la première échéance atteinte.
Voir la révision
Suppression des exigences [9.8.2/H-4-3], [9.8.2/H-4-4], [9.8.2/H-5-3].
-
Voir la révision
Si les implémentations d'appareils portables renvoient
android.os.Build.VERSION_CODES.U
pourandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, les conditions suivantes s'appliquent:- [7.5/H-1-3] DOIT prendre en charge la propriété
android.info.supportedHardwareLevel
avec une valeurFULL
ou supérieure pour la caméra principale arrière etLIMITED
ou supérieure pour la caméra principale avant.
- [7.5/H-1-3] DOIT prendre en charge la propriété
-
Voir la révision
Si les téléviseurs ne disposent pas d'un écran intégré, mais sont compatibles avec un écran externe connecté via HDMI, ils:
- [5.8/T-0-1] DOIT définir le mode de sortie HDMI sur la résolution la plus élevée pour le format de pixel choisi, qui fonctionne avec une fréquence d'actualisation de 50 Hz ou 60 Hz pour l'écran externe, en fonction de la fréquence d'actualisation vidéo pour la région dans laquelle l'appareil est vendu.
DOIT définir le mode de sortie HDMI pour sélectionner la résolution maximale compatible avec une fréquence d'actualisation de 50 Hz ou de 60 Hz.
- [5.8/T-0-1] DOIT définir le mode de sortie HDMI sur la résolution la plus élevée pour le format de pixel choisi, qui fonctionne avec une fréquence d'actualisation de 50 Hz ou 60 Hz pour l'écran externe, en fonction de la fréquence d'actualisation vidéo pour la région dans laquelle l'appareil est vendu.
3. Logiciel
3.5.1. Restriction d'application:
Voir la révision
- Exigence supprimée [C-1-9]
5. Compatibilité multimédia
-
Voir la révision
Si les implémentations d'appareils déclarent être compatibles avec le décodeur Dolby Vision via
HDR_TYPE_DOLBY_VISION
, elles:- [C-1-3] DOIT définir l'ID de piste des couches de base rétrocompatibles (le cas échéant) de sorte qu'il soit identique à celui de la couche Dolby Vision combinée.
7. Compatibilité matérielle
7.1.1.1. Taille et forme de l'écran:
Voir la révision
Si les implémentations d'appareils sont compatibles avec les écrans compatibles avec la configuration de taille
UI_MODE_TYPE_NORMAL
et utilisent un ou plusieurs écrans physiques aux angles arrondis pour les afficher, elles doivent:- [C-1-1] DOIT s'assurer qu'au moins l'une des exigences suivantes est satisfaite pour chacun de ces écrans :
- Lorsqu'un cadre de
15dp de 18 dp x1518 dp est ancré à chaque angle de l'écran logique, au moins un pixel de chaque cadre est visible à l'écran.
- Lorsqu'un cadre de
- [C-1-1] DOIT s'assurer qu'au moins l'une des exigences suivantes est satisfaite pour chacun de ces écrans :
-
Voir la révision
Les exigences suivantes ont été rétablies:
Si les implémentations d'appareils déclarent
FEATURE_BLUETOOTH_LE
, elles:[C-SR-2] Il est FORTEMENT RECOMMANDÉ de mesurer et de compenser le décalage Rx pour s'assurer que le RSSI BLE médian est de -60 dBm +/-10 dB à 1 m de distance d'un appareil de référence transmettant à
ADVERTISE_TX_POWER_HIGH
, où les appareils sont orientés de sorte qu'ils se trouvent sur des "plans parallèles" avec des écrans orientés dans la même direction.[C-SR-3] Il est FORTEMENT RECOMMANDÉ de mesurer et de compenser le décalage Tx pour s'assurer que le RSSI BLE médian est de -60 dBm à +/-10 dB lors de la recherche depuis un appareil de référence situé à 1 m de distance et en transmettant à
ADVERTISE_TX_POWER_HIGH
, où les appareils sont orientés de sorte qu'ils se trouvent sur des "plans parallèles" avec des écrans orientés dans la même direction.
Voir la révision
Déplacement des exigences [C-10-3] et [C-10-4] vers 2.2.1. Matériel :
- [C-10-3] DOIT mesurer et compenser le décalage Rx pour s'assurer que le RSSI BLE médian est de -55 dBm à +/-10 dB à 1 mètre d'un appareil de référence transmettant à
ADVERTISE_TX_POWER_HIGH
. - [C-10-4] DOIT mesurer et compenser le décalage Tx pour s'assurer que le RSSI BLE médian est de -55 dBm à +/-10 dB lors du balayage depuis un appareil de référence situé à 1 m de distance et en transmettant à
ADVERTISE_TX_POWER_HIGH
.
20 novembre 2023
2. Types d'appareils
-
Voir la révision
Si les implémentations d'appareils portables déclarent la prise en charge de toute ABI 64 bits (avec ou sans ABI 32 bits):
-
Voir la révision
- [7.5/H-1-13] DOIT prendre en charge la fonctionnalité
LOGICAL_MULTI_CAMERA
pour la caméra arrière principale s'il existe plus d'une caméra RVB à l'arrière.
- [7.5/H-1-13] DOIT prendre en charge la fonctionnalité
-
Voir la révision
[5.8/T-0-1] DOIT définir le mode de sortie HDMI sur la résolution la plus élevée pour le format SDR ou HDR choisi qui fonctionne avec une fréquence d'actualisation de 50 ou 60 Hz pour l'écran externe.
DOIT définir le mode de sortie HDMI de manière à sélectionner la résolution maximale compatible avec une fréquence d'actualisation de 50 Hz ou 60 Hz.
-
Voir la révision
- [9/W-0-1] DOIT déclarer
android.hardware.security.model.compatible feature
.
- [9/W-0-1] DOIT déclarer
6. Compatibilité des options et des outils pour les développeurs
6.1. Outils pour les développeurs:
Voir la révision
- [C-0-12] DOIT écrire un code Atom
LMK_KILL_OCCURRED_FIELD_NUMBER
dans le
Voir la révision
- [C-0-13] DOIT implémenter la commande shell
dumpsys gpu --gpuwork
pour afficher
- [C-0-12] DOIT écrire un code Atom
9. Compatibilité des modèles de sécurité
9.7. Fonctionnalités de sécurité:
Voir la révision
Si les implémentations d'appareils utilisent un noyau Linux compatible avec SELinux, elles:
Voir la révision
Si les implémentations d'appareils utilisent un noyau autre que Linux ou Linux sans SELinux:
4 octobre 2023
2. Types d'appareils
2.2. Configuration requise pour les appareils portables :
Voir la révision
Les implémentations d'appareils Android sont considérées comme des appareils portables si elles répondent à tous les critères suivants:
- La diagonale de l'écran doit être comprise entre
4 pouces
3,3 pouces (ou 2,5 pouces pour les implémentations d'appareils livrées au niveau d'API 29 ou antérieur)à 8 pouces.
Commencer les nouvelles exigences
- être dotées d'une interface de saisie tactile ;
- La diagonale de l'écran doit être comprise entre
4 pouces
-
Voir la révision
Implémentations pour les appareils portables:
- [7.1.1.1/H-0-1] DOIT disposer d'au moins un
écran compatible Android qui répond à toutes les exigences décrites dans ce documentet mesure au moins 2,2 pouces sur le bord court et 3,4 pouces sur le bord long.
Si les implémentations d'appareils portables prennent en charge la rotation logicielle de l'écran, elles:
- [7.1.1.1/H-1-1]* DOIT mettre l'écran logique mis à la disposition des applications tierces à au moins 2 pouces sur les bords courts et 2,7 pouces sur les bords longs. Les appareils expédiés avec le niveau d'API Android 29 ou version antérieure PEUVENT être exemptés de cette exigence.
Si les implémentations d'appareils portables ne sont pas compatibles avec la rotation logicielle de l'écran, elles:
- [7.1.1.1/H-2-1]* DOIT faire en sorte que l'écran logique mis à disposition pour les applications tierces se trouve à au moins 2,7 pouces sur les bords courts. Les appareils expédiés avec le niveau d'API Android 29 ou version antérieure PEUVENT être exemptés de cette exigence.
Commencer les nouvelles exigences
[7.1.1.1/H-0-3]* DOIT mapper chaque écran
UI_MODE_NORMAL
mis à la disposition des applications tierces sur une zone d'affichage physique non obstruée, d'au moins 2,2 pouces sur le bord court et 3,4 pouces sur le bord long.[7.1.1.3/H-0-1]* DOIT définir la valeur de
DENSITY_DEVICE_STABLE
sur 92% ou plus que la densité physique réelle de l'écran correspondant.
Si les implémentations d'appareils portables déclarent
android.hardware.audio.output
etandroid.hardware.microphone
, elles:[5.6/H-1-1] DOIT avoir une latence moyenne aller-retour continue de 300 millisecondes ou moins de cinq mesures, avec une écart absolue moyenne inférieure à 30 ms, sur les chemins de données suivants: "haut-parleur vers micro", adaptateur de bouclage 3,5 mm (si compatible), rebouclage USB (si compatible).
[5.6/H-1-2] DOIT avoir une latence moyenne de la fonctionnalité "Appuyer sur tonalité" de 300 millisecondes ou moins sur au moins cinq mesures sur le chemin de données entre le haut-parleur et le micro.
Si les implémentations d'appareils portables incluent au moins un actionneur haptique:
- [7.10/H]* NE DOIT PAS utiliser d'actionneur haptique (vibreur) à masse rotative excentrique.
- [7.10/H]* DEVRAIT implémenter toutes les constantes publiques pour les retours haptiques clairs dans android.view.HapticFeedbackConstants, à savoir (CLOCK_TICK, CONTEXT_CLICK, KEYBOARD_PRESS, KEYBOARD_Release, KEYBOARD_TAP, CONFIRM_PRESS, TEXT_HANDLE_MOVE, VIRTUAL_MOVE, VIRTUREAL_START).
- [7.10/H]* DEVRAIT implémenter toutes les constantes publiques pour les résultats haptiques clairs dans android.os.VibrationEffect, à savoir (EFFECT_TICK, EFFECT_CLICK, EFFECT_HEAVY_CLICK et EFFECT_DOUBLE_CLICK) et toutes les constantes publiques
PRIMITIVE_*
possibles pour nameTICKly, EffectK,VibrationEffect, android_LOWTIK,VibrationEffect, android_LOWTICK. Certaines de ces primitives, telles que LOW_TICK et SPIN, ne sont possibles que si le vibreur peut prendre en charge des fréquences relativement basses. - [7.10/H]* DEVRAIT suivre les conseils pour mapper des constantes publiques dans android.view.HapticFeedbackConstants aux constantes android.os.VibrationEffect recommandées, avec les relations d'amplitude correspondantes.
- [7,10/H]* DEVRAIT suivre l'évaluation de la qualité pour les API createOneShot() et createWaveform().
- [7.10/H]* DEVRAIT vérifier que le résultat de l'API publique android.os.Vibrator.hasAmplitudeControl() reflète correctement les capacités de son vibreur.
- [7.10/H]* DEVRAIT positionner l'actionneur à proximité de l'endroit où l'appareil est généralement tenu ou touché par les mains.
Si les implémentations d'appareils portables incluent au moins un actionneur à résonateur linéaire à usage général 7.10 , elles:
- [7.10/H] DEVRAIT positionner l'actionneur à proximité de l'endroit où l'appareil est généralement tenu ou touché par les mains.
- [7,10/H] DEVRAIT déplacer l'actionneur haptique sur l'axe X (gauche-droite) de l'orientation naturelle en
portraitde l'appareil.
Si les implémentations d'appareils portables disposent d'un actionneur haptique à usage général , à savoir un actionneur à résonance linéaire (LRA), sur l'axe X, ils:
- [7,10/H] La fréquence de résonance de la LRA sur l'axe X DOIT être inférieure à 200 Hz.
- [7.1.1.1/H-0-1] DOIT disposer d'au moins un
-
Voir la révision
Les implémentations d'appareils portables DOIVENT prendre en charge les formats d'encodage vidéo suivants et les mettre à la disposition des applications tierces:
- [5.2/H-0-3] AV1
Les implémentations d'appareils portables DOIVENT prendre en charge les formats de décodage vidéo suivants et les mettre à la disposition des applications tierces:
- [5.3/H-0-6] AV1
-
Voir la révision
Si les implémentations d'appareils incluant la touche de navigation des fonctions récentes comme détaillé dans la section 7.2.3 modifient l'interface, elles:
- [3.8.3/H-1-1] DOIT implémenter le comportement d'épinglage d'écran et fournir à l'utilisateur un menu de paramètres pour activer/désactiver la fonctionnalité.
Si les implémentations d'appareils portables sont compatibles avec les API
ControlsProviderService
etControl
, et autorisent les applications tierces à publier des commandes de contrôle des appareils, elles:- [3.8.16/H-1-6] Les implémentations d'appareils DOIVENT afficher précisément l' affordance utilisateur comme suit :
- Si l'appareil a défini
config_supportsMultiWindow=true
et que l'application déclare les métadonnéesMETA_DATA_PANEL_ACTIVITY
dans la déclarationControlsProviderService
, y compris le ComponentName d'une activité valide (tel que défini par l'API), l'application DOIT intégrer cette activité dans cette affordance utilisateur. - Si l'application ne déclare pas de métadonnées
META_DATA_PANEL_ACTIVITY
, elle DOIT afficher les champs spécifiés tels que fournis par l'APIControlsProviderService
, ainsi que tous les champs spécifiés fournis par les API Control.
- Si l'appareil a défini
- [3.8.16/H-1-7] Si l'application déclare les métadonnées
META_DATA_PANEL_ACTIVITY
, elle DOIT transmettre la valeur du paramètre défini dans [3.8.16/H-1-5] à l'aide deEXTRA_LOCKSCREEN_ALLOW_TRIVIAL_CONTROLS
lors du lancement de l'activité intégrée.
Si les implémentations d'appareils permettent aux utilisateurs de passer des appels,
- [7.4.1.2/H-0-1] DOIT déclarer le flag de fonctionnalité
android.software.telecom
. - [7.4.1.2/H-0-2] DOIT implémenter le framework Telecom.
2.2.4. Performances et puissance:
Voir la révision
Implémentations pour les appareils portables:
- [8.5/H-0-1] DOIT fournir une affordance utilisateur
dans le menu Paramètrespour voir toutes les applications avec des services de premier plan actifs ou des tâches lancées par l'utilisateur, y compris la durée de chacun de ces services, comme décrit dans le document du SDK.et la possibilité d'arrêter une application qui exécute un service de premier plan ou une tâche lancée par l'utilisateur 0.- Certaines applications PEUVENT être exemptées d'être arrêtées ou répertoriées dans une telle affordance utilisateur, comme décrit dans le document relatif au SDK.
- [8.5/H-0-2]DOIT fournir une affordance à l'utilisateur pour arrêter une application qui exécute un service de premier plan ou une tâche lancée par l'utilisateur.
- [8.5/H-0-1] DOIT fournir une affordance utilisateur
-
Voir la révision
Si les implémentations d'appareils déclarent prendre en charge
android.hardware.telephony
, elles:- [9.5/H-1-1] NE DOIT PAS définir
UserManager.isHeadlessSystemUserMode
surtrue
.
Si les implémentations d'appareils disposent d'un écran de verrouillage sécurisé et incluent un ou plusieurs agents de confiance qui implémentent l'API système
TrustAgentService
, ils:- [9.11.1/H-1-1] DOIT inviter l'utilisateur à utiliser l'une des méthodes d'authentification principales recommandées (par exemple, un code, un schéma ou un mot de passe) plus d'une fois toutes les 72 heures.
Si les implémentations d'appareils portables définissent
UserManager.isHeadlessSystemUserMode
surtrue
, ellesSi les implémentations d'appareils portables sont compatibles avec l'API système
HotwordDetectionService
ou un autre mécanisme de détection de mot clé sans indication d'accès au micro, elles:- [9.8/H-1-1] DOIT s'assurer que le service de détection de mots clés ne peut transmettre des données qu'au système,
ContentCaptureService
ou au service de reconnaissance vocale de l'appareil créé parSpeechRecognizer#createOnDeviceSpeechRecognizer()
. - [9.8/H-1-6] NE DOIT PAS permettre la transmission de plus de 100 octets de données (à l'exclusion des flux audio) en dehors du service de détection de mots clés pour chaque résultat de mot clé réussi.
- [9.8/H-1-15] DOIT s'assurer que les flux audio fournis pour les résultats de mots clés réussis sont transmis à sens unique du service de détection de mots clés au service d'interaction vocale.
Si les implémentations d'appareils incluent une application qui utilise l'API système
HotwordDetectionService
ou un mécanisme similaire de détection de mot clé sans indication d'utilisation du micro, l'application:- [9.8/H-2-3] NE DOIT PAS transmettre à partir du service de détection de mots clés, de données audio, de données pouvant être utilisées pour reconstruire (entièrement ou partiellement) l'audio ou des contenus audio sans rapport avec le mot clé lui-même, sauf avec le
ContentCaptureService
ou le service de reconnaissance vocale de l'appareil.
Si les implémentations d'appareils portables sont compatibles avec l'API système
VisualQueryDetectionService
ou un autre mécanisme de détection de requêtes sans indication d'accès au micro et/ou à la caméra, elles:- [9.8/H-3-1] DOIT s'assurer que le service de détection de requêtes ne peut transmettre des données qu'au système, à
ContentCaptureService
ou au service de reconnaissance vocale de l'appareil (créé parSpeechRecognizer#createOnDeviceSpeechRecognizer()
). - [9.8/H-3-2] NE DOIT PAS permettre la transmission d'informations audio ou vidéo en dehors de
VisualQueryDetectionService
, sauf versContentCaptureService
ou le service de reconnaissance vocale de l'appareil. - [9.8/H-3-3] DOIT afficher un avis utilisateur dans l'UI du système lorsque l'appareil détecte une intention de l'utilisateur d'interagir avec l'application Assistant numérique (par exemple, en détectant la présence de l'utilisateur via l'appareil photo).
- [9.8/H-3-4] DOIT afficher un indicateur de micro et la requête utilisateur détectée dans l'interface utilisateur juste après la détection de cette requête.
- [9.8/H-3-5] NE DOIT PAS permettre à une application installable par l'utilisateur de fournir le service de détection visuelle des requêtes.
- [9.5/H-1-1] NE DOIT PAS définir
-
Voir la révision
Si les implémentations d'appareils portables renvoient
android.os.Build.VERSION_CODES.T
pourandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, les conditions suivantes s'appliquent:- DOIT respecter les exigences relatives aux contenus multimédias indiquées dans la section 2.2.7.1 du CDD d'Android 13.
Commencer les nouvelles exigences
Si les implémentations d'appareils portables renvoientandroid.os.Build.VERSION_CODES.U
pourandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, les conditions suivantes s'appliquent:- [5.1/H-1-1] DOIT annoncer le nombre maximal de sessions de décodeur vidéo matérielle pouvant être exécutées simultanément dans n'importe quelle combinaison de codecs via les méthodes
CodecCapabilities.getMaxSupportedInstances()
etVideoCapabilities.getSupportedPerformancePoints()
. - [5.1/H-1-2] DOIT prendre en charge six instances de sessions de décodeur vidéo matériel 8 bits (SDR) (AVC, HEVC, VP9, AV1 ou version ultérieure) dans toute combinaison de codec exécutée simultanément avec trois sessions à 30 FPS et 3 sessions à 4K, sauf AV1. Les codecs AV1 ne sont requis que pour la résolution 1080p, mais ils doivent toujours prendre en charge six instances à 1080p30 FPS.
- [5.1/H-1-3] DOIT annoncer le nombre maximal de sessions d'encodeur vidéo matériel pouvant être exécutées simultanément dans n'importe quelle combinaison de codecs via les méthodes
CodecCapabilities.getMaxSupportedInstances()
etVideoCapabilities.getSupportedPerformancePoints()
. - [5.1/H-1-4] DOIT prendre en charge six instances de sessions d'encodeur vidéo matériel 8 bits (SDR) (AVC, HEVC, VP9, AV1 ou version ultérieure) dans toute combinaison de codecs exécutée simultanément avec 4 sessions à 30 FPS et 2 sessions à 4K, sauf AV1. Les codecs AV1 ne sont requis que pour la résolution 1080p, mais ils doivent toujours prendre en charge six instances à 1080p30 FPS.
- [5.1/H-1-5] DOIT annoncer le nombre maximal de sessions d'encodeur et de décodeur vidéo matériel pouvant être exécutées simultanément dans n'importe quelle combinaison de codecs via les méthodes
CodecCapabilities.getMaxSupportedInstances()
etVideoCapabilities.getSupportedPerformancePoints()
. - [5.1/H-1-6] DOIT prendre en charge six instances de décodeur vidéo matériel 8 bits (SDR) et de sessions d'encodeur vidéo matériel (AVC, HEVC, VP9, AV1 ou version ultérieure) dans toute combinaison de codec exécutée simultanément avec trois sessions à une résolution de 4K à 30 images par seconde (sauf AV1), dont deux sessions avec encodeur au maximum. Les codecs AV1 ne sont requis que pour la résolution 1080p, mais ils doivent toujours prendre en charge six instances à 1080p30 FPS.
- [5.1/H-1-19] DOIT prendre en charge trois instances de décodeur vidéo matériel HDR 10 bits et de sessions d'encodeur vidéo matériel (AVC, HEVC, VP9, AV1 ou version ultérieure) dans toute combinaison de codec exécutée simultanément à une résolution de 4K à 30 FPS (sauf AV1), dont au maximum 1 Go est configuré dans une session d'encodeur GLA2. La génération de métadonnées HDR par l'encodeur n'est pas requise en cas d'encodage à partir de la surface GL. Les sessions de codec AV1 ne sont requises que pour la résolution 1080p, même lorsque cette exigence implique la 4K.
- [5.1/H-1-7] DOIT avoir une latence d'initialisation du codec de 40 ms ou moins pour une session d'encodage vidéo de 1080p ou moins pour tous les encodeurs vidéo matériels en charge. La charge ici est définie comme une session simultanée de transcodage vidéo 1080p à 720p en utilisant des codecs vidéo matériels et l'initialisation de l'enregistrement audio-vidéo 1080p. Pour le codec Dolby Vision, la latence d'initialisation du codec DOIT être inférieure ou égale à 50 ms.
- [5.1/H-1-8] DOIT avoir une latence d'initialisation du codec de 30 ms ou moins pour une session d'encodage audio de 128 kbit/s ou un débit inférieur pour tous les encodeurs audio en charge. La charge ici est définie comme une session simultanée de transcodage vidéo 1080p à 720p en utilisant des codecs vidéo matériels et l'initialisation de l'enregistrement audio-vidéo 1080p.
- [5.1/H-1-9] DOIT prendre en charge deux instances de sessions de décodeur vidéo matérielle sécurisées (AVC, HEVC, VP9, AV1 ou version ultérieure) dans toute combinaison de codec exécutée simultanément à 4K à 30 FPS (sauf AV1) pour les contenus 8 bits (SDR) et HDR 10 bits. Les sessions de codec AV1 ne sont requises que pour la résolution 1080p, même lorsque cette exigence implique la 4K.
- [5.1/H-1-10] DOIT prendre en charge trois instances de sessions de décodeur vidéo matériel non sécurisées avec une instance de session de décodeur vidéo matérielle sécurisée (4 instances au total) (AVC, HEVC, VP9, AV1 ou version ultérieure) dans n'importe quelle combinaison de codec exécutée simultanément avec trois sessions à une résolution de 4K à 30 FPS et une session de décodeur sécurisée à 4K à 30 FPS (sauf une session sécurisée de 30 FPS à 30 FPS et 3 sessions HDR à 0 FPS à une résolution de 4K à 10 FPS). Les sessions de codec AV1 ne sont requises que pour la résolution 1080p, même lorsque cette exigence implique la 4K.
- [5.1/H-1-11] DOIT être compatible avec un décodeur sécurisé pour chaque décodeur matériel AVC, HEVC, VP9 ou AV1 de l'appareil.
- [5.1/H-1-12] DOIT avoir une latence d'initialisation du codec de 40 ms ou moins pour une session de décodage vidéo de 1080p ou moins pour tous les décodeurs vidéo matériels en charge. La charge ici est définie comme une session simultanée de transcodage vidéo de 1080p à 720p effectuée à l'aide de codecs vidéo matériels et de l'initialisation de la lecture audio/vidéo 1080p. Pour le codec Dolby Vision, la latence d'initialisation du codec DOIT être inférieure ou égale à 50 ms.
- [5.1/H-1-13] DOIT avoir une latence d'initialisation du codec de 30 ms ou moins pour une session de décodage audio de 128 kbit/s ou un débit inférieur pour tous les décodeurs audio en charge. Cette charge désigne une session simultanée de transcodage vidéo de 1080p à 720p utilisant des codecs vidéo matériels et l'initialisation de la lecture audio/vidéo 1080p.
- [5.1/H-1-14] DOIT prendre en charge le décodeur matériel AV1 Main 10, Level 4.1 et le grain.
- [5.1/H-1-15] DOIT disposer d'au moins un décodeur vidéo matériel compatible avec la résolution 4K60.
- [5.1/H-1-16] DOIT disposer d'au moins un encodeur vidéo matériel compatible avec la résolution 4K60.
- [5.3/H-1-1] NE DOIT PAS supprimer plus d'une image en 10 secondes (c'est-à-dire une perte de frames inférieure à 0,167 %) pour une session vidéo 4K à 60 FPS en charge.
- [5.3/H-1-2] NE DOIT PAS supprimer plus d'une image en 10 secondes lors d'un changement de résolution vidéo au cours d'une session vidéo à 60 FPS et chargée d'une session 4K.
- [5.6/H-1-1] DOIT avoir une latence tap-to-ton de 80 millisecondes ou moins à l'aide du test tap-to-tone de CTS Verifier.
- [5.6/H-1-2] DOIT avoir une latence audio aller-retour de 80 millisecondes ou moins sur au moins un chemin de données compatible.
- [5.6/H-1-3] DOIT prendre en charge l'audio >=24 bits pour une sortie stéréo sur des connecteurs audio 3,5 mm si elle est présente, et via l'audio USB si elle est prise en charge sur l'intégralité du chemin de données pour une faible latence et des configurations de streaming. Pour la configuration à faible latence, AAudio doit être utilisé par l'application en mode de rappel à faible latence. Pour la configuration du streaming, l'application doit utiliser une piste audio Java. Dans les configurations à faible latence et en streaming, le récepteur de sortie HAL doit accepter
AUDIO_FORMAT_PCM_24_BIT
,AUDIO_FORMAT_PCM_24_BIT_PACKED
,AUDIO_FORMAT_PCM_32_BIT
ouAUDIO_FORMAT_PCM_FLOAT
pour son format de sortie cible. - [5.6/H-1-4] DOIT prendre en charge les appareils audio USB à 4 canaux ou plus (utilisé par les manettes de DJ pour la prévisualisation des titres).
- [5.6/H-1-5] DOIT prendre en charge les appareils MIDI conformes à la classe et déclarer l'indicateur de fonctionnalité MIDI.
- [5.6/H-1-9] DOIT prendre en charge au moins 12 canaux de mixage. Cela implique la possibilité d'ouvrir une piste audio avec un masque de canal 7.1.4 et de répartir correctement tous les canaux en stéréo ou de les décomposer correctement.
- [5.6/H-SR] Il est FORTEMENT RECOMMANDÉ de prendre en charge le mixage de 24 canaux avec au moins la prise en charge des masques de canal 9.1.6 et 22.2.
- [5.7/H-1-2] DOIT prendre en charge
MediaDrm.SECURITY_LEVEL_HW_SECURE_ALL
avec les fonctionnalités de déchiffrement de contenu ci-dessous.
Taille d'échantillon minimale 4 Mio Nombre minimal de sous-échantillons – H264 ou HEVC 32 Nombre minimal de sous-échantillons – VP9 9 Nombre minimal de sous-échantillons – AV1 288 Taille minimale de la mémoire tampon du sous-échantillon 1 Mio Taille minimale de la mémoire tampon cryptographique générique 500 Kio Nombre minimal de sessions simultanées 30 Nombre minimal de clés par session 20 Nombre total minimal de clés (toutes les sessions) 80 Minimum Total Number of DRM Keys (toutes les sessions) 6 Taille du message 16 Kio Frames déchiffrés par seconde 60 FPS - [5.1/H-1-17] DOIT disposer d'au moins un décodeur d'image matériel compatible avec le profil de référence AVIF.
- [5.1/H-1-18] DOIT être compatible avec l'encodeur AV1 capable d'encoder jusqu'à 480p à 30 FPS et 1 Mbit/s.
[5.12/H-1-1] DOIT[5.12/H-SR] Sont vivement recommandés pour assurer la compatibilité avec la fonctionnalitéFeature_HdrEditing
sur tous les encodeurs matériels AV1 et HEVC présents sur l'appareil.- [5.12/H-1-2] DOIT être compatible avec le format de couleurs RGBA_1010102 pour tous les encodeurs matériels AV1 et HEVC présents sur l'appareil.
- [5.12/H-1-3] DOIT annoncer la prise en charge de l'extension EXT_YUV_target pour l'échantillonnage à partir de textures YUV en 8 et 10 bits.
- [7.1.4/H-1-1] DOIT comporter au moins six superpositions matérielles dans l'unité de traitement des données (HWC, Data Processing Unit) et au moins deux d'entre elles capables d'afficher du contenu vidéo 10 bits.
Si les implémentations d'appareils portables renvoient
android.os.Build.VERSION_CODES.U
pourandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
et qu'elles sont compatibles avec un encodeur AVC ou HEVC matériel, les conditions suivantes s'appliquent:- [5.2/H-2-1] DOIT respecter l'objectif de qualité minimal défini par les courbes de distorsion du débit de l'encodeur vidéo pour les codecs AVC et HEVC matériels, tel que défini dans la documentation à venir.
-
Voir la révision
Si les implémentations d'appareils portables renvoientandroid.os.Build.VERSION_CODES.U
pourandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, les conditions suivantes s'appliquent:- [7.5/H-1-1] DOIT disposer d'une caméra arrière principale d'une résolution d'au moins 12 mégapixels, permettant la capture vidéo à 4K à 30 images par seconde. La caméra arrière principale est celle qui possède l'ID d'appareil photo le plus bas.
- [7.5/H-1-2] DOIT disposer d'une caméra frontale principale d'une résolution d'au moins 6 mégapixels et prendre en charge la capture vidéo à 1080p à 30 images par seconde. La caméra frontale principale est celle qui possède l'ID d'appareil photo le plus bas.
- [7.5/H-1-3] DOIT prendre en charge la propriété
android.info.supportedHardwareLevel
avec une valeur COMPLÈTE ou supérieure pour les deux caméras principales. - [7.5/H-1-4] DOIT prendre en charge
CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
pour les deux caméras principales. - [7.5/H-1-5] DOIT avoir une latence de capture JPEG "camera2" inférieure à 1 000
900ms pour une résolution 1080p telle que mesurée par le test PerformanceTest de la caméra CTS dans les conditions d'éclairage ITS (3 000 K) des deux caméras principales. - [7.5/H-1-6] DOIT avoir une latence de démarrage de la caméra 2 (ouvrir la caméra à la première image d'aperçu) inférieure à 500 ms, telle que mesurée par le test PerformanceTest de la caméra CTS dans des conditions d'éclairage ITS (3 000 K) pour les deux caméras principales.
- [7.5/H-1-8] DOIT prendre en charge
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW
etandroid.graphics.ImageFormat.RAW_SENSOR
pour la caméra arrière principale. - [7.5/H-1-9] DOIT disposer d'une caméra principale arrière compatible avec les résolutions 720p ou 1080p à 240 FPS.
- [7.5/H-1-10] DOIT avoir une valeur de ZOOM_RATIO inférieure à 1,0 pour les caméras principales si une caméra RVB ultra grand angle orientée dans la même direction.
- [7.5/H-1-11] DOIT implémenter une diffusion simultanée de flux avant arrière sur les caméras principales.
- [7.5/H-1-12] DOIT prendre en charge
CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION
pour la caméra avant principale et la caméra arrière principale. - [7.5/H-1-13] DOIT prendre en charge la capacité
LOGICAL_MULTI_CAMERA
pour les caméras principales si plus d'une caméra RVB orientée dans la même direction. - [7.5/H-1-14] DOIT prendre en charge la fonctionnalité
STREAM_USE_CASE
pour la caméra avant principale et la caméra arrière principale. - [7.5/H-1-15] DOIT prendre en charge les extensions
Bokeh eten mode Nuit via les extensions CameraX et Camera2 pour les appareils photo principaux. - [7.5/H-1-16] DOIT prendre en charge la fonctionnalité DYNAMIC_RANGE_TEN_BIT pour les caméras principales.
- [7.5/H-1-17] DOIT être compatible avec CONTROL_SCENE_MODE_FACE_PRIORITY et la détection de visages (STATISTICS_FACE_DETECT_MODE_SIMPLE ou STATISTICS_FACE_DETECT_MODE_FULL) pour les caméras principales.
-
Voir la révision
Si les implémentations d'appareils portables renvoientandroid.os.Build.VERSION_CODES.U
pourandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, les conditions suivantes s'appliquent:- [7.1.1.1/H-2-1] DOIT avoir une résolution d'écran d'au moins 1080p.
- [7.1.1.3/H-2-1] DOIT avoir une densité d'écran d'au moins 400 ppp.
- [7.1.1.3/H-3-1] DOIT disposer d'un écran HDR acceptant au moins 1 000 nits en moyenne.
- [7.6.1/H-2-1] DOIT disposer d'au moins 8 Go de mémoire physique.
-
Voir la révision
Si les implémentations d'appareils portables renvoientandroid.os.Build.VERSION_CODES.U
pourandroid.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
, les conditions suivantes s'appliquent:- [8.2/H-1-1] DOIT garantir des performances d'écriture séquentielle d'au moins 150 Mo/s.
- [8.2/H-1-2] DOIT garantir des performances d'écriture aléatoire d'au moins 10 Mo/s.
- [8.2/H-1-3] DOIT garantir des performances de lecture séquentielle d'au moins 250 Mo/s.
- [8.2/H-1-4] DOIT garantir des performances de lecture aléatoire d'au moins 100 Mo/s.
- [8.2/H-1-5] DOIT garantir des performances de lecture et d'écriture séquentielles en parallèle avec des performances de lecture et d'écriture deux fois plus importantes et d'écriture d'au moins 50 Mo/s.
-
Voir la révision
Les implémentations de téléviseurs DOIVENT prendre en charge les formats d'encodage vidéo suivants et les mettre à la disposition d'applications tierces:
- [5.2/T-0-3] AV1
Les implémentations de téléviseurs DOIVENT prendre en charge les formats de décodage vidéo suivants et les mettre à la disposition d'applications tierces:
- [5.3.2/T-0-7] AV1
-
Voir la révision
Si les implémentations d'appareils disposent d'un écran de verrouillage sécurisé et incluent un ou plusieurs agents de confiance qui implémentent l'API système
TrustAgentService
, ils:- [9.11.1/W-1-1] DOIT inviter l'utilisateur à utiliser l'une des méthodes d'authentification principales recommandées (par exemple, un code, un schéma ou un mot de passe) plus d'une fois toutes les 72 heures.
-
Voir la révision
Si les implémentations d'appareils prennent en charge la diffusion de radio AM/FM et exposent la fonctionnalité à n'importe quelle application, celles-ci:
- [7.4
.10/A-0-1] DOIT déclarer la prise en charge deFEATURE_BROADCAST_RADIO
.
Une caméra de l'extérieur est une caméra qui capture les scènes en dehors de l'implémentation de l'appareil, comme la caméra de recul.
Implémentations pour les appareils automobiles:
- DEVRAIT inclure une ou plusieurs caméras de vue extérieure.
Si les implémentations d'appareils automobiles incluent une caméra offrant une vue extérieure, celles-ci:
- [7.5/A-1-1] NE DOIT PAS avoir de caméras extérieures accessibles via les API Android Camera, sauf si elles respectent les exigences principales relatives aux caméras.
- [7.5/A-SR-1] Il est FORTEMENT RECOMMANDÉ de ne pas faire pivoter l'aperçu de l'appareil photo ou de ne pas le reproduire horizontalement.
- [7.5/A-SR-2] Il est FORTEMENT RECOMMANDÉ d'avoir une résolution d'au moins 1,3 mégapixel.
- DEVRAIT être équipé d'un matériel à mise au point fixe ou EDOF (profondeur de champ étendue).
- Un autofocus matériel ou logiciel peut être implémenté dans le pilote de l'appareil photo.
Si les implémentations d'appareils automobiles incluent une ou plusieurs caméras offrant une vue extérieure et chargent le service EVS (Exterior View System), alors pour ce type de caméra:
- [7.5/A-2-1] NE DOIT PAS pivoter ni dupliquer horizontalement l'aperçu de l'appareil photo.
Implémentations pour les appareils automobiles:
- PEUT inclure une ou plusieurs caméras disponibles pour des applications tierces.
Si les implémentations d'appareils automobiles incluent au moins une caméra et la mettent à la disposition des applications tierces:
- [7.5/A-3-1] DOIT signaler le flag de fonctionnalité
android.hardware.camera.any
. - [7.5/A-3-2] NE DOIT PAS déclarer la caméra en tant que caméra système.
- PEUVENT être compatibles avec les caméras externes décrites dans la section 7.5.3.
- PEUT inclure des fonctionnalités (telles que l'autofocus, etc.) disponibles pour les caméras arrière, comme décrit dans la section 7.5.1.
Une caméra arrière est une caméra orientée vers l'extérieur qui peut être installée à n'importe quel endroit du véhicule et qui fait face à l'extérieur de son habitacle. Autrement dit, elle filme des scènes situées de l'autre côté de la carrosserie du véhicule, comme la caméra arrière.
Une caméra frontale est une caméra tournée vers l'utilisateur qui peut être située à n'importe quel endroit du véhicule et qui fait face à l'intérieur de l'habitacle du véhicule. En d'autres termes, elle affiche l'utilisateur, par exemple pour la visioconférence et des applications similaires.
Implémentations pour les appareils automobiles:
- [7.5/A-SR-1] Il est FORTEMENT RECOMMANDÉ d'inclure une ou plusieurs caméras orientées vers l'extérieur.
- PEUT inclure une ou plusieurs caméras orientées vers l'utilisateur.
- [7.5/A-SR-2] SONT FORTEMENT RECOMMANDÉS pour prendre en charge la diffusion simultanée de flux de plusieurs caméras.
Si les implémentations d'appareils automobiles incluent au moins une caméra orientée vers l'extérieur:
- [7.5/A-1-1] DOIT être orienté de sorte que la dimension longue de l'appareil photo s'aligne sur le plan X-Y des axes des capteurs automobiles Android.
- [7.5/A-SR-3] Il est FORTEMENT RECOMMANDÉ d'utiliser du matériel à mise au point fixe ou EDOF (Extended Depth of Field).
- [7.5/A-1-2] DOIT disposer de l'appareil photo principal orienté vers l'extérieur en tant qu'appareil photo orienté vers l'extérieur avec l'ID d'appareil photo le plus bas.
Si les implémentations d'appareils automobiles incluent au moins une caméra orientée vers l'utilisateur, voici comment procéder:
- [7.5/A-2-1] L'appareil photo principal destiné à l'utilisateur DOIT être celui dont l'ID d'appareil photo est le plus bas.
- PEUT être orienté de sorte que la dimension longue de l'appareil photo s'aligne sur le plan X-Y des axes des capteurs automobiles Android.
Si les implémentations d'appareils Android Automotive incluent un appareil photo accessible via l'API
android.hardware.Camera
ouandroid.hardware.camera2
, elles:- [7.5/A-3-1] DOIT respecter les exigences principales de la section 7.5 concernant les appareils photo.
Si les implémentations d'appareils Android Automotive incluent un appareil photo qui n'est pas accessible via l'API
android.hardware.Camera
ouandroid.hardware.camera2
, elles:- [7.5/A-4-1] DOIT être accessible via le service Extended View System.
Si les implémentations d'appareils automobiles incluent une ou plusieurs caméras accessibles via Extended View System Service, elles:
- [7.5/A-5-1] NE DOIT PAS pivoter ni dupliquer horizontalement l'aperçu de l'appareil photo.
- [7.5/A-SR-4] Il est FORTEMENT RECOMMANDÉ d'avoir une résolution d'au moins 1,3 mégapixel.
Si les implémentations d'appareils automobiles incluent une ou plusieurs caméras accessibles à la fois via le service Extended View System et l'API
android.hardware.Camera
ouandroid.hardware.Camera2
, les mesures suivantes s'appliquent:- [7.5/A-6-1] DOIT signaler le même ID de caméra.
Si les implémentations d'appareils automobiles fournissent une API d'appareil photo propriétaire, elles:
- [7.5/A-7-1] DOIT implémenter une telle API d'appareil photo à l'aide de l'API
android.hardware.camera2
ou de l'API Extended View System.
- [7.4
-
Voir la révision
Implémentations pour les appareils automobiles:
- [3.8/A-0-1] NE DOIT PAS autoriser les utilisateurs secondaires complets qui ne sont pas l'utilisateur actuel au premier plan à lancer des activités et à accéder à l'interface utilisateur sur n'importe quel écran.
-
Voir la révision
Si les implémentations d'appareils automobiles déclarent
android.hardware.microphone
, elles:- [9.8.2/A-1-1] DOIT afficher l'indicateur de micro lorsqu'une application accède aux données audio du micro, mais pas lorsqu'il n'est accessible que par
HotwordDetectionService
,SOURCE_HOTWORD
,ContentCaptureService
ou par des applications détenant les rôles décrits dans la section 9.1 avec l'identifiant CDD [C-4-X]. - [9.8.2/A-1-2] NE DOIT pas masquer l'indicateur de micro pour les applications système ayant des interfaces utilisateur visibles ou une interaction directe de l'utilisateur.
- [9.8.2/A-1-3] DOIT fournir une affordance à l'utilisateur pour activer/désactiver le micro dans l'application Paramètres.
Si les implémentations d'appareils automobiles déclarent
android.hardware.camera.any
, elles:- [9.8.2/A-2-1] DOIT afficher l'indicateur de l'appareil photo lorsqu'une application accède aux données en direct de l'appareil photo, mais pas lorsqu'elle n'est accessible que par une ou plusieurs applications détenant les rôles, comme indiqué dans la
section 9.1sur les autorisations avec l'identifiant CDD [C-4-X][C-3-X].
- [9.8.2/A-2-3] DOIT fournir une affordance à l'utilisateur pour activer/désactiver l'appareil photo dans l'application Paramètres.
- [9.8.2/A-2-4] DOIT afficher les applications récentes et actives utilisant l'appareil photo comme renvoyé par
PermissionManager.getIndicatorAppOpUsageData()
, avec tous les messages d'attribution qui leur sont associés.
Si les implémentations d'appareils disposent d'un écran de verrouillage sécurisé et incluent un ou plusieurs agents de confiance, qui implémentent l'API système
TrustAgentService
, ils:- [9.11.1/A-1-1] DOIT interroger l'utilisateur plus d'une fois toutes les 336 heures pour l'une des méthodes d'authentification principales recommandées (par exemple, code, schéma ou mot de passe).
- [9.8.2/A-1-1] DOIT afficher l'indicateur de micro lorsqu'une application accède aux données audio du micro, mais pas lorsqu'il n'est accessible que par
3. Logiciel
3.1. Compatibilité des API gérées:
Voir la révision
Implémentations pour les appareils:
- [C-0-8] NE DOIT PAS prendre en charge l'installation d'applications ciblant un niveau d'API inférieur à 23.
3.2.3.5. Intents d'application conditionnelles:
Voir la révision
Si les implémentations d'appareils signalent
android.hardware.nfc.uicc
ouandroid.hardware.nfc.ese
, elles:- [C-19-1] DOIT mettre en œuvre l'API Intent NfcAdapter.ACTION_TRANSACTION_DETECTED (sous la forme "EVT_TRANSACTION" définie par la spécification technique GSM Association TS.26 – Exigences relatives aux appareils NFC).
3.3.1. Interfaces binaires d'application:
Voir la révision
Implémentations pour les appareils:
- [C-0-12] DOIT exporter les symboles de fonction pour les symboles de fonction de base
Vulkan 1.0Vulkan 1.1, ainsi que les extensionsVK_KHR_surface
,VK_KHR_android_surface
,VK_KHR_swapchain
,VK_KHR_maintenance1
etVK_KHR_get_physical_device_properties2
via la bibliothèquelibvulkan.so
. Notez que bien que tous les symboles DOIVENT être présents, la section 7.1.4.2 décrit plus en détail les exigences liées à l'implémentation complète de chaque fonction correspondante.
- [C-0-12] DOIT exporter les symboles de fonction pour les symboles de fonction de base
-
Voir la révision
Si les implémentations d'appareils incluent un écran ou une sortie vidéo, ils:
- [C-1-5] DOIT générer des palettes de tons dynamiques à l'aide de styles de thème de couleur énumérés dans la documentation
Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
(voirandroid.theme.customization.theme_styles
), à savoirTONAL_SPOT
,VIBRANT
,EXPRESSIVE
,SPRITZ
,RAINBOW
,FRUIT_SALAD
etMONOCHROMATIC
.
- [C-1-5] DOIT générer des palettes de tons dynamiques à l'aide de styles de thème de couleur énumérés dans la documentation
-
Voir la révision
Si les implémentations d'appareils incluant la touche de navigation des fonctions récentes comme indiqué dans la section 7.2.3 modifient l'interface, elles:
- [C-1-2] DOIT implémenter le comportement d'épinglage d'écran et fournir à l'utilisateur un menu de paramètres pour activer/désactiver la fonctionnalité.
3.9.2 Prise en charge des profils gérés:
Voir la révision
Si les implémentations d'appareils déclarent
android.software.managed_users
, elles:- [C-1-10] DOIT s'assurer que les données de capture d'écran sont enregistrées dans l'espace de stockage du profil professionnel lorsqu'une capture d'écran est effectuée avec une fenêtre
topActivity
sélectionnée (celle avec laquelle l'utilisateur a interagi en dernier parmi toutes les activités) et appartenant à une application de profil professionnel. - [C-1-11] NE DOIT PAS capturer d'autres contenus d'écran (barre système, notifications ou contenu de profil personnel), à l'exception de la fenêtre/fenêtres de l'application du profil professionnel lors de l'enregistrement d'une capture d'écran dans le profil professionnel (pour garantir que les données de profil personnel ne sont pas enregistrées dans celui-ci).
- [C-1-10] DOIT s'assurer que les données de capture d'écran sont enregistrées dans l'espace de stockage du profil professionnel lorsqu'une capture d'écran est effectuée avec une fenêtre
3.9.5 Framework de résolution des règles relatives aux appareils: nouvelle section
Voir la révision
Si les implémentations d'appareils signalent
android.software.device_admin
ouandroid.software.managed_users
, alors:- [C-1-1] DOIT résoudre les conflits de règles relatives aux appareils, comme indiqué dans la documentation AOSP.
5. Compatibilité multimédia
-
Voir la révision
Les implémentations d'appareils DOIVENT prendre en charge l'encodage d'image suivant:
- [C-0-4] AVIF
- Les appareils doivent être compatibles avec
BITRATE_MODE_CQ
et le profil de référence.
- Les appareils doivent être compatibles avec
- [C-0-4] AVIF
-
Voir la révision
Les implémentations d'appareils DOIVENT prendre en charge le décodage de l'encodage d'image suivant:
[C-0-7] AVIF (profil de référence)
5.1.6. Détails des codecs image:
Voir la révision
Format/Codec Détails Types de fichiers/formats de conteneur acceptés JPEG Base+progressive JPEG (.jpg) GIF GIF (.gif) PNG PNG (.png) BMP BMP (.bmp) WebP WebP (.webp) Brute ARW (.arw), CR2 (.cr2), DNG (.dng), NEF (.nef), NRW (.nrw), ORF (.orf), PEF (.pef), RAF (.raf), RW2 (.rw2), SRW (.srw) HEIF Image, collection d'images, séquence d'images HEIF (.heif), HEIC (.heic) AVIF (Profil de référence) Image, collection d'images, profil de référence de la séquence d'images Conteneur HEIF (.avif) 5.1.8. Liste des codecs vidéo:
Voir la révision
Format/Codec Détails Types de fichiers/Formats de conteneur compatibles H.263 - 3GPP (0,3gp)
- MPEG-4 (.mp4)
- Matroska (.mkv, décodage uniquement)
H.264 AVC Pour en savoir plus, consultez les sections 5.2 et 5.3. - 3GPP (0,3gp)
- MPEG-4 (.mp4)
- MPEG-2 TS (.ts, impossible de rechercher)
- Matroska (.mkv, décodage uniquement)
HEVC H.265 Pour en savoir plus, consultez la section 5.3. - MPEG-4 (.mp4)
- Matroska (.mkv, décodage uniquement)
MPEG-2 Main Profile - MPEG2-TS (.ts, impossible de rechercher)
- MPEG-4 (.mp4, décodage uniquement)
- Matroska (.mkv, décodage uniquement)
MPEG-4 SP - 3GPP (0,3gp)
- MPEG-4 (.mp4)
- Matroska (.mkv, décodage uniquement)
VP8 Pour en savoir plus, consultez les sections 5.2 et 5.3. - WebM (.webm)
- Matroska (.mkv)
VP9 Pour en savoir plus, consultez la section 5.3. - WebM (.webm)
- Matroska (.mkv)
AV1 Pour en savoir plus, consultez la section 5.2 et la section 5.3. - MPEG-4 (.mp4)
- Matroska (.mkv, décodage uniquement)
5.1.10. Caractérisation du codec multimédia:
Voir la révision
Si les implémentations d'appareils sont compatibles avec les codecs vidéo:
- [C-2-1] Tous les codecs vidéo DOIVENT publier des données de fréquence d'images atteignables pour les tailles suivantes, si elles sont compatibles avec le codec:
SD (basse qualité) SD (haute qualité) HD – 720p HD – 1080p UHD Résolution vidéo - 176 x 144 px (H263, MPEG2, MPEG4)
- 352 x 288 px (encodeur MPEG4, H263, MPEG2)
- 320 x 180 px (VP8, VP8)
- 320 x 240 px (autre)
- 704 x 576 px (H263)
- 640 x 360 px (VP8, VP9)
- 640 x 480 px (encodeur MPEG4)
- 720 x 480 px (autre, AV1)
- 1408 x 1152 px (H263)
- 1 280 x 720 px (autre, AV1)
1 920 x 1 080 px (autres que MPEG4 et AV1) 3840 x 2160 px (HEVC, VP9, AV1) -
Voir la révision
Si les implémentations d'appareils sont compatibles avec n'importe quel encodeur vidéo et le mettent à la disposition d'applications tierces, celles-ci:- NE DOIT PAS être, sur deux fenêtres glissantes, plus de 15% du débit entre les intervalles intraframe (I-frame).
- NE DEVRAIT PAS dépasser 100% du débit sur une fenêtre glissante d'une seconde.
Si les implémentations d'appareils sont compatibles avec n'importe quel encodeur vidéo et le rendent disponible pour les applications tierces, et définissez
MediaFormat.KEY_BITRATE_MODE
surBITRATE_MODE_VBR
pour que l'encodeur fonctionne en mode à débit variable, le débit encodé n'affecte pas le prix minimal de qualité :[C-5-1] DOITNE DEVRAIT PAS être, sur une fenêtre glissante, supérieur à 15% par rapport au débit entre les intervalles intraframes (I-frame).[C-5-2] DOITNE DEVRAIT PAS dépasser 100% du débit sur une fenêtre glissante d'une seconde.
Si les implémentations d'appareils sont compatibles avec n'importe quel encodeur vidéo et le rendent disponible pour les applications tierces et définissent
MediaFormat.KEY_BITRATE_MODE
surBITRATE_MODE_CBR
pour que l'encodeur fonctionne en mode débit constant, le débit encodé:[C-6-1] DOIT[C-SR-2] est VIVEMENT RECOMMANDÉ de NE PAS dépasser 15% du débit cible sur une fenêtre glissante d'une seconde.
-
Voir la révision
Si les implémentations d'appareils sont compatibles avec les encodeurs H.263 et les mettent à la disposition des applications tierces, celles-ci:
- [C-1-1] DOIT prendre en charge la résolution QCIF (176 x 144) utilisant le niveau de profil de référence 45. La résolution SQCIF est facultative.
DEVRAIT accepter des débits configurables dynamiquement pour l'encodeur compatible.
-
Voir la révision
Si les implémentations d'appareils sont compatibles avec le codec H.265:
- [C-1-1] DOIT prendre en charge le profil principal de niveau 3 jusqu'à une résolution de 512 x 512.
DEVRAIT prendre en charge les profils d'encodage HD comme indiqué dans le tableau suivant.- [C-SR-1] est VIVEMENT RECOMMANDÉ pour prendre en charge le profil SD 720 x 480 et les profils d'encodage HD, comme indiqué dans le tableau suivant s'il existe un encodeur matériel.
5.2.6. AV1: nouvelle section
Voir la révision
Si les implémentations d'appareils sont compatibles avec le codec AV1:
- [C-1-1] DOIT prendre en charge le profil principal, y compris les contenus 8 bits et 10 bits.
[C-1-2] DOIT publier les données sur les performances, c'est-à-dire les rapports sur les performances via les API
getSupportedFrameRatesFor()
ougetSupportedPerformancePoints()
pour les résolutions acceptées du tableau ci-dessous.[C-1-3] DOIT accepter les métadonnées HDR et les envoyer dans le flux de bits.
Si l'encodeur AV1 est accéléré par le matériel:
- [C-2-1] DOIT accepter un profil d'encodage HD1080p compris dans le tableau ci-dessous:
SD HD – 720p HD – 1080p UHD Résolution vidéo 720 x 480 px 1280 x 720 px 1920 x 1080 px 3840 x 2160 px Fréquence d'images vidéo 30 ips 30 ips 30 ips 30 ips Débit vidéo 5 Mbit/s 8 Mbit/s 16 Mbit/s 50 Mbit/s -
Voir la révision
Si les implémentations d'appareils sont compatibles avec les décodeurs H.263:
- [C-1-1] DOIT être compatible avec les profils de référence de niveau 30 (résolutions CIF, QCIF et SQCIF à 30 FPS 384 kbit/s) et les niveaux 45 (résolutions QCIF et SQCIF à 30 FPS et 128 kbit/s).
-
Voir la révision
Si les implémentations d'appareils sont compatibles avec le codec AV1, ils:- [C-1-1] DOIT prendre en charge le profil 0, y compris le contenu 10 bits.
Si les implémentations d'appareils sont compatibles avec le codec AV1 et le mettent à la disposition d'applications tierces:
- [C-1-1] DOIT prendre en charge le profil principal, y compris les contenus 8 bits et 10 bits.
Si les implémentations d'appareils sont compatibles avec le codec AV1 avec un décodeur avec accélération matérielle, les systèmes suivants:
- [C-2-1] DOIT être capable de décoder au moins les profils de décodage vidéo HD 720p du tableau ci-dessous lorsque la hauteur indiquée par la méthode
Display.getSupportedModes()
est supérieure ou égale à 720p. - [C-2-2] DOIT être capable de décoder au moins les profils de décodage vidéo HD 1080p du tableau ci-dessous lorsque la hauteur indiquée par la méthode
Display.getSupportedModes()
est supérieure ou égale à 1 080p.
SD HD – 720p HD – 1080p UHD Résolution vidéo 720 x 480 px 1280 x 720 px 1920 x 1080 px 3840 x 2160 px Fréquence d'images vidéo 30 ips 30 ips 30 ips 30 ips Débit vidéo 5 Mbit/s 8 Mbit/s 16 Mbit/s 50 Mbit/s Si les implémentations d'appareils sont compatibles avec le profil HDR via les API multimédias, ils:
- [C-3-1] DOIT être compatible avec l'extraction et la sortie des métadonnées HDR à partir du flux de bits et/ou du conteneur.
- [C-3-2] DOIT afficher correctement le contenu HDR sur l'écran de l'appareil ou sur un port de sortie vidéo standard (HDMI, par exemple).
5.4.2. Capture pour la reconnaissance vocale:
Voir la révision
Si les implémentations d'appareils déclarent
android.hardware.microphone
, elles:- DEVRAIT définir la sensibilité d'entrée audio de sorte qu'une source à tonalités sinusoïdales de 1 000 Hz lue à 90 dB/échantillons de pression acoustique (SPL) à 90 dB/échantillons SPL (mesurés à
une distance de 30 cmà côté du micro) produise une réponse idéale de RMS 2 500 à une plage de 1 770 ou 35 dB/d-2 d'échantillons de 1 000 à 1 770 dB/2.
- DEVRAIT définir la sensibilité d'entrée audio de sorte qu'une source à tonalités sinusoïdales de 1 000 Hz lue à 90 dB/échantillons de pression acoustique (SPL) à 90 dB/échantillons SPL (mesurés à
-
Voir la révision
Si les implémentations d'appareils déclarent la fonctionnalité
android.hardware.audio.output
, elles:- [C-1-4] DOIT prendre en charge les effets audio avec des entrées et sorties à virgule flottante.
- [C-1-5] DOIT s'assurer que les effets audio sont compatibles avec plusieurs canaux jusqu'au nombre de canaux du mélangeur, également appelé FCC_LIMIT.
-
Voir la révision
Si les implémentations d'appareils déclarent
android.hardware.audio.output
, il est VIVEMENT RECOMMANDÉ de respecter ou de dépasser les exigences suivantes:- [C-SR-4] Le code temporel de sortie renvoyé par AudioTrack.getTimestamp et
AAudioStream_getTimestamp
est précis à +/- 1 ms.
- [C-SR-4] Les latences aller-retour calculées en fonction des horodatages d'entrée et de sortie renvoyés par
AAudioStream_getTimestamp
sont FORTEMENT RECOMMANDÉES de se trouver à 30 ms de la latence aller-retour mesurée pourAAUDIO_PERFORMANCE_MODE_NONE
etAAUDIO_PERFORMANCE_MODE_LOW_LATENCY
pour les haut-parleurs, ainsi que les casques filaires et sans fil.
- [C-SR-4] Le code temporel de sortie renvoyé par AudioTrack.getTimestamp et
7. Compatibilité matérielle
-
Voir la révision
Android inclut des fonctionnalités qui ajustent automatiquement les éléments d'application et la mise en page de l'interface utilisateur en fonction de l'appareil afin de s'assurer que les applications tierces s'exécutent correctement sur
différentes configurations matérielles. Un écran compatible avec Android est un écran qui implémente tous les comportements et les API décrits dans la section Développeurs Android – Présentation de la compatibilité des écrans, dans cette section (7.1) et dans ses sous-sections, ainsi que sur tout comportement supplémentaire spécifique au type d'appareil décrit dans la section 2 de ce CDD.Sur les écrans compatibles Android sur lesquels toutes les applications tierces compatibles Android peuvent s'exécuter, les implémentations d'appareils DOIVENT implémenter ces API et ces comportements correctement, comme indiqué dans cette section.Commencer les nouvelles exigences
Implémentations pour les appareils:
- [C-0-1] DOIT, par défaut, n'afficher les applications tierces que sur les écrans compatibles avec Android.
Les unités référencées par les exigences de cette section sont définies comme suit:
- taille physique en diagonale. Distance en pouces entre deux coins opposés de la partie éclairée de l'écran.
densité de points par pouce (ppp). Nombre de pixels englobés par une étendue linéaire horizontale ou verticale de 1 pouce, exprimé en pixels par pouce (ppp ou dpi). Lorsque des valeursdpippi et dpi sont indiquées, les dpi horizontal et vertical doivent être compris dans la plage listée.- format. Rapport entre le nombre de pixels de la dimension la plus longue et la dimension la plus courte de l'écran. Par exemple, un affichage de 480 x 854 pixels serait 854/480 = 1,779, soit approximativement "16:9".
- pixel indépendant de la densité (dp).
L'unitéA de pixels virtuels normalisée sur unedensité d'écran de 160 pppde 160. Pour une densité d et un nombre de pixels p, le nombre de pixels indépendants de la densité est calculé comme suit:pixels = dps * (densité/160)dp = (160 / d) * p .
7.1.1.1. Taille et forme de l'écran:
Voir la révision
Si les implémentations d'appareils sont compatibles avec les écrans compatibles avec la configuration de taille
UI_MODE_TYPE_NORMAL
etincluent une compatibilité avec Android, utilisent des écrans physiques aux coins arrondis pour afficher ces écrans:- [C-1-1] DOIT s'assurer qu'au moins l'une des exigences suivantes est satisfaite pour chaque écran de ce type:
- Le rayon des angles arrondis est inférieur ou égal à 38 dp.
Lorsqu'une zone de 15 dp par 15 dp est ancrée à chaque coin de l'affichage logique, au moins un pixel de chaque zone est visible à l'écran.
DEVRAIT inclure l' affordance de l'utilisateur pour passer au mode d'affichage avec les coins rectangulaires.
Commencer les nouvelles exigences
Si les implémentations d'appareils ne peuvent configurer que le clavier
NO_KEYS
et ont l'intention de signaler la prise en charge de la configuration du mode d'interface utilisateurUI_MODE_TYPE_NORMAL
, elles:- [C-4-1] DOIT disposer d'une mise en page d'au moins 596 dp x 384 dp, sans encoches, ou plus.
Si les implémentations d'appareils incluent un ou plusieurs écrans pliables compatibles avec Android, ou qui incluent une charnière pliable entre plusieurs écrans et permettent à ces écrans d'afficher des applications tierces:
- [C-2-1] DOIT implémenter la dernière version stable disponible de l'API Extensions ou de la version stable de l'API side-car qui sera utilisée par la bibliothèque Window Manager Jetpack.
Si les implémentations d'appareils incluent un écran pliable compatible avec Android ou une charnière pliable entre plusieurs écrans, et si la charnière ou le pli traverse une fenêtre d'application en plein écran, ils:
- [C-3-1] DOIT indiquer à l'application la position, les limites et l'état de la charnière ou du pli via les extensions ou les API side-car.
Si les implémentations d'appareils incluent une ou plusieurs zones d'affichage pliables compatibles avec Android, ou incluent une charnière pliable entre plusieurs zones d'affichage compatibles avec Android et mettent ces zones d'affichage à la disposition des applications, elles:
- [C-4-1] DOIT implémenter la version correcte du niveau d'API Window Manager Extensions, comme décrit dans la documentation à venir.
7.1.1.2. Format de l'écran: supprimé
-
Voir la révision
Implémentations des appareils:
- [C-0-1]
Par défaut, les implémentations d'appareilsDOIVENT indiqueruniquementl'une des densités du framework Android listées surDisplayMetrics
via l'APIDENSITY_DEVICE_STABLE
, et cette valeur doit être une valeur statique pour chaque écran physiqueNE DOIT PAS changer à tout moment.touteDisplayMetrics.density
- Les implémentations d'appareils DOIVENT définir la densité du framework Android standard qui est numériquement la plus proche de la densité physique de l'écran, sauf si cette densité logique pousse la taille d'écran indiquée en dessous de la taille minimale prise en charge. Si la densité du framework Android standard la plus proche numériquement de la densité physique se traduit par une taille d'écran inférieure à la plus petite taille d'écran compatible compatible (largeur de 320 dp), les implémentations d'appareils DOIVENT indiquer la deuxième densité de framework standard Android la plus basse.
Commencer les nouvelles exigences
- DEVRAIT définir la densité standard du framework Android qui est numériquement la plus proche de la densité physique de l'écran, ou une valeur correspondant aux mêmes mesures de champ de vision angulaire équivalentes qu'un appareil portable.
Si les implémentations d'appareils offrent
une affordancede modifier la taille d'affichage de l'appareil, elles:- [C-1-1]
La taille de l'écran NE DOIT PAS être mise à l'échelleNE DOIT PAS augmenter la taille de l'écran au-delà de 1,5 fois laDENSITY_DEVICE_STABLE
densité nativeou produire une dimension d'écran minimale effective inférieure à 320 dp (équivalent au qualificatif de ressource sw320dp), selon la première éventualité. - [C-1-2]
La taille de l'écran NE DOIT PAS être mise à l'échelleNE DOIT PAS être mise à l'échelle de moins de 0,85 fois ladensité d'origineDENSITY_DEVICE_STABLE
.
- [C-0-1]
-
Voir la révision
Si les implémentations d'appareils sont compatibles avec Vulkan
1.0 ou version ultérieure, elles:[C-1-3] DOIT mettre en œuvre complètement les API
Vulkan 1.0Vulkan 1.1 pour chaqueVkPhysicalDevice
énuméré.[C-1-5] NE DOIT PAS énumérer les couches fournies par les bibliothèques en dehors du package d'application, ni fournir d'autres moyens de traçage ou d'interception de l'API Vulkan, sauf si l'attribut
android:debuggable
de l'application est défini surtrue
ou si les métadonnéescom.android.graphics.injectLayers.enable
sont définies surtrue
.
- DEVRAIT prendre en charge
VkPhysicalDeviceProtectedMemoryFeatures
etVK_EXT_global_priority
.
- [C-1-13] DOIT respecter les exigences spécifiées dans le profil Android Baseline 2021.
[C-SR-5] Il est FORTEMENT RECOMMANDÉ de prendre en charge
VkPhysicalDeviceProtectedMemoryFeatures.protectedMemory
etVK_EXT_global_priority
.[C-SR-6] Il est FORTEMENT RECOMMANDÉ d'utiliser
SkiaVk
avec HWUI.
Si les implémentations d'appareils sont compatibles avec Vulkan 1.1 et qu'elles déclarent l'un des flags de fonctionnalité Vulkan décrits ici , elles:
- [C-SR-7] Il est FORTEMENT RECOMMANDÉ de mettre l'extension
VK_KHR_external_fence_fd
à la disposition des applications tierces et de permettre à l'application d'exporter la charge utile de clôture vers et d'importer la charge utile de clôture à partir de descripteurs de fichiers POSIX, comme décrit ici.
7.3.10. Capteurs biométriques:
Voir la révision
Si les appareils disposent de plusieurs capteurs biométriques, ils:
[C-7-1] DOIT, lorsqu'une biométrie est bloquée (c'est-à-dire que l'authentification biométrique est désactivée jusqu'à ce que l'utilisateur se déverrouille avec l'authentification principale) ou qu'elle soit temporairement désactivée jusqu'à ce que l'utilisateur attende un intervalle de temps en raison d'un trop grand nombre de tentatives infructueuses, verrouille également toutes les autres biométries d'une classe biométrique inférieure. Dans le cas d'un verrouillage temporalisé, l'intervalle entre les tentatives pour la validation biométrique DOIT être l'intervalle maximal entre les tentatives de toutes les données biométriques dans le verrouillage temporel.
[C-SR-12] Sont FORTEMENT RECOMMANDÉS lorsqu'une biométrie est bloquée (c'est-à-dire qu'elle est désactivée jusqu'à ce que l'utilisateur se déverrouille avec l'authentification principale) ou qu'elle soit limitée dans le temps (la biométrie est temporairement désactivée jusqu'à ce que l'utilisateur attende un intervalle de temps) en raison d'un trop grand nombre de tentatives infructueuses, pour verrouiller également toutes les autres données biométriques de la même classe biométrique. Dans le cas d'un verrouillage à durée limitée, l'intervalle entre les tentatives pour la validation biométrique est VIVEMENT RECOMMANDÉ de correspondre à l'intervalle maximal entre les tentatives pour toutes les données biométriques dans le verrouillage temporel.
[C-7-2] DOIT inviter l'utilisateur à effectuer l'authentification principale recommandée (par exemple, code, schéma ou mot de passe) afin de réinitialiser le compteur de verrouillage pour une biométrie verrouillée. La biométrie de classe 3 PEUT être autorisée à réinitialiser le compteur de verrouillage pour une biométrie verrouillée de classe identique ou inférieure. Les biométries de classe 2 ou de classe 1 NE DOIVENT PAS être autorisées à effectuer une opération de verrouillage de réinitialisation pour les données biométriques.
Si les implémentations d'appareils souhaitent traiter un capteur biométrique en tant que classe 1 (anciennement commodité), procédez comme suit:
[C-1-12] DOIT avoir un taux d'acceptation de spoof et d'imposteur ne dépassant pas 40 % par espèce d'instrument d'attaque de présentation (PAI), tel que mesuré par les protocoles de test biométrique Android.
[C-SR-13] Il est FORTEMENT RECOMMANDÉ de définir un taux d'acceptation du spoof et de l'imposteur ne dépassant pas 30% par espèce d'instrument d'attaque de présentation (PAI), tel que mesuré par les protocoles de test biométrique Android.
[C-SR-14] Il est FORTEMENT RECOMMANDÉ de divulguer la classe biométrique du capteur biométrique et les risques associés à son activation.
[C-SR-17] Il est FORTEMENT RECOMMANDÉ d'implémenter les nouvelles interfaces AIDL (telles que
IFace.aidl
etIFingerprint.aidl
).
Si les implémentations d'appareils souhaitent traiter un capteur biométrique en tant que classe 2 (anciennement Faible), procédez comme suit:
- [C-SR-15] Il est FORTEMENT RECOMMANDÉ de définir un taux d'acceptation du spoof et de l'imposteur ne dépassant pas 20% par espèce d'instrument d'attaque de présentation (PAI), tel que mesuré par les protocoles de test biométrique Android.
- [C-2-3] DOIT effectuer la mise en correspondance biométrique dans un environnement d'exécution isolé en dehors de l'espace utilisateur ou du noyau Android, tel que l'environnement d'exécution sécurisé (TEE)
ousur une puce dotée d'un canal sécurisé vers l'environnement d'exécution isolé ou sur une machine virtuelle protégée répondant aux exigences de la section 9.17. - [C-2-4] DOIT faire en sorte que toutes les données identifiables soient chiffrées et authentifiées de manière cryptographique de sorte qu'elles ne puissent pas être acquises, lues ou modifiées en dehors de l'environnement d'exécution isolé ou d'une puce dotée d'un canal sécurisé vers l'environnement d'exécution isolé, comme indiqué dans les consignes d'implémentation du site du projet Android Open Source ou une machine virtuelle protégée contrôlée par un hyperviseur qui répond aux exigences de la section 9.17.
- [C-2-5] Pour la biométrie basée sur l'appareil photo, alors que l'authentification ou l'enregistrement biométriques sont en cours :
- DOIT utiliser la caméra dans un mode qui empêche la lecture ou la modification des trames de caméra en dehors de l'environnement d'exécution isolé, une puce dotée d'un canal sécurisé vers l'environnement d'exécution isolé ou une machine virtuelle protégée contrôlée par un hyperviseur qui répond aux exigences de la section 9.17.
- Pour les solutions RVB à caméra unique, les images de la caméra PEUVENT être lisibles en dehors de l'environnement d'exécution isolé pour permettre des opérations telles que l'aperçu pour l'enregistrement, mais elles NE DOIVENT EN AUCUN CAS être modifiables.
- [C-2-7] NE DOIT PAS permettre un accès non chiffré aux données biométriques identifiables ni aux données qui en sont dérivées (telles que les représentations vectorielles continues) pour le processeur d'application en dehors du contexte du TEE ou de la machine virtuelle protégée contrôlée par un hyperviseur qui répond aux exigences de la section 9.17. La mise à niveau des appareils lancés sous Android 9 ou une version antérieure ne sont pas exemptées de l'autorisation C-2-7.
Si les implémentations d'appareils souhaitent traiter un capteur biométrique en tant que classe 3 (anciennement Strong), elles:
- [C-SR-16] Il est FORTEMENT RECOMMANDÉ de définir un taux d'acceptation par spoof et par imposteur d'un maximum de 7% par espèce d'instrument d'attaque de présentation (PAI), tel que mesuré par les protocoles de test biométrique Android.
7.3.13. IEEE 802.1.15.4 (UWB):
Voir la révision
Si les implémentations d'appareils prennent en charge la norme 802.1.15.4 et exposent la fonctionnalité à une application tierce, elles:
- [C-1-2] DOIT signaler le flag de fonctionnalité matérielle
android.hardware.uwb
. - [C-1-3] DOIT être compatible avec tous les ensembles de configuration suivants (combinaisons prédéfinies de paramètres FIRA UCI) définis dans la mise en œuvre d'AOSP.
CONFIG_ID_1
: mesure de laSTATIC STS DS-TWR
unicast définie par FiRa, mode différé, intervalle de 240 ms.CONFIG_ID_2
: mesure de la plageSTATIC STS DS-TWR
un à plusieurs définie par FiRa, mode différé, intervalle de 200 ms. Cas d'utilisation typique: un smartphone interagit avec de nombreux appareils connectés.CONFIG_ID_3
: identique àCONFIG_ID_1
, sauf que les données sur l'angle d'arrivée ne sont pas consignées.CONFIG_ID_4
: identique àCONFIG_ID_1
, sauf que le mode de sécurité P-STS est activé.CONFIG_ID_5
: identique àCONFIG_ID_2
, sauf que le mode de sécurité P-STS est activé.CONFIG_ID_6
: identique àCONFIG_ID_3
, sauf que le mode de sécurité P-STS est activé.CONFIG_ID_7
: identique àCONFIG_ID_2
, sauf que le mode de clé de contrôle individuel P-STS est activé.
- [C-1-4] DOIT fournir une affordance utilisateur pour permettre à l'utilisateur d'activer/de désactiver la radio UWB.
- [C-1-5] DOIT faire en sorte que les applications utilisant la radio UWB détiennent l'autorisation
UWB_RANGING
(sous le groupe d'autorisationsNEARBY_DEVICES
).
Le fait de réussir les tests de conformité et de certification pertinents définis par les organisations standards, y compris FIRA, CCC et CSA, permet de s'assurer que la norme 802.1.15.4 fonctionne correctement.
- [C-1-2] DOIT signaler le flag de fonctionnalité matérielle
-
Voir la révision
Le terme "Téléphonie" utilisé par les API Android et ce document fait spécifiquement référence au matériel permettant de passer des appels vocaux et d'envoyer des SMS, ou d'établir des données mobiles via un réseau mobile (GSM, CDMA, LTE, NR, par exemple) GSM ou CDMA. Un appareil compatible avec la téléphonie peut choisir de proposer tout ou partie des services d'appel, de messagerie et de données selon le produit.
via un réseau GSM ou CDMA. Bien que ces appels vocaux puissent être ou non commutés de paquets,ils sont considérés comme indépendants de toute connectivité de données pouvant être implémentée à l'aide du même réseau aux fins d'Android. En d'autres termes,la fonctionnalité de téléphonie et les API Android se réfèrent spécifiquement aux appels vocaux et aux SMS. Par exemple, les implémentations d'appareils qui ne peuvent pas passer d'appels ni envoyer/recevoir des SMS ne sont pas considérées comme des appareils de téléphonie, qu'elles utilisent ou non un réseau mobile pour la connectivité des données. -
Voir la révision
Si les implémentations d'appareils sont compatibles avec la norme 802.11 et exposent la fonctionnalité à une application tierce, elles:
- [C-1-4] DOIT prendre en charge le multicast DNS (mDNS) et NE DOIT PAS filtrer les paquets mDNS (224.0.0.251 ou ff02::fb) à tout moment du fonctionnement, y compris lorsque l'écran n'est pas actif, à moins que la suppression ou le filtrage de ces paquets ne soit nécessaire pour rester dans les plages de consommation d'énergie requises par les exigences réglementaires applicables au marché cible.
Pour les implémentations d'appareils Android Television, même en mode veille.
- [C-1-4] DOIT prendre en charge le multicast DNS (mDNS) et NE DOIT PAS filtrer les paquets mDNS (224.0.0.251 ou ff02::fb) à tout moment du fonctionnement, y compris lorsque l'écran n'est pas actif, à moins que la suppression ou le filtrage de ces paquets ne soit nécessaire pour rester dans les plages de consommation d'énergie requises par les exigences réglementaires applicables au marché cible.
-
Voir la révision
Si les implémentations d'appareils déclarent FEATURE_BLUETOOTH_LE, elles:
- [C-SR-2] Il est FORTEMENT RECOMMANDÉ de mesurer et de compenser le décalage Rx pour s'assurer que le RSSI BLE médian est de -60 dBm +/-10 dB à 1 m de distance d'un appareil de référence transmettant à
ADVERTISE_TX_POWER_HIGH
, où les appareils sont orientés de sorte qu'ils se trouvent sur des "plans parallèles" avec des écrans orientés dans la même direction. - [C-SR-3] Il est FORTEMENT RECOMMANDÉ de mesurer et de compenser le décalage Tx pour s'assurer que le RSSI BLE médian est de -60 dBm à +/-10 dB lors de la recherche depuis un appareil de référence situé à 1 m de distance et en transmettant à
ADVERTISE_TX_POWER_HIGH
, où les appareils sont orientés de sorte qu'ils se trouvent sur des "plans parallèles" avec des écrans orientés dans la même direction.
- [C-10-3] DOIT mesurer et compenser le décalage Rx pour s'assurer que le RSSI BLE médian est de -55 dBm à +/-10 dB à 1 mètre d'un appareil de référence transmettant à
ADVERTISE_TX_POWER_HIGH
. - [C-10-4] DOIT mesurer et compenser le décalage Tx pour s'assurer que le RSSI BLE médian est de -55 dBm à +/-10 dB lors du balayage depuis un appareil de référence situé à 1 m de distance et en transmettant à
ADVERTISE_TX_POWER_HIGH
.
Si les implémentations d'appareils sont compatibles avec la version Bluetooth 5.0, ils:
- [C-SR-4] Il est FORTEMENT RECOMMANDÉ de fournir une assistance dans les domaines suivants:
- LE 2M PHY
- LE Codec PHY
- Extension LE Advertising Extension
- Publicité périodique
- Au moins 10 ensembles d'annonces
- Au moins huit connexions LE simultanées. Chaque connexion peut appartenir à l'un ou l'autre des rôles de topologie de connexion.
- Confidentialité de la couche de liaison LE
- Une "liste de résolution" d'au moins huit entrées
- [C-SR-2] Il est FORTEMENT RECOMMANDÉ de mesurer et de compenser le décalage Rx pour s'assurer que le RSSI BLE médian est de -60 dBm +/-10 dB à 1 m de distance d'un appareil de référence transmettant à
-
Voir la révision
- [C-1-7] DOIT s'assurer que la médiane des mesures de distance à 1 m de l'appareil de référence se situe dans les limites de [0,75 m, 1,25 m], où la distance de vérité terrain est mesurée à partir du bord supérieur de l'appareil testé.
Tenir la tête vers le haut et incliner la caméra à 45 degrés
- [C-1-7] DOIT s'assurer que la médiane des mesures de distance à 1 m de l'appareil de référence se situe dans les limites de [0,75 m, 1,25 m], où la distance de vérité terrain est mesurée à partir du bord supérieur de l'appareil testé.
-
Voir la révision
Une caméra arrière est une caméra située sur le côté de l'appareil, en face de l'écran, c'est-à-dire des scènes à l'arrière de l'appareil, comme un appareil photo traditionnel.
Une caméra arrière est une caméra orientée vers l'extérieur qui capture des scènes de l'autre côté de l'appareil, comme une caméra traditionnelle. Sur les appareils portables, il s'agit d'une caméra située sur le côté de l'appareil, en face de l'écran.
-
Voir la révision
Une caméra frontale est une caméra située du même côté de l'appareil que l'écran, c'est-à-dire une caméra généralement utilisée pour créer une image de l'utilisateur, par exemple pour la visioconférence et des applications similaires.
Une caméra frontale est une caméra orientée vers l'utilisateur qui est généralement utilisée pour créer une image de l'utilisateur, par exemple pour la visioconférence et des applications similaires. Sur les appareils portables, il s'agit d'une caméra située du même côté de l'appareil que l'écran.
-
Voir la révision
Une caméra externe est une caméra qui peut être connectée physiquement ou détachée de la mise en œuvre de l'appareil à tout moment et orientée dans n'importe quelle direction, comme une caméra USB.
7.5.4. Comportement de l'API Camera:
Voir la révision
Les implémentations d'appareils DOIVENT implémenter les comportements suivants pour les API liées aux caméras, pour toutes les caméras disponibles. Implémentations pour les appareils:
- [C-SR-1] Pour les appareils dotés de plusieurs caméras RVB à proximité et orientées dans la même direction, il est FORTEMENT RECOMMANDÉ de prendre en charge un appareil photo logique qui répertorie les fonctionnalités
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
, qui se composent de toutes les caméras RVB orientées dans cette direction en tant que sous-appareils physiques.
- [C-SR-1] Pour les appareils dotés de plusieurs caméras RVB à proximité et orientées dans la même direction, il est FORTEMENT RECOMMANDÉ de prendre en charge un appareil photo logique qui répertorie les fonctionnalités
7.5.5. Orientation de l'appareil photo:
Voir la révision
Les appareils qui répondent à tous les critères suivants sont exemptés de l'exigence ci-dessus:
- Les implémentations d'appareils qui ne peuvent pas faire l'objet d'une rotation par l'utilisateur, comme les appareils automobiles.
-
Voir la révision
Les appareils destinés à être portés ou à la main peuvent inclure un actionneur haptique à usage général, disponible pour des applications permettant par exemple d'attirer l'attention par le biais de sonneries, d'alarmes, de notifications et de retour tactile général.
Si les implémentations d'appareils N'incluent PAS un tel actionneur haptique à usage général, celles-ci:
- [7.10/C] DOIT renvoyer la valeur "false" pour
Vibrator.hasVibrator()
.
Si les implémentations d'appareils intègrent au moins un actionneur haptique à usage général, elles:
- [C-1-1] DOIT renvoyer la valeur "true" pour
Vibrator.hasVibrator()
. - NE DOIT PAS utiliser d'actionneur haptique (vibreur) à masse rotative excentrique.
- DEVRAIT implémenter toutes les constantes publiques pour les éléments haptiques clairs dans
android.view.HapticFeedbackConstants
, à savoir (CLOCK_TICK
,CONTEXT_CLICK
,KEYBOARD_PRESS
,KEYBOARD_RELEASE
,KEYBOARD_TAP
,LONG_PRESS
,TEXT_HANDLE_MOVE
,VIRTUAL_KEY
,VIRTUAL_KEY_RELEASE
,CONFIRM
,REJECT
,GESTURE_START
etGESTURE_END
). - DEVRAIT implémenter toutes les constantes publiques pour les éléments haptiques clairs dans
android.os.VibrationEffect
, à savoir (EFFECT_TICK
,EFFECT_CLICK
,EFFECT_HEAVY_CLICK
etEFFECT_DOUBLE_CLICK
) et toutes les constantesPRIMITIVE_*
publiques réalisables pour les valeurs haptiques riches dansandroid.os.VibrationEffect.Composition
, à savoir (CLICK
,TICK
,LOW_TICK
,LOW_TICK
,LOW_TICK
,LOW_TICK
,LOW_TICK
, {2/primitives/primitives},LOW_TICK
, {2/primitives/primitives} uniquement pour les {2/primitives/primaires} publiques}QUICK_FALL
QUICK_RISE
SLOW_RISE
SPIN
SPIN
THUD
- DEVRAIT suivre les conseils pour mapper des constantes publiques dans
android.view.HapticFeedbackConstants
aux constantesandroid.os.VibrationEffect
recommandées, avec les relations d'amplitude correspondantes. - DEVRAIT utiliser ces mappages de constantes haptiques associées.
- DEVRAIT suivre l'évaluation de la qualité pour les API
createOneShot()
etcreateWaveform()
. - DEVRAIT vérifier que le résultat de l'API publique
android.os.Vibrator.hasAmplitudeControl()
reflète correctement les capacités de leur vibreur. - DEVRAIT vérifier les capacités d'évolutivité de l'amplitude en exécutant
android.os.Vibrator.hasAmplitudeControl()
.
Si les implémentations d'appareils suivent le mappage des constantes haptiques, elles:
- DEVRAIT vérifier l'état de l'implémentation en exécutant les API
android.os.Vibrator.areAllEffectsSupported()
etandroid.os.Vibrator.arePrimitivesSupported()
. - DEVRAIT effectuer une évaluation de la qualité des constantes haptiques.
- DEVRAIT vérifier et mettre à jour, si nécessaire, la configuration de remplacement pour les primitives non compatibles, comme décrit dans les instructions d'implémentation pour les constantes.
- DEVRAIT fournir une assistance de remplacement pour atténuer le risque de défaillance, comme décrit ici.
Consultez la section 2.2.1 pour connaître les exigences spécifiques à chaque appareil.
- [7.10/C] DOIT renvoyer la valeur "false" pour
9. Compatibilité des modèles de sécurité
-
Voir la révision
Implémentations pour les appareils:
- [C-0-4] DOIT comporter une seule et unique implémentation des deux interfaces utilisateur.
Si les implémentations d'appareils préinstallent les packages qui possèdent l'un des rôles System UI Intelligence, System Ambient Audio Intelligence, System Audio Intelligence, System Notification Intelligence, System Text Intelligence ou System Visual Intelligence, les packages:
- [C-4-1] DOIT respecter toutes les exigences décrites dans les sections
"9.8.6 Capture de contenu""9.8.6 Données ambiantes et au niveau du système d'exploitation" et 9.8.15 Implémentations de l'API en bac à sable 9.8.15.
- [C-4-2] NE DOIT PAS disposer de l'autorisation android.permission.INTERNET. Ceci est plus strict que les recommandations FORTEMENT RECOMMANDÉES figurant dans la section 9.8.6.
- [C-4-3] NE DOIT PAS être lié à d'autres applications, à l'exception des applications système suivantes : Bluetooth, Contacts, Media, Telephony, SystemUI et les composants fournissant des API Internet. Cette valeur est plus stricte que les recommandations FORTEMENT RECOMMANDÉES répertoriées dans la section 9.8.6.
Si les implémentations d'appareils incluent une application par défaut compatible avec
VoiceInteractionService
, elles:- [C-5-1] NE DOIT PAS accorder
ACCESS_FINE_LOCATION
comme valeur par défaut pour cette application.
9.5. Compatibilité multi-utilisateur:
Voir la révision
Si les implémentations d'appareils créent le profil utilisateur supplémentaire décrit ci-dessus, ils:
- [C-4-5] DOIT distinguer visuellement les icônes d'application à double instance lorsqu'elles sont présentées aux utilisateurs.
- [C-4-6] DOIT fournir une affordance d'utilisateurs pour supprimer l'intégralité des données de profil du clone.
- [C-4-7] DOIT désinstaller toutes les applications de clonage, supprimer les répertoires de données d'applications privées et leur contenu, et supprimer les données de profil du clonage lorsque l'utilisateur choisit de supprimer l'intégralité des données du profil de clonage.
- DEVRAIT inviter l'utilisateur à supprimer l'intégralité des données du profil de clonage lorsque la dernière application clone sera supprimée.
- [C-4-8] DOIT informer l'utilisateur que les données de l'application seront supprimées lorsque l'application clone sera désinstallée, ou leur proposer de conserver ces données lorsque celle-ci sera désinstallée de l'appareil.
- [C-4-9] DOIT supprimer les répertoires de données d'application privées et leur contenu lorsque l'utilisateur choisit de supprimer les données lors de la désinstallation.
[C-4-1] DOIT permettre aux applications de l'utilisateur principal de l'appareil de gérer les intents ci-dessous provenant du profil supplémentaire:
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] DOIT hériter de toutes les restrictions utilisateur liées aux règles relatives aux appareils et des restrictions sélectionnées pour les non-utilisateurs(liste ci-dessous) appliquées à l'utilisateur principal de l'appareil à ce profil utilisateur supplémentaire.
[C-4-3] DOIT autoriser uniquement l'écriture de contacts à partir de ce profil supplémentaire via les intents suivants:
[C-4-4] NE DOIT PAS avoir de synchronisations de contacts en cours d'exécution pour les applications exécutées dans ce profil utilisateur supplémentaire.
- [C-4-14] DOIT disposer d'une gestion distincte des autorisations et de l'espace de stockage pour les applications exécutées dans ce profil supplémentaire
- [C-4-5] DOIT autoriser uniquement les applications du profil supplémentaire ayant une activité de lanceur d'applications à accéder aux contacts déjà accessibles au profil utilisateur parent.
9.7. Fonctionnalités de sécurité:
Voir la révision
Une technologie de sécurité de la mémoire est une technologie qui atténue au moins les classes de bugs suivantes avec une probabilité élevée (supérieure à 90%) dans les applications qui utilisent l'option de fichier manifeste
android:memtagMode
:- Débordement de la mémoire tampon du tas de mémoire
- utiliser après libération
- double sans frais
- Wild free (sans pointeur non malloc)
Implémentations pour les appareils:
- [C-SR-15] Il est FORTEMENT RECOMMANDÉ de définir
ro.arm64.memtag.bootctl_supported
.
Si les implémentations d'appareils définissent la propriété système
ro.arm64.memtag.bootctl_supported
sur "true", elles:[C-3-1] DOIT autoriser la propriété système
arm64.memtag.bootctl
à accepter une liste des valeurs suivantes séparées par une virgule, avec l'effet souhaité appliqué au prochain redémarrage suivant:memtag
: une technologie de sécurité de la mémoire telle que définie ci-dessus est activée.memtag-once
: une technologie de sécurité de la mémoire telle que définie ci-dessus est activée temporairement et est automatiquement désactivée au prochain redémarrage.memtag-off
: une technologie de sécurité de la mémoire telle que définie ci-dessus est désactivée.
[C-3-2] DOIT autoriser l'utilisateur shell à définir
arm64.memtag.bootctl
.[C-3-3] DOIT autoriser tout processus à lire
arm64.memtag.bootctl
.[C-3-4] DOIT définir
arm64.memtag.bootctl
sur l'état actuellement demandé au démarrage. Il DOIT également mettre à jour la propriété si l'implémentation de l'appareil permet de modifier l'état sans modifier la propriété système.[C-SR-16] Il est FORTEMENT RECOMMANDÉ d'afficher un paramètre pour les développeurs qui définit la memtag unique et redémarre l'appareil. Avec un bootloader compatible, le projet Android Open Source répond aux exigences ci-dessus via le protocole de bootloader MTE.
- [C-SR-17] Il est FORTEMENT RECOMMANDÉ d'afficher un paramètre permettant à l'utilisateur d'activer
memtag
dans le menu "Security Settings" (Paramètres de sécurité).
-
Voir la révision
Implémentations pour les appareils:
- [C-0-2] DOIT afficher un avertissement utilisateur et obtenir le consentement explicite de l'utilisateur permettant la capture d'informations sensibles affichées sur l'écran de l'utilisateur
qui inclut exactement le même message qu'AOSPà chaque foisà chaque session de capture de l'écrancasting or (diffusion ou enregistrement d'écran)est activé via les API propriétaires.MediaProjection.createVirtualDisplay()
VirtualDeviceManager.createVirtualDisplay()
NE DOIT PAS fournir aux utilisateurs une affordance leur permettant de désactiver l'affichage futur du consentement de l'utilisateur.
[C-SR-1] Il est FORTEMENT RECOMMANDÉ d'afficher un avertissement utilisateur. Il s'agit exactement du même message que celui implémenté dans AOSP, mais PEUVENT être modifiés tant que le message avertit clairement l'utilisateur que des informations sensibles sur son écran ont été capturées.
[C-0-4] NE DOIT PAS fournir aux utilisateurs une affordance de désactiver les futures invites de l'utilisateur pour capturer l'écran, sauf si la session est lancée par une application système que l'utilisateur a autorisée à
associate()
avec le profil d'appareilandroid.app.role.COMPANION_DEVICE_APP_STREAMING
ouandroid.app.role.COMPANION_DEVICE_NEARBY_DEVICE_STREAMING
.
- [C-0-2] DOIT afficher un avertissement utilisateur et obtenir le consentement explicite de l'utilisateur permettant la capture d'informations sensibles affichées sur l'écran de l'utilisateur
9.8.6. Données au niveau de l'OS et données ambiantes : cette section a été renommée Données au niveau de l'OS et données ambiantes au lieu de Capture de contenu et Recherche dans les applications.
Voir la révision
Android, via les API système
, est compatible avec un mécanisme d'implémentation d'appareil permettant de capturer lesContentCaptureService
,AugmentedAutofillService
,AppSearchGlobalManager.query
ou par d'autres moyens propriétairesinteractions suivantes avec les données d'application entre les applications et l'utilisateurdonnées sensibles:- Tout écran ou autre donnée envoyée au système via
AugmentedAutofillService
. - Tout écran ou autre donnée accessible via l'API
Content Capture
. - Tout écran ou autre donnée accessible via l'API
FieldClassificationService
- Toutes les données d'application transmises au système via l'API
AppSearchManager
et accessibles viaAppSearchGlobalManager.query
.
- Tous les autres événements qu'une application fournit au système via l'API
Content Capture
ou l'APIAppSearchManager
, une API Android et propriétaire aux capacités similaires.
- Données audio obtenues à la suite de l'utilisation de
SpeechRecognizer#onDeviceSpeechRecognizer()
par l'implémentation de la reconnaissance vocale. - Données audio obtenues (en continu) en arrière-plan via
AudioRecord
,SoundTrigger
ou d'autres API Audio, et qui n'entraînent pas d'indicateur visible par l'utilisateur - Données de caméra obtenues en arrière-plan (en continu) via CameraManager ou d'autres API Camera, et qui n'entraînent pas d'indicateur visible par l'utilisateur
Si les implémentations d'appareils capturent l'une des données ci-dessus, celles-ci:
[C-1-3] NE DOIT envoyer toutes ces données
et le journalde l'appareil qu'à l'aide d'un mécanisme protégeant la confidentialité, sauf avec le consentement explicite de l'utilisateur chaque fois que les données sont partagées. Le mécanisme de protection de la confidentialité est défini comme "ceux qui autorisent uniquement une analyse globale et empêchent la mise en correspondance des événements enregistrés ou des résultats dérivés avec des utilisateurs individuels", afin d'éviter l'introspection de données utilisateur spécifiques (par exemple, mises en œuvre à l'aide d'une technologie de confidentialité différentielle telle queRAPPOR
).[C-1-5] NE DOIT PAS partager ces données avec d'autres composants de l'OS qui ne respectent pas les exigences décrites dans la section actuelle (9.8.6
Capture de contenu, données ambiantes et au niveau de l'OS), sauf avec le consentement explicite de l'utilisateur chaque fois qu'elles sont partagées. À moins que cette fonctionnalité ne soit conçue en tant qu'API SDK Android (AmbientContext
,HotwordDetectionService
).[C-1-6] DOIT fournir une affordance à l'utilisateur pour effacer les données que l'implémentation de
ou le moyen propriétaire collecteContentCaptureService
siquand les données sont stockées sous quelque forme que ce soit sur l'appareil. Si l'utilisateur choisit d'effacer les données, il DOIT supprimer toutes les données historiques collectées.
- [C-SR-3] Il est FORTEMENT RECOMMANDÉ d'être mis en œuvre avec l'API SDK Android ou un dépôt Open Source similaire appartenant à un OEM, et / ou dans une implémentation en bac à sable (voir 9.8.15 Implémentations d'API en bac à sable).
Android, via
SpeechRecognizer#onDeviceSpeechRecognizer()
, permet d'effectuer une reconnaissance vocale sur l'appareil sans impliquer le réseau. Toute implémentation de la reconnaissance vocale sur l'appareil DOIT respecter les règles décrites dans cette section.- Tout écran ou autre donnée envoyée au système via
9.8.10. Rapport de bug de connectivité:
Voir la révision
Si les implémentations d'appareils déclarent le flag de fonctionnalité
android.hardware.telephony
, elles:- [C-1-4] Les rapports générés avec
BUGREPORT_MODE_TELEPHONY
DOIVENT contenir au moins les informations suivantes :- Vidage
SubscriptionManagerService
- Vidage
- [C-1-4] Les rapports générés avec
9.8.14. Gestionnaire d'identifiants: supprimé
9.8.15. Implémentations d'API en bac à sable: nouvelle section
Voir la révision
Via un ensemble d'API déléguées, Android fournit un mécanisme permettant de traiter les données sécurisées au niveau de l'OS et des données ambiantes. Ce traitement peut être délégué à un APK préinstallé avec accès privilégié et fonctionnalités de communication réduites, appelé "implémentation d'API en bac à sable".
Toute implémentation d'API en bac à sable:
- [C-0-1] NE DOIT PAS demander l'autorisation INTERNET.
- [C-0-2] DOIT accéder à Internet uniquement via des API structurées reposant sur des implémentations Open Source accessibles au public qui utilisent des mécanismes protégeant la confidentialité, ou indirectement via les API du SDK Android. Le mécanisme de protection de la confidentialité est défini comme "ceux qui autorisent uniquement une analyse globale et empêchent la mise en correspondance des événements enregistrés ou des résultats dérivés avec des utilisateurs individuels", afin d'éviter que des données utilisateur spécifiques ne soient introspectives (par exemple, mises en œuvre à l'aide d'une technologie de confidentialité différentielle telle que RAPPOR).
- [C-0-3] DOIT garder les services séparés des autres composants du système (par exemple, sans lier le service ou partager des ID de processus), sauf dans les cas suivants :
- Téléphonie, contacts, UI du système et médias
- [C-0-4] NE DOIT PAS autoriser les utilisateurs à remplacer les services par une application ou un service qu'ils peuvent installer.
- [C-0-5] DOIT autoriser uniquement les services préinstallés à capturer de telles données. Sauf si la fonctionnalité de remplacement est intégrée à AOSP (par exemple, pour les applications d'assistant numérique).
- [C-0-6] NE DOIT PAS permettre à des applications autres que le mécanisme de services préinstallés de capturer de telles données. Sauf si cette fonctionnalité de capture est implémentée avec une API du SDK Android,
- [C-0-7] DOIT fournir une affordance à l'utilisateur pour désactiver les services.
- [C-0-8] NE DOIT PAS omettre les affordances de l'utilisateur pour gérer les autorisations Android détenues par les services et qui suivent le modèle d'autorisations Android décrit dans la section 9.1. Autorisation.
9.8.16. Audio en continu et données de la caméra: nouvelle section
Voir la révision
En plus des exigences décrites dans les sections 9.8.2 "Enregistrement", "9.8.6" concernant les données d'OS et de luminosité ambiante, et les implémentations d'API Sandboxed 9.8.15, les implémentations qui utilisent des données audio obtenues en arrière-plan (en continu) via AudioRecord, SoundTrigger ou d'autres API audio, OU des données de caméra obtenues en arrière-plan (en continu) via CameraManager ou d'autres API Camera:
- [C-0-1] DOIT appliquer un indicateur correspondant (caméra et/ou micro, conformément à la section 9.8.2 "Enregistrement"), à moins que :
- Cet accès est effectué dans une implémentation en bac à sable (voir la section "Mise en œuvre d'API en bac à sable 9.8.15"), via un package contenant un ou plusieurs des rôles suivants : System UI Intelligence, System Ambient Audio Intelligence, System Audio Intelligence, System Notification Intelligence, System Text Intelligence ou System Visual Intelligence.
- L'accès est effectué via un bac à sable, implémenté et appliqué à l'aide de mécanismes dans AOSP (
HotwordDetectionService
,WearableSensingService
,VisualQueryDetector
). - L'accès audio est effectué à des fins d'assistance par l'application d'Assistant numérique et fournit
SOURCE_HOTWORD
comme source audio. - L'accès est effectué par le système et implémenté avec du code Open Source.
- [C-SR-1] Il est FORTEMENT RECOMMANDÉ d'exiger le consentement de l'utilisateur pour chaque fonctionnalité utilisant ces données. Il doit être désactivé par défaut.
- [C-SR-2] FORTEMENT RECOMMANDÉ d'appliquer le même traitement (c'est-à-dire de respecter les restrictions décrites dans les sections 9.8.2 Enregistrement, 9.8.6 Données ambiantes et au niveau du système d'exploitation, 9.8.15 Implémentations de l'API en bac à sable et 9.8.16 Données de l'appareil photo et de l'audio en continu) aux données de la caméra provenant d'un wearable distant.
Si les données de l'appareil photo sont fournies à partir d'un accessoire connecté distant et que vous y accédez sous une forme non chiffrée en dehors de l'OS Android, une implémentation en bac à sable ou une fonctionnalité de bac à sable créée par
WearableSensingManager
, les conditions suivantes s'appliquent:- [C-1-1] DOIT indiquer à l'accessoire connecté distant qu'il doit y afficher un indicateur supplémentaire.
Si les appareils permettent d'interagir avec une application d'assistant numérique sans le mot clé attribué (soit en gérant des requêtes utilisateur génériques, soit en analysant la présence des utilisateurs via l'appareil photo):
- [C-2-1] DOIT s'assurer que cette implémentation est fournie par un package disposant du rôle
android.app.role.ASSISTANT
. - [C-2-2] DOIT s'assurer que cette implémentation utilise les API Android
HotwordDetectionService
et/ouVisualQueryDetectionService
.
- [C-0-1] DOIT appliquer un indicateur correspondant (caméra et/ou micro, conformément à la section 9.8.2 "Enregistrement"), à moins que :
9.8.17. Télémétrie: nouvelle section
Voir la révision
Android stocke les journaux système et d'application à l'aide des API StatsLog. Ces journaux sont gérés via les API StatsManager, qui peuvent être utilisées par des applications système privilégiées.
StatsManager permet également de collecter des données classées comme sensibles à partir d'appareils dotés d'un mécanisme protégeant la confidentialité. En particulier, l'API
StatsManager::query
permet d'interroger des catégories de métriques limitées définies dans StatsLog.Toute implémentation interrogeant et collectant des métriques restreintes à partir de StatsManager:
- [C-0-1] DOIT être la seule application/implémentation sur l'appareil et détenir l'autorisation
READ_RESTRICTED_STATS
. - [C-0-2] DOIT envoyer uniquement des données de télémétrie et le journal de l'appareil à l'aide d'un mécanisme protégeant la confidentialité. Le mécanisme de protection de la confidentialité est défini comme "ceux qui autorisent uniquement une analyse globale et empêchent la mise en correspondance des événements enregistrés ou des résultats dérivés avec des utilisateurs individuels", afin d'empêcher toute donnée utilisateur spécifique (par exemple, mise en œuvre à l'aide d'une technologie de confidentialité différentielle telle que RAPPOR).
- [C-0-3] NE DOIT PAS associer ces données à une identité d'utilisateur (telle qu'un compte) sur l'appareil.
- [C-0-4] NE DOIT PAS partager ces données avec d'autres composants de l'OS qui ne respectent pas les exigences décrites dans la section actuelle (9.8.17 Télémétrie protégeant la confidentialité).
- [C-0-5] DOIT fournir une affordance utilisateur pour activer/désactiver la collecte, l'utilisation et le partage de télémétrie protégeant la confidentialité.
- [C-0-6] DOIT fournir une affordance à l'utilisateur pour effacer les données collectées par l'implémentation si celles-ci sont stockées sur l'appareil, sous quelque forme que ce soit. Si l'utilisateur a choisi d'effacer les données, il DOIT supprimer toutes les données actuellement stockées sur l'appareil.
- [C-0-7] DOIT divulguer la mise en œuvre du protocole sous-jacent protégeant la confidentialité dans un dépôt Open Source.
- [C-0-8 ]DOIT appliquer des règles de sortie des données dans cette section pour contrôler la collecte de données dans les catégories de métriques limitées définies dans StatsLog.
- [C-0-1] DOIT être la seule application/implémentation sur l'appareil et détenir l'autorisation
9.10. Intégrité de l'appareil:
Voir la révision
Implémentations sur les appareilsSi les implémentations d'appareils permettent de vérifier le contenu des fichiers page par page, elles :
[
C-0-3C-2-1] permet de vérifier de manière cryptographique le contenu d'un fichierpar rapport à une clé de confiancesans lire l'intégralité du fichier.[
C-0-4C-2-2] NE DOIT PAS autoriser la réussite des requêtes de lecture sur un fichier protégé lorsque le contenu en lecturene se vérifie pas à l'aide d'une clé approuvéen'est pas validé comme indiqué ci-dessus.
- [C-2-4] DOIT renvoyer la somme de contrôle du fichier dans O(1) pour les fichiers activés.
-
Voir la révision
Le système Android Keystore permet aux développeurs d'applications de stocker des clés cryptographiques dans un conteneur et de les utiliser dans des opérations de chiffrement via l'API KeyChain ou l'API Keystore. Implémentations pour les appareils:
- [C-0-3] DOIT limiter le nombre de tentatives d'authentification principale ayant échoué.
- [C-SR-2] Il est FORTEMENT RECOMMANDÉ d'implémenter un plafond de 20 tentatives d'authentification principale ayant échoué. Si les utilisateurs donnent leur consentement et activent la fonctionnalité, il est fortement recommandé de rétablir la configuration d'usine après avoir dépassé le nombre maximal de tentatives d'authentification principale ayant échoué.
Si les implémentations d'appareils ajoutent ou modifient des méthodes d'authentification pour déverrouiller l'écran de verrouillage s'ils sont basés sur un secret connu et utilisent une nouvelle méthode d'authentification considérée comme un moyen sécurisé de verrouiller l'écran, procédez comme suit:
- [C-SR-3] Il est FORTEMENT RECOMMANDÉ d'utiliser un code PIN d'au moins six chiffres, ou de manière équivalente une entropie de 20 bits.
- [C-2-1] Un code PIN de moins de six chiffres NE DOIT PAS permettre la saisie automatique sans l'intervention de l'utilisateur, afin d'éviter d'en révéler la longueur.
9.11.1. Écran de verrouillage sécurisé, authentification et appareils virtuels :
Voir la révision
Implémentations pour les appareils:
- [C-0-1] DOIT limiter le nombre de tentatives d'authentification principale ayant échoué.
- [C-SR-5] Il est FORTEMENT RECOMMANDÉ d'implémenter un plafond de 20 tentatives d'authentification principale ayant échoué. Si les utilisateurs donnent leur consentement et activent la fonctionnalité, il est fortement recommandé de rétablir la configuration d'usine après avoir dépassé le nombre maximal de tentatives d'authentification principale ayant échoué.
Si les implémentations d'appareils définissent un code PIN numérique comme méthode d'authentification principale recommandée:
- [C-SR-6] Il est FORTEMENT RECOMMANDÉ d'utiliser un code PIN d'au moins six chiffres ou de l'équivalent d'une entropie de 20 bits.
- [C-SR-7] Il est FORTEMENT RECOMMANDÉ de NE PAS autoriser la saisie automatique sans l'intervention de l'utilisateur pour éviter d'en révéler la longueur.
Si les implémentations d'appareils disposent d'un écran de verrouillage sécurisé et incluent un ou plusieurs agents de confiance, qui implémentent l'API système
TrustAgentService
, ils:[C-7-8] L'utilisateur DOIT être invité à utiliser l'une des méthodes d'authentification principales recommandées (par exemple, par code, schéma ou mot de passe) au moins une fois toutes les 72 heures ou moins, sauf si la sécurité de l'utilisateur (par exemple, en cas de distraction au volant) est préoccupante.Si les implémentations d'appareils permettent aux applications de créer des écrans virtuels secondaires et de prendre en charge les événements d'entrée associés, par exemple via VirtualDeviceManager, et que les écrans ne sont pas marqués VIRTUAL_DISPLAY_FLAG_SECURE, ils:
[C-13-10] DOIT désactiver l'installation d'applications lancées à partir d'appareils virtuels.9.17. Framework de virtualisation Android:
Voir la révision
Si l'appareil est compatible avec les API du framework de virtualisation Android (
android.system.virtualmachine.*
), l'hôte Android:- [C-1-1] DOIT prendre en charge toutes les API définies par le package
android.system.virtualmachine
. - [C-1-2] NE DOIT PAS modifier le modèle d'autorisation ni le modèle SELinux d'Android pour la gestion des machines virtuelles protégées (pVM).
- [C-1-3] NE DOIT PAS modifier, omettre ni remplacer les règles "Neverallow" présentes dans le système/sepolicy fournis dans le projet Android Open Source (AOSP) en amont. La stratégie DOIT être compilée avec toutes les règles ne pas autoriser présentes.
- [C-1-4] NE DOIT autoriser que le code signé par la plate-forme et les applications privilégiées
NE DOIVENT PAS autoriser de code non approuvé (applications tierces, par exemple)à créer et à exécuter unemachine virtuelle protégéepVM. Remarque: Cela pourrait changer dans les prochaines versions d'Android.
- [C-1-5] NE DOIT PAS autoriser une
machine virtuelle protégéepVM à exécuter du code qui ne fait pas partie de l'image d'usine ou de leurs mises à jour.Tout élément non couvert par le démarrage validé Android (par exemple, les fichiers téléchargés depuis Internet ou téléchargés indépendamment) NE DOIT PAS être exécuté sur une machine virtuelle protégée.
- [C-1-5] DOIT uniquement autoriser une pVM non débogable à exécuter du code à partir de l'image d'usine ou de leurs mises à jour de plate-forme, y compris les mises à jour des applications privilégiées.
Si l'appareil est compatible avec les API du framework de virtualisation Android (
android.system.virtualmachine.*
), toute instance demachine virtuelle protégéepVM :- [C-2-1] DOIT pouvoir exécuter tous les systèmes d'exploitation disponibles dans l'APEX de virtualisation dans une
machine virtuelle protégéepVM . - [C-2-2] NE DOIT PAS autoriser une
machine virtuelle protégéepVM à exécuter un système d'exploitation qui n'est pas signé par le responsable de l'implémentation de l'appareil ou le fournisseur de l'OS. - [C-2-3] NE DOIT PAS autoriser une
machine virtuelle protégéepVM à exécuter des données en tant que code (par exemple, SELinux ne permet jamais d'exécuter la commande "execmem").
- [C-2-4] NE DOIT PAS modifier, omettre ni remplacer les règles "Neverallow" présentes dans le système/sepolicy/microdroid fournis en amont dans le projet Android Open Source (AOSP).
- [C-2-5] DOIT mettre en œuvre des mécanismes de défense en profondeur (
machine virtuelle protégéepVM , par exemple SELinux pour les VMp), même pour les systèmes d'exploitation autres que Microdroid. - [C-2-6] DOIT s'assurer que la VM préemptives échoue
le micrologiciel refusede démarrer siil ne peut pas vérifier lesimages initiales que la VM va exécuter ne peut pas être vérifiée. La vérification DOIT être effectuée dans la VM. - [C-2-7] DOIT s'assurer que la VM préemptives échoue
le micrologiciel refusede démarrer si l'intégrité du fichier instance.img est compromise.
Si l'appareil est compatible avec les API du framework de virtualisation Android (
android.system.virtualmachine.*
), l'hyperviseur:- [C-3-1] DOIT s'assurer que les pages de mémoire appartenant exclusivement à une VM (pVM ou VM hôte) ne sont accessibles qu'à la machine virtuelle elle-même ou à l'hyperviseur, et non à d'autres machines virtuelles, qu'elles soient protégées ou non.
NE DOIT PAS permettre à une pVM d'accéder à une page appartenant à une autre entité (c'est-à-dire une autre pVM ou un hyperviseur), sauf s'il est explicitement partagé par le propriétaire de la page. Cela inclut la VM hôte. Cela s'applique à la fois aux accès au processeur et à la zone de marché désignée. - [C-3-2] DOIT effacer une page après son utilisation par une pVM et avant qu'elle ne soit renvoyée à l'hôte (par exemple, si la pVM est détruite).
- [C-
3-3SR-1] EST FORTEMENT RECOMMANDÉ pour s'assurer queDOIT s'assurerque le micrologiciel des VM préemptives est chargé et exécuté avant tout code dans une VM préemptive. - [C-3-4] DOIT s'assurer que chaque VM dérive un secret par VM que
{Boot Certificate Chain (BCC) and Compound Device Identifier (CDI) provided to a pVM instancene peut être dérivé que par cette instance de VM particulière, et qui est modifié lors d'une réinitialisation d'usine et de l'OTA.
Si l'appareil est compatible avec les API du framework de virtualisation Android, procédez comme suit dans tous les domaines:
- [C-4-1] NE DOIT PAS fournir à une pVM une fonctionnalité permettant de contourner le modèle de sécurité Android.
Si l'appareil est compatible avec les API du framework de virtualisation Android:
- [C-5-1] DOIT être capable de prendre en charge la compilation isolée, mais peut désactiver la fonctionnalité de compilation isolée
d'une mise à jour de l'environnement d'exécution ARTlivré avec l'appareil.
Si l'appareil prend en charge les API du framework de virtualisation Android, procédez comme suit pour la gestion des clés:
- [C-6-1] DOIT utiliser la chaîne DICE racine à un point que l'utilisateur ne peut pas modifier, même sur des appareils déverrouillés. (pour éviter toute usurpation d'identité).
- [C-SR-2
6-2] Il est VIVEMENT RECOMMANDÉ d'utiliser DICE comme mécanisme de dérivation des secrets par VM.DOIT utiliser les dés correctement, c'est-à-dire fournir les valeurs correctes.
- [C-1-1] DOIT prendre en charge toutes les API définies par le package