Imposta CTS

Per eseguire CTS, prima prepara l'ambiente fisico, il computer desktop e il dispositivo Android che utilizzi per i test.

Ambiente fisico

Beacon Bluetooth LE

Se il dispositivo in fase di test (DUT) supporta Bluetooth LE, posiziona almeno tre beacon Bluetooth LE a una distanza massima di 5 metri dal DUT per il test di scansione Bluetooth LE. Questi beacon non devono essere configurati né emettono dati specifici e possono essere di qualsiasi tipo, inclusi iBeacon, Eddystone o persino dispositivi che simulano beacon BLE.

Banda ultralarga

Se il DUT supporta la banda ultralarga (UWB), un altro dispositivo che supporta UWB deve essere posizionato sufficientemente vicino e orientato in modo da non avere antenne e zona morta radio. Per i test di accuratezza della distanza, ci sono esigenze di posizionamento e orientamento specifiche. Per maggiori dettagli sulla configurazione, vedi Requisiti UWB. Il test UWB deve essere eseguito manualmente, specificando nella riga di comando quali due dispositivi sono a un metro. Per i dettagli sullo sharding, necessario per questo test, consulta lo sharding locale.

Videocamere

Quando esegui la CTS della fotocamera, utilizza le normali condizioni di illuminazione con un diagramma di pattern di test (ad esempio uno a scacchiera). Posiziona il grafico dei pattern di test in base alla distanza minima di messa a fuoco del DUT per assicurarti che non sia troppo vicino all'obiettivo.

Punta i sensori della videocamera su una scena con un'illuminazione sufficiente per consentire ai sensori sottoposti a test di raggiungere e rimanere al numero massimo di frame target al secondo (f/s) configurato, come specificato in CONTROL_AE_TARGET_FPS_RANGE. Questo vale per tutti i sensori della fotocamera segnalati da getCameraIdList quando il test esegue l'iterazione sui dispositivi elencati e misura le prestazioni singolarmente.

Se il DUT supporta fotocamere esterne, ad esempio le webcam USB, collega una videocamera esterna quando esegui CTS. In caso contrario, i test CTS non riescono.

GPS/GNSS

Se il DUT supporta la funzionalità del sistema di posizionamento globale/sistema satellitare di navigazione globale (GPS/GNSS), fornire un segnale GPS/GNSS al dispositivo a un livello adeguato del segnale per il calcolo della ricezione e della posizione GPS. La parte GPS deve essere conforme allo standard ICD-GPS-200C. Altrimenti, il segnale GPS/GNSS può essere di qualsiasi tipo, ad esempio un simulatore satellitare o un ripetitore GPS/GNSS di segnali esterni oppure posizionare il DUT abbastanza vicino a una finestra da poter ricevere direttamente un segnale GPS/GNSS sufficiente.

Wi-Fi e IPv6

I test CTS richiedono una rete Wi-Fi che supporti IPv4 e IPv6, abbia una connessione a internet con DNS funzionante per IPv4 e IPv6, supporti il multicast IP e possa considerare il DUT come un client isolato. Un client isolato è una configurazione in cui il DUT non ha visibilità per i messaggi broadcast/multinetwork nella subnet in questione. Questo si verifica con una configurazione di punto di accesso Wi-Fi (AP) o eseguendo il DUT su una subnet isolata senza che siano connessi altri dispositivi.

Se non hai accesso a una rete IPv6 nativa, a una rete di operatori IPv6 o a una VPN per superare alcuni test a seconda di IPv6, puoi utilizzare un punto di accesso Wi-Fi e un tunnel IPv6.

Per superare il CTS, il DUT richiede l'impostazione dei flag UP, BROADCAST e MULTICAST sull'interfaccia Wi-Fi. L'interfaccia Wi-Fi richiede l'assegnazione di indirizzi IPv4 e IPv6. Verifica le proprietà dell'interfaccia Wi-Fi con adb shell ifconfig.

