Imposta CTS

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

Ambiente fisico

Beacon Bluetooth LE

Se il dispositivo in test (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 supportante la tecnologia deve essere posizionato abbastanza vicino e orientato in modo da non avere antenne e zone morte 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 il CTS della fotocamera, utilizza condizioni di illuminazione normali con un grafico di pattern di prova (ad esempio un pattern a scacchi). 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 videocamera segnalati da getCameraIdList man mano che il test esegue l'iterazione sui dispositivi elencati e misura il rendimento individualmente.

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 andranno a buon fine.

GPS/GNSS

Se il DUT supporta la funzionalità del sistema di posizionamento globale/sistema di navigazione globale satellitare (GPS/GNSS), fornisci un segnale GPS/GNSS al DUT a un livello di segnale adeguato per la ricezione e il calcolo 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 accade con una configurazione del punto di accesso Wi-Fi (AP) o con l'esecuzione del DUT su una sottorete 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 (RTT) del Wi-Fi. 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 1 metro dal DUT. In genere è sufficiente un punto di accesso. Per risultati coerenti del test CTS RTT Wi-Fi, assicurati che il canale abbia un utilizzo ridotto.

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 GB di RAM e 256 GB di capacità del 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.

(Facoltativo) Scarica i file CTS relativi alla campagna principale

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. Per ottenere il livello API Android sul dispositivo, esegui:

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

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

Rilevamento dei dispositivi

Segui il passaggio per configurare il sistema in modo che rilevi 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, consulta l'esempio 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 del primo livello 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 di ro.apex.updatable

  • Se la proprietà ro.apex.updatable è impostata su true, CtsShimApex è obbligatoria per tutti i dispositivi che supportano la gestione dei 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 dello shim APEX verifica l'implementazione di CtsShimApex.

CtsShim esegue la preinstallazione e il precaricamento

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 standard, CtsShim e CtsShimPriv per la release appropriata devono essere inseriti rispettivamente come /system/app/CtsShimPrebuilt.apk e /system/priv-app/CtsShimPrivPrebuilt.apk.

La tabella seguente 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 sull'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 sono disponibili 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 di spazio di archiviazione

I test di stress dei contenuti multimediali CTS richiedono che i clip video siano su uno spazio di archiviazione esterno (/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 Android Compatibility Definition per la versione della piattaforma delle risoluzioni richieste.

Di seguito sono riportati i requisiti di spazio di archiviazione in base alla risoluzione massima di riproduzione 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 è dotato di uno slot per schede di memoria, collega una scheda SD vuota. Utilizza una scheda SD che supporta 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 di chiamata abbreviati (ADN). 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 funzionalità GPS o Wi-Fi/rete mobile: 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 che consenta le posizioni simulate: Impostazioni > Opzioni sviluppatore > Consenti posizioni simulate > 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 che consenta il modem simulato: Impostazioni > Opzioni sviluppatore > Consenti modem simulato > 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 di supporto 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, attiva la delega: Impostazioni > Accessibilità > Accessibilità > Servizio di accessibilità per la delega.

    • 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 come segue:

    1. Vai (cd) al percorso in cui vengono scaricati e scompattati i file multimediali.
    2. Modificare le autorizzazioni dei 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 l'opzione di serie (-s) di un dispositivo specifico alla fine. Ad esempio, per copiare fino a 720 x 480 sul dispositivo con numero di serie 1234567, esegui:

        ./copy_media.sh 720x480 -s 1234567