Imposta CTS

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.

Banda ultralarga

Se il DUT supporta la banda ultra larga (UWB), un altro dispositivo che supporta UWB deve essere posizionato sufficientemente vicino e orientato in modo da non avere antenne e zone morte radio. Per le prove di precisione della distanza esistono esigenze specifiche di posizionamento e orientamento. Per i dettagli sulla configurazione, consulta i requisiti UWB . Il test UWB deve essere eseguito manualmente, specificando sulla riga di comando quali due dispositivi si trovano a un metro di distanza. Per i dettagli sullo sharding richiesto per questo test, vedere Sharding locale .

Macchine fotografiche

Quando si esegue il CTS della telecamera, utilizzare condizioni di illuminazione normali con un grafico del modello di prova (ad esempio uno schema a scacchiera). Posizionare il grafico del modello di prova in base alla distanza di messa a fuoco minima del DUT per garantire che non sia troppo vicino all'obiettivo.

Puntare i sensori della fotocamera su una scena con illuminazione sufficiente per consentire ai sensori sotto test di raggiungere e rimanere al massimo di fotogrammi target al secondo (FPS) configurati come specificato in CONTROL_AE_TARGET_FPS_RANGE . Questo vale per tutti i sensori della fotocamera segnalati da getCameraIdList poiché il test scorre sui dispositivi elencati e misura le prestazioni individualmente.

Se il DUT supporta fotocamere esterne, come webcam USB, collegare una fotocamera esterna durante l'esecuzione di CTS. Altrimenti i test CTS falliscono.

GPS/GNSS

Se il DUT supporta la funzionalità del sistema di posizionamento globale/sistema di navigazione satellitare 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 compatibile con 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, 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/multirete 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 collegati.

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

Per superare il CTS, il DUT necessita dei flag UP , BROADCAST e MULTICAST impostati sull'interfaccia Wi-Fi. L'interfaccia Wi-Fi necessita dell'assegnazione degli indirizzi IPv4 e IPv6. Controlla le proprietà dell'interfaccia Wi-Fi con adb shell ifconfig .

Per i dispositivi che supportano Wi-Fi STA/STA Concurrency , 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.

Wi-Fi RTT

Android include l' API Wi-Fi RTT per la funzionalità RTT (Round Trip Time) Wi-Fi . Ciò consente ai dispositivi di misurare la distanza dai punti di accesso con una precisione da 1 a 2 metri, aumentando significativamente 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 dovrebbero essere accesi, ma non richiedono una connessione di rete. Non è necessario che i punti di accesso siano accanto al dispositivo di test, ma si consiglia di trovarli entro 40 piedi dal DUT. In genere è sufficiente un punto di accesso.

Configurazione della macchina desktop

Attenzione : CTS supporta macchine Linux a 64 bit. CTS non è supportato sul sistema operativo Windows o MacOS.

FFMPEG

Installa il pacchetto ffmpeg versione 5.1.3 (o successiva) sul computer host.

Aggiornamento della macchina host

Si consiglia vivamente di aggiornare la RAM della macchina host CTS a 128 GB e l'HDD a 256 GB. È necessario per accogliere 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 CTS, assicurati di aver installato le versioni recenti di Android Debug Bridge (adb) e Android Asset Packaging Tool (AAPT2) e di aver aggiunto la posizione di tali strumenti al percorso di sistema del tuo computer.

Per installare ADB e AAPT2, scarica gli strumenti della piattaforma Android SDK e gli strumenti di creazione di Android SDK più recenti da SDK Manager di Android Studio o dallo strumento da riga di comando sdkmanager .

Assicurati che adb e aapt2 siano nel 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

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, consulta 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 avuto successo 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 la versione più recente dei file multimediali CTS .

Rilevamento del dispositivo

Segui i passaggi 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-tradefed . Fare riferimento all'esempio CL per ulteriori informazioni.

Configurazione del dispositivo Android

Costruzioni dell'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 compatibile (Android 4.0 o versione successiva) da nomi in codice, tag e numeri di build .

Proprietà di compilazione del primo livello API

Alcuni requisiti CTS dipendono dalla build con cui il dispositivo è stato originariamente spedito. Ad esempio, i dispositivi forniti originariamente 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 avrebbero potuto definire 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 sottostante comune per lanciare un nuovo prodotto come aggiornamento di un prodotto esistente nello stesso gruppo di dispositivi. I produttori dei dispositivi possono facoltativamente impostare il livello API del prodotto esistente su ro.product.first_api_level , in modo che vengano applicati i requisiti di aggiornamento per CTS e Treble/VTS.