Per i dispositivi che supportano Wi-Fi STA/STA Concurrency, sono necessarie più reti Wi-Fi (almeno due). Per trasmettere il CTS, le reti Wi-Fi devono funzionare su bande diverse con SSID diversi o sullo stesso SSID con BSSID diversi.

RTT Wi-Fi

Android include l'API Wi-Fi RTT per una funzionalità di tempo di round trip Wi-Fi (RTT). In questo modo i dispositivi possono misurare la distanza dai punti di accesso con una precisione compresa tra 1 e 2 metri, aumentando notevolmente la precisione della posizione all'interno degli ambienti. Due dispositivi consigliati che supportano la funzionalità Wi-Fi RTT sono Google Wifi e il punto di accesso fitlet2 di Compulab (impostato su una larghezza di banda di 40 MHz a 5 GHz).

I punti di accesso devono essere accesi, ma non richiedono una connessione di rete. I punti di accesso non devono essere vicini al dispositivo di test, ma è consigliabile essere a una distanza massima di 12 metri dal DUT. In genere è sufficiente un punto di accesso.

Configurazione computer desktop

Attenzione: CTS supporta i computer Linux a 64 bit. CTS non è supportato sui sistemi operativi Windows o MacOS.

FFMPEG

Installare il pacchetto ffmpeg versione 5.1.3 (o successiva) sul computer host.

Upgrade della macchina host

Si consiglia vivamente di eseguire l'upgrade della RAM della macchina host CTS a 128 GB e dell'HDD a 256 GB. È necessario per accogliere il maggior numero di scenari di test CTS e un aumento della prenotazione dello spazio heap Java trascritto.

ADB e AAPT2

Prima di eseguire CTS, assicurati di aver installato le versioni recenti sia di Android Debug Bridge (adb) sia di Android Asset Packaging Tool (AAPT2) e di aver aggiunto la posizione di questi strumenti al percorso di sistema della macchina.

Per installare ADB e AAPT2, scarica gli ultimi strumenti della piattaforma SDK Android e gli strumenti di creazione dell'SDK Android più recenti da SDK Manager di Android Studio o dallo strumento a riga di comando sdkmanager.

Assicurati che adb e aapt2 siano presenti nel percorso di sistema. Il seguente comando presuppone che tu abbia scaricato gli archivi dei pacchetti in una sottodirectory denominata android-sdk della tua home directory:

export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>

Java Development Kit per Ubuntu

Installa la versione corretta di Java Development Kit (JDK).

  • Per Android 11, installa OpenJDK11.
  • Per Android 9 e Android 10, installa OpenJDK9.
  • Per Android 7.0, 7.1, 8.0 e 8.1, installa OpenJDK8.

Per maggiori dettagli, consulta i requisiti JDK.

Configurazione per il supporto Python

Installa virtualenv per la tua piattaforma seguendo le istruzioni di installazione.

Puoi verificare che l'installazione sia riuscita richiamando virtualenv -h.

File CTS

Scarica e apri i pacchetti CTS dai Download della suite di test di compatibilità corrispondenti alla versione Android dei tuoi dispositivi e a tutte le interfacce binarie delle applicazioni (ABI) supportate dai tuoi dispositivi.

Scarica e apri la versione più recente dei file multimediali CTS.

Scarica i file CTS relativi a Mainline (facoltativo)

Quando esegui una versione CTS per la prima volta, CTS scarica dinamicamente alcuni file CTS correlati a Mainline, aggiungendo almeno 10 minuti al tempo di esecuzione, a seconda della velocità della rete.

Per evitare questo ulteriore tempo di esecuzione CTS, puoi scaricare i file CTS relativi a Mainline prima di eseguire la versione CTS seguendo queste istruzioni:

  1. Ottieni il livello API Android sul dispositivo eseguendo:

    adb shell getprop ro.build.version.sdk
    
  2. Segui le istruzioni nello script download_mcts.sh per scaricare i file CTS di Mainline.

    Il download richiede almeno 10 minuti, a seconda della velocità della rete.

