Configurer le CTS

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.

Bande ultra-large

Si le DUT prend en charge l'ultra-large bande (UWB), un autre appareil prenant en charge l'UWB doit être positionné suffisamment près et orienté de manière à ne pas avoir d'antenne ni de zone morte radio. Pour les tests de précision de distance, il existe des besoins spécifiques en matière de positionnement et d’orientation. Pour plus de détails sur la configuration, consultez Exigences UWB . Le test UWB doit être exécuté manuellement, en précisant sur la ligne de commande quels deux appareils sont distants d'un mètre. Pour plus de détails sur le partitionnement requis pour ce test, voir Partage local .

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 .

Pour les appareils prenant en charge la concurrence Wi-Fi STA/STA , plusieurs réseaux Wi-Fi (au moins 2) sont requis. Pour passer le CTS, les réseaux Wi-Fi doivent fonctionner sur différentes bandes avec des SSID différents ou sur le même SSID avec des BSSID différents.

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 AAPT2

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 (AAPT2) et d'avoir ajouté l'emplacement de ces outils au chemin système de votre ordinateur.

Pour installer ADB et AAPT2, 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 aapt2 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 sur true , 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 que CtsShimApex 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 14 Android14-arm-release version Android14-x86 android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

Android 13 android13-arm-release version Android13-x86 android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

Android 12 version Android à 12 bras version Android12-x86 android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Android 11 version Android11-Arm version Android11-x86 android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Android 10 version Android10 android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

Android 9, O et O-MR1 N / A N / A arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.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 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

  1. Les données d'usine réinitialisent l'appareil : Paramètres > Sauvegarder et réinitialiser > Réinitialisation des données d'usine .

  2. Définissez la langue de votre appareil sur Anglais ( États-Unis ) : Paramètres > Langue et saisie > Langue .

  3. Si l'appareil prend en charge la personnalisation des polices par défaut, définissez la famille de polices sans-serif par défaut sur Roboto (la famille de polices sans-serif par défaut utilisée dans les versions AOSP).

  4. 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é .

  5. 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 .

  6. 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 .

  7. Activez le débogage USB sur votre appareil : Paramètres > Options du développeur > Débogage USB .

  8. Réglez l'heure au format 12 heures : Paramètres > Date et heure > Utiliser le format 24 heures > Désactivé .

  9. Configurez l'appareil pour qu'il reste éveillé : Paramètres > Options du développeur > Rester éveillé > Activé .

  10. 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é .

  11. 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é .

  12. 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é .

  13. Lancez le navigateur et fermez tout écran de démarrage/configuration.

  14. Connectez l'ordinateur de bureau qui sera utilisé pour tester l'appareil avec un câble USB.

  15. 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.

  1. 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 que android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver et tout autre administrateur de périphérique préchargé restent désactivés.

  2. Copiez les fichiers multimédias CTS sur l'appareil comme suit :

    1. Accédez ( cd ) au chemin où les fichiers multimédias sont téléchargés et décompressés.
    2. Modifiez les autorisations du fichier : chmod u+x copy_media.sh

    3. 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