I produttori del dispositivo possono definire PRODUCT_SHIPPING_API_LEVEL nel 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 da 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, annulla l'impostazione (rimuovi) 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 di preservare 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 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 su true , CtsShimApex è richiesto per tutti i dispositivi che supportano la gestione dei pacchetti APEX.

  • Se la proprietà ro.apex.updatable manca o non è impostata, non è necessario che CtsShimApex 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 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 manca o non è impostata) o se sul dispositivo è in esecuzione la versione 10 o precedente, le due app predefinite devono essere preinstallate nella sistema separatamente.

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

Se vengono utilizzate app predefinite regolari, CtsShim e CtsShimPriv per la versione appropriata devono essere posizionati 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 del dispositivo Preinstallare
(se APEX supportato)
Precarica
BRACCIO x86 BRACCIO x86
Androide 14 rilascio del braccio android14 versione android14-x86 android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

Androide 13 rilascio del braccio android13 versione android13-x86 android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

Androide 12 rilascio del braccio android12 versione android12-x86 android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Androide 11 rilascio del braccio android11 versione android11-x86 android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Androide 10 versione Android10 android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

Android 9, O e O-MR1 N / A N / A arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

Per superare i test, precaricare 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 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 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 reperibili in AOSP.

Consulta Test CTS per Secure Element per informazioni più dettagliate sui casi di test API Open Mobile e sui casi di test di controllo dell'accesso.

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 provengono da Big Buck Bunny , che è protetto da copyright della Blender Foundation con 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 in base alla risoluzione massima di riproduzione video:

  • 480×360: 98MB
  • 720×480: 193MB
  • 1280x720: 606MB
  • 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 scheda di memoria, inserisci 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 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, ciascuna 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 selezione abbreviata (ADN). Le schede GSM e USIM con file dedicato alle telecomunicazioni (DF Telecom ) soddisfano questo requisito.

Sviluppatore UICC

Per eseguire i test 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

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

  2. Imposta la lingua del tuo 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 della posizione se sul dispositivo è presente una funzionalità GPS o di rete Wi-Fi/cellulare: Impostazioni > Posizione > Attiva .

  5. Connettersi a una rete Wi-Fi che supporti IPv6, possa trattare il DUT come un client isolato (vedere Ambiente fisico sopra) e disponga di una connessione Internet: Impostazioni > Wi-Fi .

  6. Assicurati che sul dispositivo non sia impostata alcuna sequenza di blocco o password: Impostazioni > Sicurezza > Blocco schermo > Nessuna .

  7. Abilita il debug USB sul tuo dispositivo: Impostazioni > Opzioni sviluppatore > Debug USB .

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

  9. Imposta il dispositivo per rimanere attivo: Impostazioni > Opzioni sviluppatore > Resta sveglio > Attivato .

  10. Solo in Android 5.xe 4.4.x , imposta il dispositivo per consentire posizioni fittizie: Impostazioni > Opzioni sviluppatore > Consenti posizioni fittizie > Attivato .

  11. In Android 4.2 o versioni successive , disattiva la verifica delle app USB: Impostazioni > Opzioni sviluppatore > Verifica app tramite USB > Disattivata .

  12. In Android 13 o versioni successive , imposta il dispositivo per consentire il modem fittizio: Impostazioni > Opzioni sviluppatore > Consenti modem fittizio > Attivato .

  13. Avvia il browser ed elimina qualsiasi schermata di avvio/configurazione.

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

  15. Prima di eseguire CTS, imposta Roboto2 come carattere sans-serif utilizzando un'impostazione accessibile all'utente (non nascosta).

Installazione del file

Installa e configura le app di supporto sul dispositivo.

  1. Configura il tuo dispositivo in base alla versione CTS:

    • Versioni CTS da 2.1 R2 a 4.2 R4: configura il tuo dispositivo (o 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 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 che android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver e tutti gli altri amministratori del dispositivo precaricati rimangano disabilitati.

  2. Copiare i file multimediali CTS sul dispositivo come segue:

    1. Passare ( cd ) al percorso in cui i file multimediali vengono scaricati e decompressi.
    2. Modificare i permessi del file: chmod u+x copy_media.sh

    3. Copia i file necessari:

      • Per copiare clip fino a una risoluzione di 720x480, esegui:

        ./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