Per eseguire CTS, prepara innanzitutto il tuo ambiente fisico, il tuo computer desktop e il dispositivo Android che stai utilizzando per il test.
Ambiente fisico
Beacon Bluetooth LE
Se il dispositivo sottoposto a test (DUT) supporta Bluetooth LE, posizionare almeno tre beacon Bluetooth LE entro 5 metri dal DUT per il 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 i beacon BLE.
Macchine fotografiche
Quando si esegue il CTS della telecamera, utilizzare condizioni di illuminazione normali con un grafico del modello di prova (come un motivo a scacchiera). Posizionare il grafico del modello di prova in base alla distanza minima di messa a fuoco del DUT per assicurarsi che non sia troppo vicino all'obiettivo.
Puntare i sensori della fotocamera su una scena con illuminazione sufficiente per consentire ai sensori sottoposti a test di raggiungere e rimanere ai frame target massimi configurati al secondo (FPS) come specificato in CONTROL_AE_TARGET_FPS_RANGE
. Questo si applica a tutti i sensori della fotocamera segnalati da getCameraIdList
mentre il test esegue l'iterazione sui dispositivi elencati e misura le prestazioni singolarmente.
Se il DUT supporta videocamere esterne, come le webcam USB, collegare una videocamera esterna durante l'esecuzione di CTS. In caso contrario, i test CTS falliscono.
GPS/GNSS
Se il DUT supporta la funzione GPS/GNSS (Global Positioning System/Global Navigation Satellite System), fornire 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 a ICD-GPS-200C. Altrimenti, il segnale GPS/GNSS può essere di qualsiasi tipo, incluso un simulatore satellitare 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, disponga di una connessione 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à sui messaggi broadcast/multinetwork su quella sottorete. Ciò si verifica con una configurazione del punto di accesso Wi-Fi (AP) o eseguendo il DUT su una sottorete isolata senza che altri dispositivi siano connessi.
Se non hai accesso a una rete IPv6 nativa, a una rete carrier 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 passare CTS, il DUT necessita dei flag UP
, BROADCAST
e MULTICAST
impostati sull'interfaccia Wi-Fi. L'interfaccia Wi-Fi necessita di indirizzi IPv4 e IPv6 assegnati. Controlla le proprietà dell'interfaccia Wi-Fi con adb shell ifconfig
.
Wi-Fi RTT
Android include l' API Wi-Fi RTT per una funzionalità Wi-Fi Round Trip Time (RTT) . Ciò consente ai dispositivi di misurare la loro distanza dai punti di accesso con una precisione da 1 a 2 metri, aumentando notevolmente la precisione della localizzazione interna. Due dispositivi consigliati che supportano 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. Non è necessario che i punti di accesso si trovino accanto al dispositivo di test, ma si consiglia di trovarsi entro 40 piedi dal DUT. Un punto di accesso è in genere sufficiente.
Configurazione della macchina desktop
ADB e AAPT
Prima di eseguire CTS, assicurati di aver installato le versioni recenti di Android Debug Bridge (adb) e Android Asset Packaging Tool (AAPT) e di aver aggiunto la posizione di tali strumenti al percorso di sistema del tuo computer.
Per installare ADB e AAPT, scarica l'ultima versione 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 aapt
siano nel tuo percorso di sistema. Il seguente comando presuppone che tu abbia scaricato gli archivi dei pacchetti in una sottodirectory chiamata android-sdk
nella tua home directory:
export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>
Kit di sviluppo Java 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 i dettagli, consulta 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 abbia esito positivo invocando virtualenv -h
.
File CTS
Scarica e apri i pacchetti CTS da Compatibility Test Suite Downloads corrispondenti alla versione Android dei tuoi dispositivi e a tutte le interfacce binarie dell'applicazione (ABI) supportate dai tuoi dispositivi.
Scaricare e aprire l'ultima versione dei file multimediali CTS .
Rilevamento del dispositivo
Segui il passaggio per configurare il sistema in modo che rilevi il tuo dispositivo .
Limite di memoria
Potresti voler aumentare la memoria massima disponibile durante l'esecuzione del test nello script cts-tradfed . Fare riferimento all'esempio CL per ulteriori informazioni.
Configurazione del dispositivo Android
Build degli utenti
Un dispositivo compatibile è definito come un dispositivo con una build firmata da utente/chiave di rilascio. Il tuo dispositivo dovrebbe eseguire un'immagine di sistema basata sulla build utente nota per essere compatibile (Android 4.0 o versioni successive) da Codenames, Tags e Build Numbers .
Proprietà di build del primo livello di API
Alcuni requisiti CTS dipendono dalla build con cui un dispositivo è stato originariamente spedito. 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 disponibili queste informazioni a CTS, i produttori di dispositivi avrebbero potuto definire la proprietà in fase 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 sottostante comune per lanciare un nuovo prodotto come aggiornamento 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 che i requisiti di aggiornamento vengano applicati per 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 tra Codenames, Tags e Build Numbers .
Primo livello API per Android 8.x o versioni precedenti
Per i dispositivi lanciati su Android 8.x o versioni precedenti, annullare l'impostazione (rimuovere) la 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 del livello API corretto. Ciò consente alla proprietà di identificare correttamente un nuovo prodotto e conserva 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 di pacchetto chiamato APEX . Per eseguire i test CTS per le API di gestione APEX (come l'aggiornamento a una nuova versione o la segnalazione di APEX attivi) è necessario preinstallare un pacchetto CtsShimApex
su una partizione /system
.
Il test di convalida shim APEX verifica l'implementazione di CtsShimApex
.
requisiti ro.apex.updatable
Se la proprietà
ro.apex.updatable
è impostata sutrue
,CtsShimApex
è richiesto per tutti i dispositivi che supportano la gestione dei pacchetti APEX.Se la proprietà
ro.apex.updatable
è mancante o non è impostata, non è necessario cheCtsShimApex
sia preinstallato su un dispositivo.
Il test di convalida shim APEX verifica l'implementazione di CtsShimApex
.
CtsShim
preinstalla e precarica
A partire da Android 11, CtsShimApex
contiene due app predefinite (create da build source ), che non contengono alcun codice ad eccezione del manifest. CTS utilizza queste app per testare privilegi e autorizzazioni.
Se il dispositivo non supporta la gestione dei pacchetti APEX (ovvero, la proprietà ro.apex.updatable
è mancante o non è impostata) o se il dispositivo esegue la versione 10 o precedente, le due app predefinite devono essere preinstallate nel sistema separatamente.
Versione del dispositivo | Preinstallare (se APEX è supportato) | Precarica | ||
---|---|---|---|---|
BRACCIO | x86 | BRACCIO | x86 | |
Androide 12 | android12-arm-rilascio sotto /system/apex/com.android.apex.cts.shim.apex | versione Android12-x86 sotto /system/apex/com.android.apex.cts.shim.apex | android12-arm-CtsShim.apk in /system/app/CtsShimPrebuilt.apk android12-arm-CtsShimPriv.apk | android12-x86-CtsShim.apk in /system/app/CtsShimPrebuilt.apk android12-x86-CtsShimPriv.apk |
Androide 11 | android11-arm-release sotto /system/apex/com.android.apex.cts.shim.apex | versione Android11-x86 sotto /system/apex/com.android.apex.cts.shim.apex | android11-arm-CtsShim.apk in /system/app/CtsShimPrebuilt.apk android11-arm-CtsShimPriv.apk | android11-x86-CtsShim.apk in /system/app/CtsShimPrebuilt.apk android11-x86-CtsShimPriv.apk |
Androide 10 | versione Android10 sotto /system/apex/com.android.apex.cts.shim.apex | android10-arm-CtsShim.apk in /system/app/CtsShimPrebuilt.apk android10-arm-CtsShimPriv.apk | android10-x86-CtsShim.apk in /system/app/CtsShimPrebuilt.apk android10-x86-CtsShimPriv.apk | |
Android 9, O e O-MR1 | N / A | N / A | arm-CtsShim.apk in /system/app/CtsShimPrebuilt.apk arm-CtsShimPriv.apk | x86-CtsShim.apk in /system/app/CtsShimPrebuilt.apk x86-CtsShimPriv.apk |
Per superare i test, precaricare le app nelle directory appropriate sull'immagine di sistema senza firmare nuovamente le app.
Esempio di applet
Android 9 ha introdotto le API Open Mobile. Per i dispositivi che riportano più di un elemento sicuro, CTS aggiunge casi di test per convalidare il comportamento delle API Open Mobile. Questi test case richiedono l'installazione una tantum di un'applet di esempio nell'embedded Secure Element (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.
Vedere Test CTS per Secure Element per informazioni più dettagliate sui casi di test dell'API Open Mobile e sui casi di test del controllo degli accessi.
Requisiti di archiviazione
Gli stress test multimediali CTS richiedono che i video clip si trovino su una memoria esterna ( /sdcard
). La maggior parte delle clip proviene da Big Buck Bunny , che è protetto da copyright della Blender Foundation sotto la licenza Creative Commons Attribution 3.0 .
Lo spazio richiesto dipende dalla risoluzione massima di riproduzione video supportata dal dispositivo. Vedere la sezione 5 nel documento Definizione di compatibilità Android per la versione della piattaforma delle risoluzioni richieste.
Ecco i requisiti di archiviazione per la massima risoluzione di riproduzione video:
- 480x360: 98 MB
- 720x480: 193MB
- 1280x720: 606 MB
- 1920x1080: 1863MB
Schermo e archiviazione
- Qualsiasi dispositivo che non dispone di uno schermo incorporato deve essere collegato a uno schermo.
Se il dispositivo dispone di uno slot per schede di memoria, inserire una scheda SD vuota. Utilizzare una scheda SD che supporti il bus UHS (Ultra High Speed) con capacità SDHC o SDXC o una con classe di velocità almeno 10 o superiore per assicurarsi che possa superare il CTS.
Se il dispositivo dispone di slot per schede SIM, inserire una scheda SIM attivata in ciascuno slot. Se il dispositivo supporta gli SMS, ogni scheda SIM deve avere il proprio campo numerico popolato. Per i dispositivi con Android 12 o versioni successive, tutte le schede SIM devono supportare la memorizzazione dei numeri di composizione abbreviata (ADN). Le schede GSM e USIM con il file dedicato alla telecom (DF Telecom ) soddisfano questo requisito.
Sviluppatore UICC
Per eseguire i test dell'API dell'operatore CTS, il dispositivo deve utilizzare una SIM con privilegi di operatore CTS che soddisfino i requisiti specificati in Preparazione dell'UICC .
Configurazione del dispositivo Android
Ripristino dati di fabbrica del dispositivo: Impostazioni > Backup e ripristino > Ripristino dati di fabbrica .
Imposta la lingua del tuo dispositivo su inglese ( Stati Uniti ): Impostazioni > Lingua e immissione > Lingua .
Se il dispositivo supporta la personalizzazione dei caratteri predefiniti, impostare la famiglia di caratteri
sans-serif
predefinita suRoboto
(la famiglia di caratterisans-serif
predefinita utilizzata nelle build AOSP).Attiva l'impostazione della posizione se sul dispositivo è presente una funzione GPS o Wi-Fi/rete cellulare: Impostazioni > Posizione > Attiva .
Connettiti a una rete Wi-Fi che supporta IPv6, può trattare il DUT come un client isolato (vedi Ambiente fisico sopra) e dispone di una connessione Internet: Impostazioni > Wi-Fi .
Assicurati che sul dispositivo non sia impostata alcuna sequenza di blocco o password: Impostazioni > Sicurezza > Blocco schermo > Nessuno .
Abilita il debug USB sul tuo dispositivo: Impostazioni > Opzioni sviluppatore > Debug USB .
Impostare l'ora sul formato 12 ore: Impostazioni > Data e ora > Usa formato 24 ore > Off .
Impostare il dispositivo in modo che rimanga attivo: Impostazioni > Opzioni sviluppatore > Resta attivo > On .
Solo in Android 5.x e 4.4.x , imposta il dispositivo in modo da consentire posizioni fittizie: Impostazioni > Opzioni sviluppatore > Consenti posizioni fittizie > On .
In Android 4.2 o versioni successive , disattiva la verifica dell'app USB: Impostazioni > Opzioni sviluppatore > Verifica app tramite USB > Disattivato .
In Android 13 o versioni successive , imposta il dispositivo per consentire il modem fittizio: Impostazioni > Opzioni sviluppatore > Consenti modem fittizio > On .
Avvia il browser e chiudi qualsiasi schermata di avvio/configurazione.
Collegare la macchina desktop che verrà utilizzata per testare il dispositivo con un cavo USB.
Prima di eseguire CTS, impostare Roboto2 come font sans-serif utilizzando un'impostazione accessibile all'utente (non nascosta).
Installazione file
Installa e configura le app di supporto sul dispositivo.
Configura il tuo dispositivo in base alla tua versione CTS:
Versioni CTS da 2.1 R2 a 4.2 R4: configurare 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 servizio di accessibilità .
Versioni CTS 6.x o precedenti: sui dispositivi che dichiarano
android.software.device_admin
, configura il tuo dispositivo per eseguire il test di amministrazione del dispositivo utilizzando:adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`
In Impostazioni > Sicurezza > Seleziona amministratori del dispositivo , abilita i due amministratori del dispositivo
android.deviceadmin.cts.CtsDeviceAdminReceiver*
. Assicurati cheandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
e qualsiasi altro amministratore di dispositivo precaricato rimangano disabilitati.
Copiare i file multimediali CTS sul dispositivo come segue:
- Passare (
cd
) al percorso in cui i file multimediali vengono scaricati e decompressi. Modificare i permessi del file:
chmod u+x copy_media.sh
Copia i file necessari:
Per copiare clip fino a una risoluzione di 720x480, eseguire:
./copy_media.sh 720x480
Se non sei sicuro della risoluzione massima, copia tutti i file:
./copy_media.sh all
Se ci sono più dispositivi sotto adb, aggiungi l'opzione seriale (
-s
) di un dispositivo specifico alla fine. Ad esempio, per copiare fino a 720x480 sul dispositivo con seriale 1234567, eseguire:./copy_media.sh 720x480 -s 1234567
- Passare (