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:
Ottieni il livello API Android sul dispositivo eseguendo:
adb shell getprop ro.build.version.sdk
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 sutrue
,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-x86-CtsShim.apk |
Android 14 | android14-arm-release | android14-x86-release | android14-arm-CtsShim.apk | android14-x86-CtsShim.apk |
Android 13 | android13-arm-release | android13-x86-release | android13-arm-CtsShim.apk | android13-x86-CtsShim.apk |
Android 12 | android12-arm-release | android12-x86-release | android12-arm-CtsShim.apk | android12-x86-CtsShim.apk |
Android 11 | android11-arm-release | android11-x86-release | android11-arm-CtsShim.apk | android11-x86-CtsShim.apk |
Android 10 | android10-release | android10-arm-CtsShim.apk | android10-x86-CtsShim.apk | |
Android 9, O e O-MR1 | N/D | N/D | arm-CtsShim.apk | x86-CtsShim.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
Ripristina i dati di fabbrica del dispositivo: Impostazioni > Backup e ripristino > Ripristino dati di fabbrica.
Imposta la lingua del dispositivo su inglese (Stati Uniti): Impostazioni > Lingua e immissione > Lingua.
Se il dispositivo supporta la personalizzazione dei caratteri predefiniti, imposta la famiglia di caratteri
sans-serif
predefinita suRoboto
(la famiglia di caratterisans-serif
predefinita utilizzata nelle build AOSP).Attiva l'impostazione di geolocalizzazione se sul dispositivo è presente una funzione GPS o di rete Wi-Fi/cellulare: Impostazioni > Posizione > On.
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.
Assicurati che sul dispositivo non sia impostata alcuna sequenza o password di blocco: Impostazioni > Sicurezza > Blocco schermo > Nessuno.
Attiva il debug USB sul dispositivo: Impostazioni > Opzioni sviluppatore > Debug USB.
Imposta l'ora nel formato 12 ore: Impostazioni > Data e ora > Utilizza formato 24 ore > Off.
Imposta il dispositivo in modo che rimanga attivo: Impostazioni > Opzioni sviluppatore > Rimani attivo > On.
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.
In Android 4.2 o versioni successive, disattiva la verifica delle app tramite USB: Impostazioni > Opzioni sviluppatore > Verifica app tramite USB > Off.
In Android 13 o versioni successive, imposta il dispositivo in modo da consentire il modem fittizio: Impostazioni > Opzioni sviluppatore > Consenti modem fittizio > On.
Avvia il browser e ignora eventuali schermate di avvio/configurazione.
Collega il computer che verrà utilizzato per testare il dispositivo con un cavo USB.
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.
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 dichiarano
android.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 cheandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
e qualsiasi altro amministratore del dispositivo precaricato rimangano disattivati.
Copia i file multimediali CTS sul dispositivo nel seguente modo:
- Vai al percorso (
cd
) in cui i file multimediali vengono scaricati e decompressi. Modifica le autorizzazioni del file:
chmod u+x copy_media.sh
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
- Vai al percorso (