Per eseguire CTS, prepara prima il tuo ambiente fisico, il tuo computer desktop e il dispositivo Android che stai utilizzando per il test.
Ambiente fisico
Segnalatori Bluetooth LE
Se il dispositivo sottoposto a test (DUT) supporta Bluetooth LE, posizionare almeno tre radiofari Bluetooth LE entro 5 metri dal DUT per il test di scansione Bluetooth LE. Questi beacon non devono essere configurati o emettono 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 diagramma di pattern di prova (come un motivo a scacchiera). Posizionare il diagramma 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 telecamera su una scena con illuminazione sufficiente per consentire ai sensori in prova di raggiungere e rimanere ai fotogrammi target al secondo (FPS) configurati massimi come specificato in CONTROL_AE_TARGET_FPS_RANGE
. Questo vale per tutti i sensori della fotocamera segnalati da getCameraIdList
poiché il test esegue un'iterazione sui dispositivi elencati e misura le prestazioni individualmente.
Se il DUT supporta telecamere esterne, come webcam USB, collegare una telecamera esterna durante l'esecuzione di CTS. In caso contrario, i test CTS falliscono.
GPS/GNSS
Se il DUT supporta la funzione del sistema di posizionamento globale/sistema satellitare di navigazione globale (GPS/GNSS), 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 è possibile posizionare il DUT abbastanza vicino a una finestra in modo che possa ricevere direttamente abbastanza segnale GPS/GNSS.
Wi-Fi e IPv6
I test CTS richiedono una rete Wi-Fi che supporti IPv4 e IPv6, abbia una connessione Internet con DNS funzionante per IPv4 e IPv6, supporti IP multicast 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 (AP) Wi-Fi o eseguendo il DUT su una sottorete isolata senza che altri dispositivi siano collegati.
Se non hai accesso a una rete IPv6 nativa, a una rete portante 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. Vedi l' elenco di Wikipedia dei broker di tunnel IPv6 .
Per superare 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 significativamente la precisione della posizione 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. In genere è sufficiente un punto di accesso.
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, scarica il pacchetto Android SDK Tools per il tuo sistema operativo, aprilo e segui le istruzioni nel file README incluso. Per informazioni sulla risoluzione dei problemi, vedere Installazione degli strumenti SDK autonomi .
Assicurati che adb
e aapt
siano nel tuo percorso di sistema. Il comando seguente presuppone che tu abbia aperto l'archivio del pacchetto nella tua home directory:
export PATH=$PATH:$HOME/android-sdk-linux/build-tools/version
Kit di sviluppo Java per Ubuntu
Installare 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, vedere i requisiti JDK .
Configurazione per il supporto 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 Download corrispondenti alla versione Android dei tuoi dispositivi e a tutte le interfacce binarie dell'applicazione (ABI) supportate dai tuoi dispositivi.
Scarica e apri l'ultima versione dei file multimediali CTS .
Rilevamento del dispositivo
Segui il passaggio per configurare il tuo 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
Costruzioni utente
Un dispositivo compatibile è definito come un dispositivo con una build firmata dall'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 .
Prima proprietà di build a livello di API
Alcuni requisiti CTS dipendono dalla build con cui è stato originariamente spedito un dispositivo. Ad esempio, i dispositivi originariamente forniti con build precedenti potrebbero essere esclusi dai requisiti di sistema applicabili ai dispositivi forniti con build successive.
Per rendere queste informazioni disponibili a CTS, i produttori di dispositivi potrebbero aver definito la proprietà build-time ro.product.first_api_level
. Il valore di questa proprietà è il primo livello API con cui il dispositivo è stato lanciato in commercio.
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 opzionalmente 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 aggiungere PRODUCT_PROPERTY_OVERRIDES
nel loro file device.mk
per impostare questa proprietà, come mostrato nell'esempio seguente:
#ro.product.first_api_level indicates the first api level that the device has
been commercially launched on.
PRODUCT_PROPERTY_OVERRIDES +=\
ro.product.first_api_level=21
Primo livello API per Android 9 o versioni successive
Per i dispositivi avviati con Android 9 o versioni successive, imposta la proprietà ro.product.first_api_level
su un valore valido da Codenames, Tags e Build Numbers .
Primo livello API per Android 8.x o versioni precedenti
Per i dispositivi avviati su Android 8.x o versioni precedenti, deselezionare (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 di spessori 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 dello 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 dello 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 codice ad eccezione del manifest. CTS usa 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) | Precarico | ||
---|---|---|---|---|
BRACCIO | x86 | BRACCIO | x86 | |
Android 12 | Android12-rilascio del braccio in /system/apex/com.android.apex.cts.shim.apex | versione Android12-x86 in /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 |
Android 11 | Android11-rilascio del braccio in /system/apex/com.android.apex.cts.shim.apex | versione Android11-x86 in /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 |
Android 10 | versione Android10 in /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, precarica 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 segnalano più di un elemento sicuro, 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 nel Secure Element (eSE) integrato del DUT o nella scheda SIM utilizzata dal DUT. L' applet di esempio eSE e l' applet di esempio SIM si trovano in AOSP.
Vedere Test CTS per Secure Element per informazioni più dettagliate sui test case Open Mobile API e sui test case Access Control.
Requisiti di archiviazione
I test di stress dei supporti CTS richiedono che i clip video siano su una memoria esterna ( /sdcard
). La maggior parte delle clip provengono 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 di definizione della compatibilità Android per la versione della piattaforma delle risoluzioni richieste.
Di seguito sono riportati i requisiti di archiviazione in base alla risoluzione massima di riproduzione video:
- 480x360: 98 MB
- 720x480: 193 MB
- 1280x720: 606 MB
- 1920x1080: 1863 MB
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 almeno una classe di velocità 10 o superiore per garantire 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 compilato. Per i dispositivi con Android 12 o versioni successive, tutte le schede SIM devono supportare la memorizzazione dei numeri di selezione abbreviata (ADN). Le schede GSM e USIM con il file dedicato per le telecomunicazioni (DF Telecom ) soddisfano questo requisito.
Sviluppatore UICC
Per eseguire i test dell'API dell'operatore CTS, il dispositivo deve utilizzare una SIM con privilegi dell'operatore CTS che soddisfi 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 di rete GPS o Wi-Fi/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 > Disattiva .
Impostare il dispositivo in modo che rimanga attivo: Impostazioni > Opzioni sviluppatore > Rimani sveglio > Acceso .
Solo in Android 5.xe 4.4.x , imposta il dispositivo per consentire posizioni fittizie: Impostazioni > Opzioni sviluppatore > Consenti posizioni fittizie > Attivato .
In Android 4.2 o versioni successive , disattiva la verifica dell'app USB: Impostazioni > Opzioni sviluppatore > Verifica app su USB > Disattiva .
In Android 13 o versioni successive , imposta il dispositivo per consentire il modem simulato: Impostazioni > Opzioni sviluppatore > Consenti modem simulato > Attivato .
Avvia il browser e chiudi qualsiasi schermata di avvio/impostazione.
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 (non nascosta) accessibile dall'utente.
Installazione di file
Installa e configura le app di supporto sul dispositivo.
Configura il tuo dispositivo in base alla tua versione CTS:
CTS versioni da 2.1 R2 a 4.2 R4: configura il tuo dispositivo (o emulatore) per eseguire i test di accessibilità con:
abd install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
Sul dispositivo, abilita la delega: Impostazioni > Accessibilità > Accessibilità > Delega del servizio di accessibilità .
CTS versioni 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 dispositivo , abilita i due amministratori dispositivo
android.deviceadmin.cts.CtsDeviceAdminReceiver*
. Assicurati cheandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
e tutti gli altri amministratori di dispositivi precaricati rimangano disabilitati.
Copiare i file multimediali CTS sul dispositivo come segue:
- Passare (
cd
) al percorso in cui i file multimediali vengono scaricati e decompressi. Modifica 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 sono presenti più dispositivi in 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 (