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 testé (DUT) prend en charge Bluetooth LE, placez au moins trois balises Bluetooth LE à moins de 5 mètres de l'DUT pour le test de numérisation 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 diagramme de motif de test (tel qu'un motif en damier). Placez la mire de mire en fonction de la distance de mise au point minimale du DUT pour vous assurer qu'elle n'est pas trop proche de l'objectif.
Pointez les capteurs de la caméra vers une scène avec un éclairage suffisant pour permettre aux capteurs testés d'atteindre et de rester aux images cibles maximales configurées par seconde (FPS), comme spécifié dans CONTROL_AE_TARGET_FPS_RANGE
. Cela s'applique à tous les capteurs de caméra signalés par getCameraIdList
, car le test parcourt 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 localisation GPS. La partie GPS doit être conforme à la CIM-GPS-200C. Sinon, le signal GPS/GNSS peut être de n'importe quelle nature, 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 prenant en charge IPv4 et IPv6, disposant d'une connexion Internet avec un DNS fonctionnel pour IPv4 et IPv6, prenant en charge la multidiffusion 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é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 d'opérateur IPv6 ou à un VPN pour passer 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 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
.
Wi-Fi RTT
Android inclut l' API Wi-Fi RTT pour une fonctionnalité Wi-Fi aller-retour (RTT) . Cela permet aux appareils de mesurer leur distance jusqu'aux points d'accès avec une précision de 1 à 2 mètres, augmentant ainsi considérablement la précision de la localisation en intérieur. 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. Il n'est pas nécessaire que les points d'accès se trouvent à côté du dispositif de test, mais il est recommandé de les trouver à moins de 40 pieds du DUT. Un seul point d'accès est généralement suffisant.
Configuration de l'ordinateur de bureau
Attention : CTS supporte les machines Linux 64 bits. CTS n'est pas pris en charge sur le système d'exploitation Windows ou MacOS.
FFMPEG
Installez le package ffmpeg version 5.1.3 (ou ultérieure) sur la machine hôte.
Mise à niveau de la machine hôte
Il est fortement recommandé de mettre à niveau la RAM de la machine hôte CTS à 128 Go et le disque dur à 256 Go. Il est nécessaire pour s'adapter au nombre croissant de cas de test CTS et à l'augmentation de la réservation d'espace de tas Java dans tradefed.
BAD et AAPT
Avant d'exécuter 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 ordinateur.
Pour installer ADB et AAPT, téléchargez les derniers outils de plate-forme SDK Android et les 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 Java Development Kit (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 pour la prise en charge de Python
Installez virtualenv
pour votre plateforme 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 d'appareil
Suivez l'étape pour configurer votre système afin de détecter votre appareil .
Limite de mémoire
Vous souhaiterez peut-être augmenter la mémoire maximale disponible lors du test dans le script cts-tradefed . Reportez-vous à l'exemple CL pour plus d'informations.
Configuration de l'appareil Android
Constructions utilisateur
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 build .
Propriété de construction du premier niveau d'API
Certaines exigences CTS dépendent de la version avec laquelle un appareil a été initialement livré. 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 de CTS, les fabricants d'appareils auraient pu définir la propriété au moment de la construction ro.product.first_api_level
. La valeur de cette propriété correspond au 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 version antérieure
Pour les appareils lancés sur Android 8.x ou version antérieure, désactivez (supprimez) la propriété ro.product.first_api_level
pour la première version du produit. Pour toutes les versions ultérieures, définissez ro.product.first_api_level
sur la valeur correcte du niveau d'API. Cela permet à la propriété d'identifier correctement un nouveau produit et de conserver les informations sur le premier niveau 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 version ultérieure 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 la création de rapports sur les APEX actifs), vous devez préinstaller un package CtsShimApex
sur une partition /system
.
Le test de validation des cales APEX vérifie la mise en œuvre de CtsShimApex
.
Exigences ro.apex.updatable
Si la propriété
ro.apex.updatable
est définie surtrue
,CtsShimApex
est requis pour tous les appareils prenant en charge la gestion des packages APEX.Si la propriété
ro.apex.updatable
est manquante ou n'est pas définie, il n'est pas nécessaire queCtsShimApex
soit préinstallé sur un appareil.
Le test de validation des cales APEX vérifie la mise en œuvre de CtsShimApex
.
CtsShim préinstalle et précharge
À partir d'Android 11, CtsShimApex
contient deux applications prédéfinies (construites à partir de build source ), qui ne contiennent aucun code à l'exception du manifeste. CTS utilise ces applications pour tester les privilèges et autorisations.
Si l'appareil ne prend pas en charge la gestion des packages 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édéfinies doivent être préinstallées dans le système séparément.
Si APEX est pris en charge, les préinstallations de la version appropriée doivent être placées sous /system/apex/com.android.apex.cts.shim.apex
.
Si des applications prédéfinies classiques sont utilisées, CtsShim
et CtsShimPriv
pour la version appropriée doivent être placés respectivement sous /system/app/CtsShimPrebuilt.apk
et /system/priv-app/CtsShimPrivPrebuilt.apk
.
Le tableau suivant répertorie les préinstallations et préchargements disponibles pour chaque version et architecture de périphérique.
Version de l'appareil | Préinstaller (si APEX pris en charge) | Préchargement | ||
---|---|---|---|---|
BRAS | x86 | BRAS | x86 | |
Android 13 | android13-arm-release | version Android13-x86 | android13-arm-CtsShim.apk | android13-x86-CtsShim.apk |
Android 12 | version Android à 12 bras | version Android12-x86 | android12-arm-CtsShim.apk | android12-x86-CtsShim.apk |
Android 11 | version Android11-Arm | version Android11-x86 | android11-arm-CtsShim.apk | android11-x86-CtsShim.apk |
Android 10 | version Android10 | 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 sur l'image système sans signer à nouveau les applications.
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 peuvent être trouvés dans AOSP.
Voir Test CTS pour Secure Element pour des informations plus détaillées sur les scénarios de test de l'API Open Mobile et les scénarios de test du contrôle d'accès.
Exigences de stockage
Les tests de résistance des médias CTS nécessitent que les clips vidéo se trouvent 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 maximale de lecture vidéo prise en charge 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 par résolution maximale de lecture vidéo :
- 480x360 : 98 Mo
- 720x480 : 193 Mo
- 1280x720 : 606 Mo
- 1920 x 1080 : 1 863 Mo
Écran et stockage
- Tout appareil ne disposant pas d'écran intégré doit être connecté à un écran.
Si l'appareil dispose d'un emplacement pour carte mémoire, branchez une carte SD vide. Utilisez une carte SD prenant 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, branchez 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 renseigné. Pour les appareils fonctionnant sous Android 12 ou version ultérieure, toutes les cartes SIM doivent prendre en charge le stockage des numéros de composition abrégés (ADN). Les cartes GSM et USIM avec le fichier dédié télécom (DF Telecom ) satisfont à cette exigence.
Développeur UICC
Pour exécuter les tests de l'API de l'opérateur CTS, l'appareil doit utiliser une carte SIM avec les privilèges de l'opérateur CTS répondant aux exigences spécifiées dans Préparation de l'UICC .
Configuration de l'appareil Android
Les données d'usine réinitialisent l'appareil : Paramètres > Sauvegarder et réinitialiser > 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 existe une fonctionnalité GPS ou réseau Wi-Fi/cellulaire sur l'appareil : Paramètres > Localisation > Activé .
Connectez-vous à un réseau Wi-Fi prenant en charge IPv6, pouvant traiter le DUT comme un client isolé (voir Environnement physique ci-dessus) et disposant 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 du développeur > 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 du développeur > Rester éveillé > Activé .
Sous Android 5.x et 4.4.x uniquement , configurez l'appareil pour autoriser les emplacements fictifs : Paramètres > Options du développeur > Autoriser les emplacements fictifs > Activé .
Sous Android 4.2 ou version ultérieure , désactivez la vérification des applications USB : Paramètres > Options du développeur > Vérifier les applications via USB > Désactivé .
Sous Android 13 ou version ultérieure , configurez l'appareil pour autoriser le modem fictif : Paramètres > Options du développeur > Autoriser le modem simulé > Activé .
Lancez le navigateur et fermez tout écran de démarrage/configuration.
Connectez l'ordinateur de bureau qui sera utilisé 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'accessibilité accessible à l'utilisateur (non masqué).
Installation de fichiers
Installez et configurez les applications d'assistance sur l'appareil.
Configurez votre appareil en fonction de votre version 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 : 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 périphérique , activez les deux administrateurs de périphérique
android.deviceadmin.cts.CtsDeviceAdminReceiver*
. Assurez-vous queandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
et tout autre administrateur de périphérique préchargé restent désactivés.
Copiez les fichiers multimédias CTS sur l'appareil comme suit :
- Accédez (
cd
) au 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 appareils sous adb, ajoutez l'option série (
-s
) d'un appareil spécifique à la fin. Par exemple, pour copier jusqu'à 720 x 480 sur le périphérique portant le numéro de série 1234567, exécutez :./copy_media.sh 720x480 -s 1234567
- Accédez (