Pour exécuter CTS, préparez d'abord 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 sous test (DUT) prend en charge Bluetooth LE, placez au moins trois balises Bluetooth LE à moins de 5 mètres du DUT 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, et peuvent être de n'importe quel type, y compris iBeacon, Eddystone ou même des appareils simulant des balises BLE.
Appareils photo
Lors de l'exécution de la caméra CTS, utilisez des conditions d'éclairage normales avec un tableau de mire de test (comme un motif en damier). Placez le diagramme de mire en fonction de la distance de mise au point minimale du DUT pour vous assurer qu'il n'est pas trop près de l'objectif.
Dirigez les capteurs de la caméra vers une scène suffisamment éclairée pour permettre aux capteurs testés d'atteindre et de rester au nombre maximal d'images par seconde (FPS) configurées comme spécifié dans CONTROL_AE_TARGET_FPS_RANGE
. Cela s'applique à tous les capteurs de caméra signalés par getCameraIdList
lorsque le test itère sur les appareils répertoriés et mesure les performances individuellement.
Si le DUT prend en charge les caméras externes, telles que les webcams USB, branchez une caméra externe lors de l'exécution de CTS. Sinon, les tests CTS échouent.
GPS/GNSS
Si le DUT prend en charge la fonction de système de positionnement global/système mondial de navigation par satellite (GPS/GNSS), fournissez un signal GPS/GNSS au DUT à 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, ou vous pouvez placer le DUT suffisamment près d'une fenêtre pour qu'il puisse recevoir directement suffisamment de signal GPS/GNSS.
Wi-Fi et IPv6
Les tests CTS nécessitent un réseau Wi-Fi qui prend en charge IPv4 et IPv6, dispose d'une connexion Internet avec un DNS fonctionnel pour IPv4 et IPv6, prend en charge la multidiffusion IP et peut 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éseau sur ce sous-réseau. Cela se produit avec une configuration de point d'accès (AP) Wi-Fi ou en exécutant le DUT sur un sous-réseau isolé sans que d'autres appareils soient connectés.
Si vous n'avez pas accès à un réseau IPv6 natif, à un réseau de transporteur IPv6 ou à un VPN pour passer certains tests en fonction d'IPv6, vous pouvez utiliser un point d'accès Wi-Fi et un tunnel IPv6.
Pour passer CTS, le DUT a besoin des indicateurs UP
, BROADCAST
et MULTICAST
définis sur l'interface Wi-Fi. L'interface Wi-Fi nécessite l'attribution d'adresses IPv4 et IPv6. Vérifiez les propriétés de l'interface Wi-Fi avec adb shell ifconfig
.
RTT Wi-Fi
Android inclut l' API Wi-Fi RTT pour une capacité Wi-Fi aller-retour (RTT) . Cela permet aux appareils de mesurer leur distance aux points d'accès avec une précision de 1 à 2 mètres, ce qui augmente considérablement la précision de la localisation intérieure. Deux appareils recommandés prenant en charge le Wi-Fi RTT sont Google Wifi et le point d'accès fitlet2 de Compulab (réglé sur une bande passante de 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 n'ont pas besoin d'être à côté de l'appareil de test, mais il est recommandé de se trouver à moins de 40 pieds du DUT. Un point d'accès est généralement suffisant.
Configuration de la machine de bureau
BAD et AAPT
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 (AAPT) et d'avoir ajouté l'emplacement de ces outils au chemin système de votre machine.
Pour installer ADB et AAPT, téléchargez les derniers outils de plate-forme Android SDK et outils de création de SDK Android à partir du gestionnaire de SDK d'Android Studio ou de l'outil de ligne de commande sdkmanager .
Assurez-vous que adb
et aapt
se trouvent dans votre chemin système. La commande suivante suppose que vous avez téléchargé les archives du package dans un sous-répertoire appelé android-sdk
dans votre répertoire personnel :
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 OpenJDK11.
- Pour Android 9 et Android 10, installez OpenJDK9.
- Pour Android 7.0, 7.1, 8.0 et 8.1, installez OpenJDK8.
Pour plus de détails, consultez les exigences du JDK .
Configuration de la prise en charge de 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) prises en charge par vos appareils.
Téléchargez et ouvrez la dernière version des fichiers multimédias CTS .
Détection de périphérique
Suivez l'étape pour configurer votre système afin qu'il détecte votre appareil .
Limite de mémoire
Vous souhaiterez peut-être augmenter la mémoire maximale disponible lors de l'exécution du test dans le script cts-tradfed . Reportez-vous à l'exemple CL pour plus d'informations.
Configuration de l'appareil Android
Constructions d'utilisateurs
Un appareil compatible est défini comme un appareil avec une version signée par l'utilisateur/la clé de version. Votre appareil doit exécuter une image système basée sur la version utilisateur connue pour être compatible (Android 4.0 ou version ultérieure) à partir des noms de code, des balises et des numéros de version .
Propriété de construction de premier niveau d'API
Certaines exigences CTS dépendent de la version avec laquelle un appareil a été livré à l'origine. Par exemple, les appareils livrés à l'origine 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 de CTS, les fabricants d'appareils auraient pu définir la propriété de génération ro.product.first_api_level
. La valeur de cette propriété est le premier niveau d'API avec lequel l'appareil a été lancé commercialement.
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 dans le 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 illustré 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 supérieur
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 parmi Codenames, Tags et Build Numbers .
Premier niveau d'API pour Android 8.x ou inférieur
Pour les appareils lancés sur Android 8.x ou une version antérieure, désactivez (supprimez) la propriété ro.product.first_api_level
pour la première version du produit. Pour toutes les générations suivantes, définissez ro.product.first_api_level
sur la valeur de niveau d'API correcte. 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
.
Paquets de cales CTS
Android 10 ou supérieur inclut un format de package appelé APEX . Pour exécuter des tests CTS pour les API de gestion APEX (comme la mise à jour vers une nouvelle version ou le signalement d'APEX actifs), vous devez préinstaller un package CtsShimApex
sur une partition /system
.
Le test de validation de shim APEX vérifie l'implémentation de CtsShimApex
.
exigences ro.apex.updatable
Si la propriété
ro.apex.updatable
est définie surtrue
,CtsShimApex
est requis pour tous les appareils qui prennent en charge 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 de shim APEX vérifie l'implémentation de CtsShimApex
.
Préinstallations et préchargements CtsShim
À partir d'Android 11, CtsShimApex
contient deux applications prédéfinies (construites à partir de la source de génération ), qui ne contiennent aucun code à l'exception du manifeste. CTS utilise ces applications pour tester les privilèges et les autorisations.
Si l'appareil ne prend pas en charge la gestion des packages APEX (c'est-à-dire si 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édéfinies doivent être préinstallées dans le système séparément.
Version de l'appareil | Préinstaller (si APEX pris en charge) | Précharge | ||
---|---|---|---|---|
BRAS | x86 | BRAS | x86 | |
Android 12 | android12-arm-release sous /system/apex/com.android.apex.cts.shim.apex | version android12-x86 sous /system/apex/com.android.apex.cts.shim.apex | android12-arm-CtsShim.apk sous /system/app/CtsShimPrebuilt.apk android12-arm-CtsShimPriv.apk | android12-x86-CtsShim.apk sous /system/app/CtsShimPrebuilt.apk android12-x86-CtsShimPriv.apk |
Android 11 | android11-arm-release sous /system/apex/com.android.apex.cts.shim.apex | version android11-x86 sous /system/apex/com.android.apex.cts.shim.apex | android11-arm-CtsShim.apk sous /system/app/CtsShimPrebuilt.apk android11-arm-CtsShimPriv.apk | android11-x86-CtsShim.apk sous /system/app/CtsShimPrebuilt.apk android11-x86-CtsShimPriv.apk |
Android 10 | version Android10 sous /system/apex/com.android.apex.cts.shim.apex | android10-arm-CtsShim.apk sous /system/app/CtsShimPrebuilt.apk android10-arm-CtsShimPriv.apk | android10-x86-CtsShim.apk sous /system/app/CtsShimPrebuilt.apk android10-x86-CtsShimPriv.apk | |
Android 9, O et O-MR1 | N / A | N / A | bras-CtsShim.apk sous /system/app/CtsShimPrebuilt.apk bras-CtsShimPriv.apk | x86-CtsShim.apk sous /system/app/CtsShimPrebuilt.apk x86-CtsShimPriv.apk |
Pour réussir les tests, préchargez les applications dans les répertoires appropriés sur l'image système sans resigner les applications.
Exemple d'applet
Android 9 a introduit les API Open Mobile. Pour les appareils qui signalent plus d'un élément sécurisé, CTS ajoute des cas de test pour valider le comportement des API Open Mobile. Ces scénarios 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' applet d'exemple eSE et l' applet d'exemple SIM se trouvent dans AOSP.
Voir Test CTS pour Secure Element pour des informations plus détaillées sur les cas de test Open Mobile API et les cas de test de contrôle d'accès.
Exigences de stockage
Les tests de résistance des médias CTS exigent que les clips vidéo soient sur un stockage externe ( /sdcard
). La plupart des clips proviennent de Big Buck Bunny , qui est protégé par les droits d'auteur de 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 prise en charge par l'appareil. Reportez-vous à la section 5 du document Définition de compatibilité Android pour connaître la version de plate-forme des résolutions requises.
Voici les exigences de stockage par résolution de lecture vidéo maximale :
- 480x360 : 98 Mo
- 720x480 : 193 Mo
- 1280x720 : 606 Mo
- 1920x1080 : 1863 Mo
Écran et stockage
- Tout appareil qui n'a pas d'écran intégré doit être connecté à un écran.
Si l'appareil dispose d'un emplacement pour carte mémoire, insérez une carte SD vide. Utilisez une carte SD qui prend en charge le bus ultra haute vitesse (UHS) avec une capacité SDHC ou SDXC ou une carte avec au moins une classe de vitesse 10 ou supérieure pour vous assurer qu'elle peut passer le CTS.
Si l'appareil dispose d'emplacements pour carte SIM, insérez une carte SIM activée dans chaque emplacement. Si l'appareil prend en charge les SMS, chaque carte SIM doit avoir son propre champ de numéro rempli. Pour les appareils exécutant Android 12 ou une version ultérieure, toutes les cartes SIM doivent prendre en charge le stockage des numéros abrégés (ADN). Les cartes GSM et USIM avec le fichier dédié télécom (DF Telecom ) répondent à cette exigence.
Développeur UICC
Pour exécuter des tests d'API d'opérateur CTS, l'appareil doit utiliser une carte SIM avec des privilèges d'opérateur CTS répondant aux exigences spécifiées dans Préparation de l'UICC .
Paramétrage des appareils Androïd
Les données d'usine réinitialisent l'appareil : Paramètres > Sauvegarde et réinitialisation > Réinitialisation des données 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 versions AOSP).Activez le paramètre de localisation s'il y a une fonctionnalité GPS ou Wi-Fi/réseau cellulaire sur l'appareil : Paramètres > Localisation > Activé .
Connectez-vous à un réseau Wi-Fi qui prend en charge IPv6, peut traiter le DUT comme un client isolé (voir Environnement physique ci-dessus) et dispose d'une connexion Internet : Paramètres > Wi-Fi .
Assurez-vous qu'aucun schéma de verrouillage ou mot de passe n'est défini sur l'appareil : Paramètres > Sécurité > Verrouillage de l'écran > Aucun .
Activez le débogage USB sur votre appareil : Paramètres > Options pour les développeurs > Débogage USB .
Réglez l'heure au format 12 heures : Paramètres > Date et heure > Utiliser le format 24 heures > Désactivé .
Configurez l'appareil pour qu'il reste éveillé : Paramètres > Options pour les développeurs > Rester éveillé > Activé .
Sous Android 5.x et 4.4.x uniquement , configurez l'appareil pour qu'il autorise les emplacements fictifs : Paramètres > Options pour les développeurs > Autoriser les emplacements fictifs > Activé .
Sous Android 4.2 ou supérieur , désactivez la vérification des applications USB : Paramètres > Options pour les développeurs > Vérifier les applications via USB > Désactivé .
Sous Android 13 ou version ultérieure , configurez l'appareil pour qu'il autorise le modem factice : Paramètres > Options pour les développeurs > Autoriser le modem factice > Activé .
Lancez le navigateur et fermez tout écran de démarrage/configuration.
Connectez la machine de bureau qui sera utilisée pour tester l'appareil avec un câble USB.
Avant d'exécuter CTS, définissez Roboto2 comme police sans empattement à l'aide d'un paramètre d'affordance accessible à l'utilisateur (non masqué).
Installation du fichier
Installez et configurez les applications d'assistance sur l'appareil.
Configurez votre appareil en fonction de votre version CTS :
CTS versions 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 : Paramètres > Accessibilité > Accessibilité > Délégation du service d'accessibilité .
Versions CTS 6.x ou inférieures : 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 Paramètres > Sécurité > Sélectionner les administrateurs de l'appareil , activez les deux administrateurs de l'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 :
- Naviguez (
cd
) vers le chemin 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 clips jusqu'à une résolution de 720 x 480, exécutez :
./copy_media.sh 720x480
Si vous n'êtes pas sûr de la résolution maximale, copiez tous les fichiers :
./copy_media.sh all
S'il y a plusieurs périphériques sous adb, ajoutez l'option série (
-s
) d'un périphérique spécifique à la fin. Par exemple, pour copier jusqu'à 720 x 480 sur l'appareil portant le numéro de série 1234567, exécutez :./copy_media.sh 720x480 -s 1234567
- Naviguez (