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 prova (DUT) supporta Bluetooth LE, posiziona almeno tre beacon Bluetooth LE entro 5 metri dal DUT per i test di scansione Bluetooth LE. Questi beacon non devono essere configurati o emettere nulla di specifico 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 precisione della distanza, sono necessarie specifiche esigenze di posizionamento e orientamento. Per i dettagli sulla configurazione, consulta Requisiti UWB. Il test UWB deve essere eseguito manualmente, specificando sulla riga di comando i due dispositivi distanti un metro. Per informazioni dettagliate sullo sharding richiesto per questo test, consulta Sharding locale.

Fotocamere

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 del pattern di prova in base alla distanza minima di messa a fuoco del DUT per assicurarti che non sia troppo vicino all'obiettivo.

Punta i sensori della fotocamera verso una scena con illuminazione sufficiente per consentire ai sensori in prova di raggiungere e mantenere i fotogrammi al secondo (FPS) target configurati 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 webcam USB, collega una fotocamera esterna quando esegui il 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. In caso contrario, il segnale GPS/GNSS può essere di qualsiasi tipo, incluso un simulatore di satelliti o un ripetitore GPS/GNSS di segnali esterni oppure puoi posizionare il DUT abbastanza vicino a una finestra in modo che possa 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 trattare il DUT come un client isolato. Un client isolato è una configurazione in cui il DUT non ha visibilità ai messaggi di trasmissione/multirete su quella sottorete. Questo si verifica con una configurazione di punto di accesso Wi-Fi (AP) o eseguendo il DUT su una subnet isolata senza altri dispositivi connessi.

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

Per superare il CTS, il DUT deve avere i flag UP, BROADCAST e MULTICAST impostati sull'interfaccia Wi-Fi. All'interfaccia Wi-Fi devono essere assegnati indirizzi IPv4 e IPv6. Controlla le proprietà dell'interfaccia Wi-Fi con adb shell ifconfig.

Per i dispositivi che supportano la contemporaneità STA/STA Wi-Fi, sono necessarie più reti Wi-Fi (almeno 2). Per superare 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 di 1-2 metri, aumentando notevolmente la precisione della posizione al chiuso. Due dispositivi consigliati che supportano il RTT Wi-Fi sono Google Wifi e l'access point 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 che si trovino entro 12 metri dal DUT. In genere è sufficiente un punto di accesso.

Configurazione del computer

Attenzione: CTS supporta le macchine Linux a 64 bit. CTS non è supportato su Windows o macOS.

FFMPEG

Installa il pacchetto ffmpeg versione 5.1.3 (o successiva) sulla macchina host.

Requisito della macchina host

Il requisito minimo per la macchina host CTS è 32 GiB di RAM e 256 GiB di capacità su disco. Questo è necessario per supportare l'aumento del numero di casi di test CTS e un aumento della prenotazione dello spazio heap Java in Tradefed.

ADB e AAPT2

Prima di eseguire il 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 tua macchina.

Per installare ADB e AAPT2, scarica le ultime versioni di Android SDK Platform Tools e Android SDK Build Tools da SDK Manager di Android Studio o dallo strumento a riga di comando sdkmanager.

Assicurati che adb e aapt2 siano nel percorso di sistema. Il seguente comando assume che tu abbia scaricato gli archivi del pacchetto in una sottodirectory denominata android-sdk nella 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 del 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, vedi i requisiti JDK.

Configurazione per il supporto di Python

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

Puoi verificare che l'installazione sia andata a buon fine richiamando virtualenv -h.

File CTS

Scarica e apri i pacchetti CTS da Download di Compatibility Test Suite corrispondenti alla versione di Android dei tuoi dispositivi e a tutte le interfacce di codice macchina dell'applicazione (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, il che aggiunge almeno 10 minuti al tempo di esecuzione, a seconda della velocità della rete.

Per evitare questo tempo di esecuzione CTS aggiuntivo, puoi scaricare i file CTS correlati 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

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

Configurazione del dispositivo Android

Build utente

Un dispositivo compatibile è definito come un dispositivo con una build firmata con chiave utente/release. Sul dispositivo deve essere in esecuzione un'immagine di sistema basata sulla build utente compatibile (Android 4.0 o versioni successive) riportata in Nomi in codice, tag e numeri di build.

Proprietà di compilazione a livello di API

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

