Pour exécuter CTS, commencez par préparer votre environnement physique, votre ordinateur de bureau et l'appareil Android que vous utilisez pour les tests.
Environnement physique
Balises Bluetooth LE
Si l'appareil testé est compatible avec le Bluetooth LE, placez au moins trois balises Bluetooth LE à moins de cinq mètres de l'appareil testé pour les tests de balayage Bluetooth LE. Ces balises n'ont pas besoin d'être configurées ni d'émettre quoi que ce soit de spécifique. Elles peuvent être de tout type, y compris iBeacon, Eddystone ou même des appareils simulant des balises BLE.
Bande ultralarge
Si l'appareil testé est compatible avec la bande ultralarge (UWB), un autre appareil compatible avec la bande ultralarge doit être placé suffisamment près et orienté de manière à ne pas présenter d'antenne ni de zone morte radio. Pour les tests de précision de la distance, des besoins spécifiques en termes de positionnement et d'orientation sont requis. Pour en savoir plus sur la configuration, consultez la section Exigences concernant la technologie UWB. Le test UWB doit être exécuté manuellement, en spécifiant sur la ligne de commande les deux appareils distants d'un mètre. Pour en savoir plus sur le partitionnement, qui est requis pour ce test, consultez la section Partitionnement local.
Caméras
Lorsque vous exécutez le CTS de l'appareil photo, utilisez des conditions d'éclairage normales avec un graphique de motif de test (tel qu'un motif en damier). Placez le graphique du motif de test en fonction de la distance de mise au point minimale de l'appareil à tester pour vous assurer qu'il n'est pas trop proche de l'objectif.
Pointez les capteurs de l'appareil photo vers une scène suffisamment éclairée pour permettre aux capteurs testés d'atteindre et de maintenir le nombre maximal de frames par seconde (FPS) configuré comme spécifié dans CONTROL_AE_TARGET_FPS_RANGE
.
Cela s'applique à tous les capteurs d'appareil photo signalés par getCameraIdList
, car le test itère sur les appareils listés et mesure les performances individuellement.
Si l'appareil testé est compatible avec les caméras externes, telles que les webcams USB, branchez une caméra externe lorsque vous exécutez CTS. Sinon, les tests CTS échouent.
GPS/GNSS
Si l'appareil testé est compatible avec la fonctionnalité GPS/GNSS (Global Positioning System/Global Navigation Satellite System), fournissez-lui un signal GPS/GNSS à un niveau de signal approprié pour la réception et le calcul de la position GPS. La partie GPS doit être conforme à la norme ICD-GPS-200C. Sinon, le signal GPS/GNSS peut être de n'importe quel type, y compris un simulateur de satellite ou un répéteur GPS/GNSS de signaux extérieurs. Vous pouvez également placer l'appareil testé suffisamment près d'une fenêtre pour recevoir directement un signal GPS/GNSS suffisant.
Wi-Fi et IPv6
Les tests CTS nécessitent un réseau Wi-Fi compatible avec les protocoles IPv4 et IPv6, disposant d'une connexion Internet avec un DNS opérationnel pour IPv4 et IPv6, compatible avec le multicast IP et pouvant traiter le DUT comme un client isolé. Un client isolé est une configuration dans laquelle le DUT n'a pas de visibilité sur les messages de diffusion/multiréseaux sur ce sous-réseau. Cela se produit avec une configuration de point d'accès Wi-Fi (PA) ou en exécutant le DUT sur un sous-réseau isolé sans que d'autres appareils ne soient connectés.
Si vous n'avez pas accès à un réseau IPv6 natif, à un réseau de l'opérateur IPv6 ou à un VPN pour effectuer certains tests dépendant d'IPv6, vous pouvez utiliser un point d'accès Wi-Fi et un tunnel IPv6.
Pour réussir le CTS, le DUT doit définir les indicateurs UP
, BROADCAST
et MULTICAST
sur l'interface Wi-Fi. L'interface Wi-Fi doit se voir attribuer des adresses IPv4 et IPv6.
Vérifiez les propriétés de l'interface Wi-Fi avec adb shell ifconfig
.
Pour les appareils compatibles avec la concurrencéité STA/STA Wi-Fi, plusieurs réseaux Wi-Fi (au moins deux) sont requis. Pour transmettre la CTS, les réseaux Wi-Fi doivent fonctionner sur des bandes différentes avec des SSID différents ou sur le même SSID avec des BSSID différents.
RTT Wi-Fi
Android inclut l'API de DAR Wi-Fi pour une fonctionnalité de délai aller-retour Wi-Fi (DAR). Les appareils peuvent ainsi mesurer leur distance avec des points d'accès avec une précision de 1 à 2 mètres, ce qui améliore considérablement la précision de la localisation en intérieur. Deux appareils recommandés compatibles avec le RTT Wi-Fi sont le Google Wifi et le point d'accès fitlet2 de Compulab (paramètre de bande passante défini sur 40 MHz à 5 GHz).
Les points d'accès doivent être sous tension, mais ne nécessitent pas de connexion réseau. Les points d'accès ne doivent pas se trouver à côté de l'appareil de test, mais il est recommandé qu'ils se trouvent à moins de 12 mètres de l'appareil testé. Un seul point d'accès est généralement suffisant.
Configuration de l'ordinateur de bureau
Attention: CTS est compatible avec les machines Linux 64 bits. CTS n'est pas compatible avec le système d'exploitation Windows ni avec macOS.
FFMPEG
Installez le package ffmpeg version 5.1.3 (ou ultérieure) sur la machine hôte.
Configuration requise pour la machine hôte
La machine hôte CTS doit disposer d'au moins 32 Go de RAM et d'une capacité de disque de 256 Go. Cela est nécessaire pour tenir compte de l'augmentation du nombre de cas de test CTS et de la réservation d'espace de tas Java dans Tradefed.
ADB et AAPT2
Avant d'exécuter le CTS, assurez-vous d'avoir installé les versions récentes d'Android Debug Bridge (adb) et d'Android Asset Packaging Tool (AAPT2), et d'avoir ajouté l'emplacement de ces outils au chemin d'accès système de votre ordinateur.
Pour installer ADB et AAPT2, téléchargez la dernière version d'Android SDK Platform Tools et d'Android SDK Build Tools à partir du SDK Manager d'Android Studio ou de l'outil de ligne de commande sdkmanager.
Assurez-vous que adb
et aapt2
se trouvent dans votre chemin d'accès système. La commande suivante suppose que vous avez téléchargé les archives de packages dans un sous-répertoire appelé android-sdk
dans votre répertoire d'accueil:
export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>
Kit de développement Java pour Ubuntu
Installez la version appropriée du kit de développement Java (JDK).
- Pour Android 11, installez OpenJDK 11.
- Pour Android 9 et Android 10, installez OpenJDK9.
- Pour Android 7.0, 7.1, 8.0 et 8.1, installez OpenJDK 8.
Pour en savoir plus, consultez les conditions requises pour le JDK.
Configuration pour la compatibilité avec Python
Installez virtualenv
pour votre plate-forme en suivant les instructions d'installation.
Vous pouvez vérifier que l'installation a réussi en appelant virtualenv -h
.
Fichiers CTS
Téléchargez et ouvrez les packages CTS à partir des téléchargements de la suite de tests de compatibilité correspondant à la version Android de vos appareils et à toutes les interfaces binaires d'application (ABI) compatibles avec vos appareils.
Téléchargez et ouvrez la dernière version des fichiers multimédias CTS.
Télécharger les fichiers CTS liés à Mainline (facultatif)
Lorsque vous exécutez une version de CTS pour la première fois, CTS télécharge dynamiquement certains fichiers CTS associés à la ligne principale, ce qui ajoute au moins 10 minutes au temps d'exécution, en fonction de la vitesse de votre réseau.
Pour éviter cette nouvelle durée d'exécution CTS, vous pouvez télécharger les fichiers CTS liés à Mainline avant d'exécuter la version CTS. Pour ce faire, procédez comme suit:
Obtenez le niveau d'API Android sur l'appareil en exécutant:
adb shell getprop ro.build.version.sdk
Suivez les instructions du script
download_mcts.sh
pour télécharger les fichiers CTS Mainline.Le téléchargement prend au moins 10 minutes, en fonction du débit de votre réseau.
Détection d'appareils
Suivez la procédure pour configurer votre système afin qu'il détecte votre appareil.
Limite de mémoire
Vous pouvez augmenter la mémoire maximale disponible lors de l'exécution du test dans le script cts-tradefed. Pour en savoir plus, consultez l'exemple de CL.
Configuration de l'appareil Android
Builds utilisateur
Un appareil compatible est défini comme un appareil avec un build signé par une clé utilisateur/version. Votre appareil doit exécuter une image système basée sur le build utilisateur compatible (Android 4.0 ou version ultérieure) à partir de la section Codenames, Tags, and Build Numbers (Noms de code, tags et numéros de build).
Première propriété de compilation au niveau de l'API
Certaines exigences CTS dépendent de la version avec laquelle un appareil a été initialement expédié. Par exemple, les appareils initialement livrés avec des versions antérieures peuvent être exclus de la configuration système requise qui s'applique aux appareils livrés avec des versions ultérieures.
Pour mettre ces informations à la disposition du CTS, les fabricants d'appareils peuvent avoir défini la propriété ro.product.first_api_level
au moment de la compilation. La valeur de cette propriété correspond au premier niveau d'API avec lequel l'appareil a été commercialisé.
Les fabricants d'appareils peuvent réutiliser l'implémentation sous-jacente commune pour lancer un nouveau produit en tant que mise à niveau d'un produit existant du même groupe d'appareils. Les fabricants d'appareils peuvent éventuellement définir le niveau d'API du produit existant sur ro.product.first_api_level
, afin que les exigences de mise à niveau soient appliquées pour CTS et Treble/VTS.
Les fabricants d'appareils peuvent définir PRODUCT_SHIPPING_API_LEVEL
dans leur fichier device.mk
pour définir cette propriété, comme indiqué dans l'exemple suivant:
# PRODUCT_SHIPPING_API_LEVEL sets ro.product.first_api_level to indicate
# the first api level that the device has been commercially launched on.
PRODUCT_SHIPPING_API_LEVEL := 21
Premier niveau d'API pour Android 9 ou version ultérieure
Pour les appareils lancés avec Android 9 ou version ultérieure, définissez la propriété ro.product.first_api_level
sur une valeur valide dans la section Noms de code, balises et numéros de build.
Premier niveau d'API pour Android 8.x ou version antérieure
Pour les appareils lancés sous Android 8.x ou version antérieure, annulez (supprimez) la propriété ro.product.first_api_level
pour la première compilation du produit. Pour tous les builds suivants, définissez ro.product.first_api_level
sur la valeur de niveau d'API appropriée. Cela permet à la propriété d'identifier correctement un nouveau produit et de conserver les informations sur le premier niveau d'API du produit. Si l'indicateur n'est pas défini, Android attribue Build.VERSION.SDK_INT
à ro.product.first_api_level
.
Packages de shim CTS
Android 10 ou version ultérieure inclut un format de package appelé APEX. Pour exécuter des tests CTS pour les API de gestion APEX (par exemple, passer à une nouvelle version ou signaler des APEX actifs), vous devez préinstaller un paquet CtsShimApex
sur une partition /system
.
Le test de validation du shim APEX vérifie l'implémentation de CtsShimApex
.
Exigences concernant ro.apex.updatable
Si la propriété
ro.apex.updatable
est définie surtrue
,CtsShimApex
est obligatoire pour tous les appareils compatibles avec la gestion des packages APEX.Si la propriété
ro.apex.updatable
est manquante ou n'est pas définie,CtsShimApex
n'a pas besoin d'être préinstallé sur un appareil.
Le test de validation du shim APEX vérifie l'implémentation de CtsShimApex
.
Préinstallations et préchargements de CtsShim
À partir d'Android 11, CtsShimApex
contient deux applications précompilées (compilées à partir de la source de compilation), qui ne contiennent aucun code, à l'exception du fichier manifeste. CTS utilise ces applications pour tester les droits et les autorisations.
Si l'appareil n'est pas compatible avec la gestion des paquets APEX (c'est-à-dire que la propriété ro.apex.updatable
est manquante ou n'est pas définie), ou si l'appareil exécute la version 10 ou une version antérieure, les deux applications précompilées doivent être préinstallées séparément dans le système.
Si APEX est compatible, les préinstallations de la version appropriée doivent être placées en tant que /system/apex/com.android.apex.cts.shim.apex
.
Si des applications précompilées standards sont utilisées, CtsShim
et CtsShimPriv
pour la version appropriée doivent être placés en tant que /system/app/CtsShimPrebuilt.apk
et /system/priv-app/CtsShimPrivPrebuilt.apk
, respectivement.
Le tableau suivant répertorie les préinstallations et les préchargements disponibles pour chaque version d'appareil et architecture.
Version de l'appareil | Préinstaller (si APEX est compatible) |
Précharger | ||
---|---|---|---|---|
ARM | x86 | ARM | x86 | |
Android 15 | android15-arm-release | android15-x86-release | android15-arm-CtsShim.apk | android15-x86-CtsShim.apk |
Android 14 | android14-arm-release | android14-x86-release | android14-arm-CtsShim.apk | android14-x86-CtsShim.apk |
Android 13 | android13-arm-release | android13-x86-release | android13-arm-CtsShim.apk | android13-x86-CtsShim.apk |
Android 12 | android12-arm-release | android12-x86-release | android12-arm-CtsShim.apk | android12-x86-CtsShim.apk |
Android 11 | android11-arm-release | android11-x86-release | android11-arm-CtsShim.apk | android11-x86-CtsShim.apk |
Android 10 | android10-release | android10-arm-CtsShim.apk | android10-x86-CtsShim.apk | |
Android 9, O et O-MR1 | N/A | N/A | arm-CtsShim.apk | x86-CtsShim.apk |
Pour réussir les tests, préchargez les applications dans les répertoires appropriés de l'image système sans les signer à nouveau.
Exemple d'applet
Android 9 a introduit les API Open Mobile. Pour les appareils qui signalent plusieurs éléments sécurisés, CTS ajoute des cas de test pour valider le comportement des API Open Mobile. Ces cas de test nécessitent l'installation unique d'un exemple d'applet dans l'élément sécurisé intégré (eSE) du DUT ou dans la carte SIM utilisée par le DUT. L'exemple d'applet eSE et l'exemple d'applet SIM sont disponibles dans AOSP.
Pour en savoir plus sur les scénarios de test de l'API Open Mobile et du contrôle des accès, consultez la page Test CTS du composant sécurisé.
Exigences de stockage
Les tests de stress multimédias CTS exigent que les extraits vidéo soient stockés sur un stockage externe (/sdcard
). La plupart des extraits proviennent de Big Buck Bunny, qui est protégé par des droits d'auteur par la Blender Foundation sous la licence Creative Commons Attribution 3.0.
L'espace requis dépend de la résolution de lecture vidéo maximale acceptée par l'appareil. Consultez la section 5 du document de définition de compatibilité Android pour connaître la version de plate-forme des résolutions requises.
Voici les exigences de stockage en fonction de la résolution de lecture vidéo maximale:
- 480 x 360: 98 Mo
- 720 x 480: 193 Mo
- 1 280 x 720: 606 Mo
- 1 920 x 1 080: 1 863 Mo
Écran et stockage
- Tout appareil qui ne dispose pas d'écran intégré doit être connecté à un écran.
Si l'appareil dispose d'un port de carte mémoire, insérez-y une carte SD vide. Utilisez une carte SD compatible avec le bus UHS (ultra-haute vitesse) avec une capacité SDHC ou SDXC, ou une carte avec une classe de vitesse d'au moins 10 ou plus pour vous assurer qu'elle peut passer le CTS.
Si l'appareil comporte des emplacements pour carte SIM, insérez une carte SIM activée dans chacun d'eux. Si l'appareil est compatible avec les SMS, chaque champ de numéro de carte SIM doit être renseigné. Pour les appareils équipés d'Android 12 ou version ultérieure, toutes les cartes SIM doivent être compatibles avec le stockage des numéros abrégés. Les cartes GSM et USIM avec le fichier dédié aux télécoms (DFTelecom) répondent à cette exigence.
UICC du développeur
Pour exécuter des tests de l'API de l'opérateur CTS, l'appareil doit utiliser une carte SIM avec des droits d'opérateur CTS conformes aux exigences spécifiées dans la section Préparation de la carte UICC.
Configuration de l'appareil Android
Rétablissez la configuration d'usine de l'appareil: Paramètres > Sauvegarder et réinitialiser > Rétablir la configuration d'usine.
Définissez la langue de votre appareil sur Anglais (États-Unis): Paramètres > Langue et saisie > Langue.
Si l'appareil prend en charge la personnalisation des polices par défaut, définissez la famille de polices
sans-serif
par défaut surRoboto
(la famille de policessans-serif
par défaut utilisée dans les builds AOSP).Activez le paramètre de localisation si l'appareil dispose d'une fonctionnalité GPS ou d'un réseau Wi-Fi/mobile: Paramètres > Position > Activé.
Connectez-vous à un réseau Wi-Fi compatible avec IPv6, qui peut traiter le DUT en tant que client isolé (voir Environnement physique ci-dessus) et dispose d'une connexion Internet: Settings > Wi-Fi (Paramètres > Wi-Fi).
Assurez-vous qu'aucun schéma de verrouillage ni mot de passe n'est défini sur l'appareil : Settings > Security > Screen lock > None (Paramètres > Sécurité > Verrouillage de l'écran > Aucun).
Activez Débogage USB sur votre appareil: Paramètres > Options pour les développeurs > Débogage USB.
Définissez l'heure au format 12 heures: Paramètres > Date et heure > Utiliser le format 24 heures > Désactivé.
Définissez l'appareil pour qu'il reste allumé: Paramètres > Options pour les développeurs > Rester allumé > Activé.
Sous Android 5.x et 4.4.x uniquement, configurez l'appareil pour autoriser les positions fictives : Settings > Developer options > Allow mock locations > On (Paramètres > Options pour les développeurs > Autoriser les positions fictives > Activé).
Sous Android 4.2 ou version ultérieure, désactivez la validation des applications via USB: Settings > Developer options > Verify apps over USB > Off (Paramètres > Options pour les développeurs > Valider les applications via USB > Désactivé).
Sous Android 13 ou version ultérieure, configurez l'appareil pour autoriser le modem fictif : Settings > Developer options > Allow Mock Modem > On (Paramètres > Options pour les développeurs > Autoriser le modem fictif > Activé).
Lancez le navigateur et ignorez tout écran de démarrage/configuration.
Connectez l'ordinateur de bureau qui servira à tester l'appareil à l'aide d'un câble USB.
Avant d'exécuter CTS, définissez Roboto2 comme police sans-serif à l'aide d'un paramètre d' affordance accessible par l'utilisateur (non masqué).
Installation de fichiers
Installez et configurez des applications d'assistance sur l'appareil.
Configurez votre appareil en fonction de votre version du CTS:
Versions CTS 2.1 R2 à 4.2 R4:configurez votre appareil (ou émulateur) pour exécuter les tests d'accessibilité avec :
adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
Sur l'appareil, activez la délégation: Settings > Accessibility > Accessibility > Delegating Accessibility Service (Paramètres > Accessibilité > Accessibilité > Délégation du service d'accessibilité).
Versions 6.x ou antérieures du CTS:sur les appareils qui déclarent
android.software.device_admin
, configurez votre appareil pour exécuter le test d'administration de l'appareil à l'aide de :adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`
Dans Settings > Security > Select device administrators (Paramètres > Sécurité > Sélectionner les administrateurs d'appareil), activez les deux administrateurs d'appareil
android.deviceadmin.cts.CtsDeviceAdminReceiver*
. Assurez-vous queandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
et tous les autres administrateurs d'appareils préchargés restent désactivés.
Copiez les fichiers multimédias CTS sur l'appareil comme suit:
- Accédez (
cd
) au chemin d'accès où les fichiers multimédias sont téléchargés et décompressés. Modifiez les autorisations du fichier :
chmod u+x copy_media.sh
Copiez les fichiers nécessaires:
Pour copier des extraits jusqu'à une résolution de 720x480, exécutez la commande suivante:
./copy_media.sh 720x480
Si vous n'êtes pas sûr de la résolution maximale, copiez tous les fichiers:
./copy_media.sh all
Si plusieurs appareils sont associés à adb, ajoutez l'option de série (
-s
) d'un appareil spécifique à la fin. Par exemple, pour copier jusqu'à 720 x 480 sur l'appareil dont le numéro de série est 1234567, exécutez la commande suivante:./copy_media.sh 720x480 -s 1234567
- Accédez (