Rilevamento dei dispositivi

Segui il passaggio per configurare il sistema in modo da rilevare il dispositivo.

Limite di memoria

Potresti voler aumentare la memoria massima disponibile durante l'esecuzione di test nello script cts-tradefed. Per ulteriori informazioni, fai riferimento all'esempio di codice CL.

Configurazione dispositivo Android

Build utente

Per dispositivo compatibile si intende un dispositivo con una build firmata dall'utente o con una chiave di rilascio. Sul dispositivo deve essere in esecuzione un'immagine di sistema basata sulla build utente nota compatibile (Android 4.0 o versioni successive) contenuta in nomi in codice, tag e numeri build.

Proprietà di compilazione a livello API primo

Alcuni requisiti CTS dipendono dalla build con cui è stato originariamente fornito. Ad esempio, i dispositivi originariamente forniti con build precedenti potrebbero essere esclusi dai requisiti di sistema che si applicano ai dispositivi su cui vengono fornite versioni successive.

Per rendere queste informazioni disponibili a CTS, i produttori di dispositivi avrebbero potuto definire la proprietà del momento della build ro.product.first_api_level. Il valore di questa proprietà è il primo livello API con cui il dispositivo è stato lanciato commercialmente.

I produttori di dispositivi possono riutilizzare l'implementazione sottostante comune per lanciare un nuovo prodotto come upgrade di un prodotto esistente nello stesso gruppo di dispositivi. I produttori di dispositivi possono facoltativamente impostare il livello API del prodotto esistente su ro.product.first_api_level, in modo da applicare i requisiti di upgrade a CTS e Treble/VTS.

I produttori di dispositivi possono definire PRODUCT_SHIPPING_API_LEVEL nel loro file device.mk per impostare questa proprietà, come mostrato nell'esempio seguente:

# 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

Primo livello API per Android 9 o versioni successive

Per i dispositivi lanciati con Android 9 o versioni successive, imposta la proprietà ro.product.first_api_level su un valore valido da Nomi in codice, tag e numeri build.

Primo livello API per Android 8.x o versioni precedenti

Per i dispositivi lanciati su Android 8.x o versioni precedenti, annulla l'impostazione (rimuovi) della proprietà ro.product.first_api_level per la prima build del prodotto. Per tutte le build successive, imposta ro.product.first_api_level sul valore corretto del livello API. In questo modo la proprietà può identificare correttamente un nuovo prodotto e conservare le informazioni sul primo livello API del prodotto. Se il flag non viene configurato, Android assegna Build.VERSION.SDK_INT a ro.product.first_api_level.

Pacchetti shim CTS