Per rendere queste informazioni disponibili per CTS, i produttori di dispositivi potrebbero aver definito la proprietà di compilazione 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 di base comune per lanciare un nuovo prodotto come upgrade di un prodotto esistente nello stesso gruppo di dispositivi. I produttori di dispositivi possono impostare facoltativamente il livello API del prodotto esistente su ro.product.first_api_level, in modo che i requisiti di upgrade vengano applicati per CTS e Treble/VTS.

I produttori di dispositivi possono definire PRODUCT_SHIPPING_API_LEVEL nel loro 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 tra quelli indicati in Nomi in codice, tag e numeri di build.

Primo livello API per Android 8.x o versioni precedenti

Per i dispositivi lanciati su Android 8.x o versioni precedenti, imposta la proprietà ro.product.first_api_level su un valore non impostato (rimuovila) 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 è impostato, Android assegna Build.VERSION.SDK_INT a ro.product.first_api_level.

Pacchetti shim CTS

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

Il test di convalida dell'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 risulta mancante o non è impostata, CtsShimApex non è necessario che sia preinstallato su un dispositivo.

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

CtsShim esegue preinstallazioni e precaricamenti

A partire da Android 11, CtsShimApex contiene due app precompilate (create da build source), che non contengono alcun codice tranne il manifest. CTS utilizza queste app per verificare i privilegi e le autorizzazioni.

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

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

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

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

Versione dispositivo Preinstalla
(se APEX è supportato)
Precarica
ABILITA x86 ABILITA x86
Android 15 android15-arm-release android15-x86-release android15-arm-CtsShim.apk

android15-arm-CtsShimPriv.apk

android15-x86-CtsShim.apk

android15-x86-CtsShimPriv.apk

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/D N/D 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 di sicurezza, CTS aggiunge casi di test per convalidare il comportamento delle API Open Mobile. Questi casi di test richiedono l'installazione una tantum di un applet di esempio nell'elemento di sicurezza integrato (eSE) del DUT 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 sui casi di test dell'API Open Mobile e dei casi di test di controllo dell'accesso, consulta CTS Test for Secure Element.

Requisiti per lo spazio di archiviazione

I test di stress dei contenuti multimediali CTS richiedono che i clip video siano su una memoria esterna (/sdcard). La maggior parte dei clip proviene da Big Buck Bunny, di proprietà della Blender 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 senza schermo integrato deve essere connesso a un suo schermo.
  • Se il dispositivo ha uno slot per schede di memoria, collega una scheda SD vuota. Utilizza una scheda SD che supporti il bus UHS (Ultra High Speed) con capacità SDHC o SDXC o una con almeno classe di velocità 10 o superiore per assicurarti che possa superare il CTS.

  • Se il dispositivo è dotato di slot per schede SIM, inserisci una scheda SIM attivata in ogni slot. Se il dispositivo supporta gli SMS, ogni scheda SIM deve avere il proprio campo del numero 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 per le 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 del dispositivo Android

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

  2. Imposta la lingua del dispositivo su inglese (Stati Uniti): 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ò trattare il DUT come un cliente isolato (vedi Ambiente fisico sopra) e dispone 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 il debug USB sul dispositivo: Impostazioni > Opzioni sviluppatore > Debug USB.

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

  9. Imposta il dispositivo in modo che rimanga attivo: Impostazioni > Opzioni sviluppatore > Rimani 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 tramite 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 ignora eventuali schermate di avvio/configurazione.

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

  15. Prima di eseguire CTS, imposta Roboto2 come carattere senza grazie utilizzando un'impostazione di affordance accessibile all'utente (non nascosta).

Installazione di file

Installa e configura le app helper sul dispositivo.

  1. Configura il dispositivo in base alla versione CTS:

    • Versioni CTS da 2.1 R2 a 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à.

    • Versioni CTS 6.x o precedenti: sui dispositivi che dichiaranoandroid.software.device_admin, configura il dispositivo in modo da eseguire il test di amministrazione del dispositivo utilizzando:adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      In Impostazioni > Sicurezza > Seleziona amministratori dispositivo, attiva i due amministratori dispositivo android.deviceadmin.cts.CtsDeviceAdminReceiver*. Assicurati che android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver e qualsiasi altro amministratore del dispositivo precaricato 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 i clip fino a una risoluzione di 720 x 480, esegui:

        ./copy_media.sh 720x480
        
      • Se hai dubbi sulla risoluzione massima, copia tutti i file:

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

        ./copy_media.sh 720x480 -s 1234567