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

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 su true , 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 che CtsShimApex 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
in /system/priv-app/CtsShimPrivPrebuilt.apk

android12-x86-CtsShim.apk
in /system/app/CtsShimPrebuilt.apk

android12-x86-CtsShimPriv.apk
in /system/priv-app/CtsShimPrivPrebuilt.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
in /system/priv-app/CtsShimPrivPrebuilt.apk

android11-x86-CtsShim.apk
in /system/app/CtsShimPrebuilt.apk

android11-x86-CtsShimPriv.apk
in /system/priv-app/CtsShimPrivPrebuilt.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
in /system/priv-app/CtsShimPrivPrebuilt.apk

android10-x86-CtsShim.apk
in /system/app/CtsShimPrebuilt.apk

android10-x86-CtsShimPriv.apk
in /system/priv-app/CtsShimPrivPrebuilt.apk

Android 9, O e O-MR1 N / A N / A arm-CtsShim.apk
in /system/app/CtsShimPrebuilt.apk

arm-CtsShimPriv.apk
in /system/priv-app/CtsShimPrivPrebuilt.apk

x86-CtsShim.apk
in /system/app/CtsShimPrebuilt.apk

x86-CtsShimPriv.apk
in /system/priv-app/CtsShimPrivPrebuilt.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

  1. Ripristino 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, impostare 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 funzione GPS o Wi-Fi/rete cellulare: Impostazioni > Posizione > Attiva .

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

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

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

  8. Impostare l'ora sul formato 12 ore: Impostazioni > Data e ora > Usa formato 24 ore > Off .

  9. Impostare il dispositivo in modo che rimanga attivo: Impostazioni > Opzioni sviluppatore > Resta attivo > On .

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

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

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

  13. Avvia il browser e chiudi qualsiasi schermata di avvio/configurazione.

  14. Collegare la macchina desktop che verrà utilizzata per testare il dispositivo con un cavo USB.

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

  1. 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 che android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver e qualsiasi altro amministratore di dispositivo precaricato 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, 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