Android 10 o versioni successive include un formato di pacchetto chiamato APEX. Per eseguire i test CTS per le API di gestione APEX (ad esempio, l'aggiornamento a una nuova versione o la segnalazione degli APEX attivi), devi preinstallare un pacchetto CtsShimApex su una partizione /system.

Il test di convalida dello shim APEX verifica l'implementazione di CtsShimApex.

Requisiti ro.apex.updatable

  • Se la proprietà ro.apex.updatable è impostata su true, CtsShimApex è obbligatorio per tutti i dispositivi che supportano la gestione di pacchetti APEX.

  • Se la proprietà ro.apex.updatable non è presente o non è impostata, non è necessario preinstallare CtsShimApex su un dispositivo.

Il test di convalida dello shim APEX verifica l'implementazione di CtsShimApex.

Preinstallazioni e precaricamenti CtsShim

A partire da Android 11, CtsShimApex contiene due app predefinite (create dal codice sorgente della build), che non contengono codice tranne il manifest. CTS usa queste app per testare privilegi e autorizzazioni.

Se il dispositivo non supporta la gestione dei pacchetti APEX (ovvero se la proprietà ro.apex.updatable non è presente o non è impostata) oppure se il dispositivo esegue la versione 10 o versioni precedenti, le due app predefinite devono essere preinstallate separatamente nel sistema.

Se il protocollo APEX è supportato, le preinstallazioni per la release appropriata devono essere inserite come /system/apex/com.android.apex.cts.shim.apex.

Se vengono utilizzate normali app predefinite, i valori CtsShim e CtsShimPriv per la release appropriata devono essere posizionati rispettivamente come /system/app/CtsShimPrebuilt.apk e /system/priv-app/CtsShimPrivPrebuilt.apk.

La seguente tabella elenca le preinstallazioni e i precaricamenti disponibili per ogni versione e architettura del dispositivo.

Versione dispositivo Preinstalla
(se il protocollo APEX è supportato)
Precarica
ABILITA x86 ABILITA x86
Android 14 android14-arm-release android14-x86-release android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

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

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

Android 12 android12-arm-release android12-x86-release android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Android 11 android11-arm-release android11-x86-release android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Android 10 android10-release android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

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

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

Per superare i test, precarica le app nelle directory appropriate dell'immagine di sistema senza firmare nuovamente le app.

Applet di esempio

Android 9 ha introdotto le API Open Mobile. Per i dispositivi che segnalano più di un elemento sicuro, CTS aggiunge scenari di test per convalidare il comportamento delle API Open Mobile. Questi scenari di test richiedono l'installazione una tantum di un applet di esempio nel Secure Element (eSE) incorporato del dispositivo mobile o nella scheda SIM utilizzata dal DUT. L'applet di esempio eSE e l'applet di esempio SIM si trovano in AOSP.

Per informazioni più dettagliate sugli scenari di test Open Mobile API e gli scenari di test di controllo dell'accesso, consulta Test CTS per Secure Element.

Requisiti per lo spazio di archiviazione

Le prove di stress test sui media CTS richiedono che i video clip siano su un'unità di archiviazione esterna (/sdcard). La maggior parte dei clip proviene da Big Buck Bunny, che è protetto da copyright di Mergeer Foundation ai sensi della licenza Creative Commons Attribution 3.0.

Lo spazio richiesto dipende dalla risoluzione massima di riproduzione video supportata dal dispositivo. Consulta la sezione 5 del documento sulla definizione della compatibilità Android per conoscere la versione della piattaforma delle risoluzioni richieste.

Di seguito sono riportati i requisiti di archiviazione previsti per la risoluzione massima di riproduzione dei video:

  • 480 x 360: 98 MB
  • 720 x 480: 193 MB
  • 1280 x 720: 606 MB
  • 1920 x 1080: 1863 MB

Schermo e spazio di archiviazione

  • Qualsiasi dispositivo che non dispone di uno schermo incorporato deve essere collegato a uno schermo.
  • Se il dispositivo ha uno slot per scheda di memoria, inserisci una scheda SD vuota. Utilizza una scheda SD che supporti un bus UHS (Ultra High Speed) con capacità SDHC o SDXC oppure una con classe di velocità minima 10 o superiore per garantire che possa passare il CTS.

  • Se il dispositivo è dotato di slot per scheda SIM, inserisci una scheda SIM attiva in ogni slot. Se il dispositivo supporta gli SMS, ogni scheda SIM deve avere un proprio campo numerico compilato. Per i dispositivi con Android 12 o versioni successive, tutte le schede SIM devono supportare la memorizzazione dei numeri ADN (Abbreviazione). Le schede GSM e USIM con il file dedicato alle telecomunicazioni (DFTelecom) soddisfano questo requisito.

UICC sviluppatore

Per eseguire i test dell'API dell'operatore CTS, il dispositivo deve utilizzare una SIM con privilegi dell'operatore CTS che soddisfino i requisiti specificati in Preparazione della UICC.

Configurazione dispositivo Android

  1. Ripristina i dati di fabbrica del dispositivo: Impostazioni > Backup e ripristino > Ripristino dati di fabbrica.

  2. Imposta l'inglese (Stati Uniti) come lingua del dispositivo: Impostazioni > Lingua e immissione > Lingua.

  3. Se il dispositivo supporta la personalizzazione dei caratteri predefiniti, imposta la famiglia di caratteri sans-serif predefinita su Roboto (la famiglia di caratteri sans-serif predefinita utilizzata nelle build AOSP).

  4. Attiva l'impostazione di geolocalizzazione se sul dispositivo è presente una funzione GPS o di rete Wi-Fi/cellulare: Impostazioni > Posizione > On.

  5. Connettiti a una rete Wi-Fi che supporta IPv6, può considerare il DUT come un client isolato (vedi Ambiente fisico sopra) e disporre di una connessione a internet: Impostazioni > Wi-Fi.

  6. Assicurati che sul dispositivo non sia impostata alcuna sequenza o password di blocco: Impostazioni > Sicurezza > Blocco schermo > Nessuno.

  7. Attiva Debug USB sul dispositivo: Impostazioni > Opzioni sviluppatore > Debug USB.

  8. Imposta l'ora sul formato 12 ore: Impostazioni > Data e ora > Usa formato 24 ore > Off.

  9. Impostare il dispositivo in modo che rimanga attivo: Impostazioni > Opzioni sviluppatore > Resta attivo > On.

  10. In Solo Android 5.x e 4.4.x, imposta il dispositivo in modo da consentire le posizioni fittizie: Impostazioni > Opzioni sviluppatore > Consenti posizioni fittizie > On.

  11. In Android 4.2 o versioni successive, disattiva la verifica delle app USB: Impostazioni > Opzioni sviluppatore > Verifica app tramite USB > Off.

  12. In Android 13 o versioni successive, imposta il dispositivo in modo da consentire il modem fittizio: Impostazioni > Opzioni sviluppatore > Consenti modem fittizio > On.

  13. Avvia il browser e chiudi tutte le schermate di avvio/configurazione.

  14. Collega il computer desktop che verrà utilizzato per testare il dispositivo con un cavo USB.

  15. Prima di eseguire CTS, imposta Roboto2 come font Sans Serif utilizzando un'impostazione accessibile dall'utente (non nascosta).

Installazione di file

Installa e configura le app helper sul dispositivo.

  1. Configura il dispositivo in base alla versione CTS:

    • Versioni di CTS dalla versione 2.1 R2 alla versione 4.2 R4. Configura il dispositivo (o l'emulatore) per eseguire i test di accessibilità con: adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      Sul dispositivo, abilita la delega: Impostazioni > Accessibilità > Accessibilità > Delega del servizio di accessibilità.

    • CTS 6.x o versioni precedenti: sui dispositivi con Dichiarazione di conformità android.software.device_admin, configura il dispositivo per l'esecuzione del test di amministrazione del dispositivo utilizzando: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      In Impostazioni > Sicurezza > Seleziona amministratori dispositivo, abilita i due amministratori del dispositivo android.deviceadmin.cts.CtsDeviceAdminReceiver*. Assicurati che android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver e tutti gli altri amministratori dei dispositivi precaricati rimangano disattivati.

  2. Copia i file multimediali CTS sul dispositivo nel seguente modo:

    1. Vai al percorso (cd) in cui i file multimediali vengono scaricati e decompressi.
    2. Modifica le autorizzazioni del file: chmod u+x copy_media.sh

    3. Copia i file necessari:

      • Per copiare clip con una risoluzione massima di 720 x 480, esegui:

        ./copy_media.sh 720x480
        
      • Se non sei sicuro della risoluzione massima, copia tutti i file:

        ./copy_media.sh all
        
      • Se in ADB sono presenti più dispositivi, aggiungi alla fine l'opzione seriale (-s) di un dispositivo specifico. Ad esempio, per copiare fino a 720 x 480 sul dispositivo con il numero seriale 1234567, esegui:

        ./copy_media.sh 720x480 -s 1234567