CTS einrichten

Bereiten Sie zur Ausführung von CTS zuerst Ihre physische Umgebung, Ihren Computer und das Android-Gerät vor, das Sie für den Test verwenden.

Physische Umgebung

Bluetooth LE-Beacons

Wenn das zu testende Gerät Bluetooth LE unterstützt, platzieren Sie zum Bluetooth LE-Scantest im Umkreis von 5 Metern von der DUT mindestens drei Bluetooth LE-Beacons. Diese Beacons müssen nicht konfiguriert werden und senden keine spezifischen Daten und können beliebig sein, einschließlich iBeacon, Eddystone oder sogar Geräte, die BLE-Beacons simulieren.

Ultrabreitband

Wenn das DUT Ultrabreitband (UWB) unterstützt, muss sich ein anderes UWB-kompatibles Gerät in der Nähe befinden und so ausgerichtet sein, dass keine Antennen- und Funktotenzonen entstehen. Für die Tests zur Entfernungsgenauigkeit gelten bestimmte Anforderungen an die Positionierung und Ausrichtung. Weitere Informationen zur Einrichtung finden Sie unter UWB-Anforderungen. Der UWB-Test muss manuell ausgeführt werden. In der Befehlszeile muss angegeben werden, welche beiden Geräte einen Meter voneinander entfernt sind. Weitere Informationen zum Sharding, das für diesen Test erforderlich ist, finden Sie unter Lokales Sharding.

Kameras

Verwenden Sie beim Ausführen des Kamera-CTS normale Lichtverhältnisse mit einem Testmuster (z. B. einem Schachbrettmuster). Platzieren Sie das Testmusterdiagramm gemäß der Mindestfokusdistanz des DUT, damit es nicht zu nah am Objektiv ist.

Richten Sie die Kamerasensoren auf eine Szene mit ausreichender Beleuchtung, damit die getesteten Sensoren die in CONTROL_AE_TARGET_FPS_RANGE angegebene maximale konfigurierte Framerate pro Sekunde (FPS) erreichen und beibehalten können. Das gilt für alle Kamerasensoren, die von getCameraIdList gemeldet werden, da der Test die aufgeführten Geräte durchläuft und die Leistung einzeln misst.

Wenn das DUT externe Kameras wie USB-Webcams unterstützt, schließen Sie beim Ausführen des CTS eine externe Kamera an. Andernfalls schlagen die CTS-Tests fehl.

GPS/GNSS

Wenn das DUT die Funktion für globales Positionierungssystem/globales Satellitennavigationssystem (GPS/GNSS) unterstützt, senden Sie dem DUT ein GPS-/GNSS-Signal auf einer geeigneten Signalebene für den Empfang und die GPS-Standortberechnung. Der GPS-Teil muss ICD-GPS-200C-konform sein. Andernfalls kann das GPS/GNSS-Signal beliebiger Art sein, einschließlich eines Satellitensimulators oder eines GPS/GNSS-Repeaters für Outdoor-Signale. Sie können das DUT auch so nah an einem Fenster platzieren, dass es direkt genügend GPS/GNSS-Signal empfängt.

WLAN und IPv6

CTS-Tests erfordern ein WLAN, das IPv4 und IPv6 unterstützt, eine Internetverbindung mit funktionierendem DNS für IPv4 und IPv6 hat, IP-Multicast unterstützt und die DUT als isolierten Client behandeln kann. Ein isolierter Client ist eine Konfiguration, bei der die DUT keine Sichtbarkeit für die Broadcast-/Multi-Netzwerk-Nachrichten in diesem Subnetz hat. Dies tritt bei einer WLAN-Zugangspunktkonfiguration (AP) oder beim Ausführen des DUT in einem isolierten Subnetzwerk auf, ohne dass andere Geräte verbunden sind.

Wenn Sie keinen Zugriff auf ein natives IPv6-Netzwerk, ein IPv6-Mobilfunkanbieternetzwerk oder ein VPN haben, um einige IPv6-abhängige Tests zu bestehen, können Sie einen WLAN-Zugangspunkt und einen IPv6-Tunnel verwenden.

Damit die DUT die CTS besteht, müssen die Flags UP, BROADCAST und MULTICAST auf der WLAN-Schnittstelle gesetzt sein. Der WLAN-Schnittstelle müssen IPv4- und IPv6-Adressen zugewiesen werden. Prüfe mit adb shell ifconfig die Eigenschaften der WLAN-Schnittstelle.

Für Geräte, die Wi‑Fi STA/STA Concurrency unterstützen, sind mindestens zwei WLANs erforderlich. Damit die CTS-Prüfung bestanden wird, müssen die WLANs auf verschiedenen Bändern mit unterschiedlichen SSIDs oder auf derselben SSID mit unterschiedlichen BSSIDs ausgeführt werden.

WLAN-RTT

Android enthält die Wi‑Fi RTT API für die Wi‑Fi-Umlaufzeit (RTT). So können Geräte ihre Entfernung zu Zugangspunkten mit einer Genauigkeit von 1 bis 2 Metern messen, was die Standortgenauigkeit in Innenräumen deutlich erhöht. Zwei empfohlene Geräte, die WLAN-RTT unterstützen, sind Google Wifi und der fitlet2-Zugangspunkt von Comppulab (festgelegt auf eine Bandbreite von 40 MHz bei 5 GHz).

Die Zugangspunkte sollten eingeschaltet sein, benötigen aber keine Netzwerkverbindung. Die Zugangspunkte müssen sich nicht direkt neben dem Testgerät befinden, sollten sich aber innerhalb von 12 Metern vom DUT befinden. In der Regel ist ein Zugangspunkt ausreichend.

Computer einrichten

Achtung: CTS unterstützt 64-Bit-Linux-Maschinen. CTS wird unter Windows und macOS nicht unterstützt.

FFMPEG

Installieren Sie das ffmpeg-Paket ab Version 5.1.3 auf dem Hostcomputer.

Hostmaschinenanforderung

Die Mindestanforderungen für den CTS-Hostcomputer sind 32 GiB RAM und 256 GiB Laufwerkkapazität. Dies ist erforderlich, um der erhöhten Anzahl von CTS-Testfällen und einer Erhöhung der Java-Heap-Speicherreservierung in Tradefed gerecht zu werden.

ADB und AAPT2

Bevor Sie den CTS ausführen, müssen Sie die aktuellen Versionen von Android Debug Bridge (adb) und Android Asset Packaging Tool (AAPT2) installiert und den Speicherort dieser Tools dem Systempfad Ihres Computers hinzugefügt haben.

Wenn Sie ADB und AAPT2 installieren möchten, laden Sie die neuesten Android SDK Platform Tools und Android SDK Build Tools über den SDK Manager von Android Studio oder über das Befehlszeilentool sdkmanager herunter.

Prüfen Sie, ob sich adb und aapt2 im Systempfad befinden. Beim folgenden Befehl wird davon ausgegangen, dass Sie die Paketarchive in ein Unterverzeichnis namens android-sdk in Ihrem Basisverzeichnis heruntergeladen haben:

export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>

Java Development Kit für Ubuntu

Installieren Sie die richtige Version des Java Development Kits (JDK).

  • Installieren Sie für Android 11 OpenJDK11.
  • Installieren Sie für Android 9 und Android 10 OpenJDK9.
  • Installieren Sie für Android 7.0, 7.1, 8.0 und 8.1 OpenJDK8.

Weitere Informationen finden Sie in den JDK-Anforderungen.

Einrichtung für Python-Unterstützung

Installieren Sie virtualenv für Ihre Plattform. Folgen Sie dazu der Installationsanleitung.

Sie können prüfen, ob die Installation erfolgreich war, indem Sie virtualenv -h aufrufen.

CTS-Dateien

Laden Sie die CTS-Pakete aus den Versionen der Compatibility Test Suite herunter und öffnen Sie sie, die der Android-Version Ihrer Geräte und allen Binärschnittstellen (Application Binary Interface, ABI) entsprechen, die von Ihren Geräten unterstützt werden.

Lade die neueste Version der CTS-Mediendateien herunter und öffne sie.

CTS-Dateien für Mainline herunterladen (optional)

Wenn Sie eine CTS-Version zum ersten Mal ausführen, lädt CTS dynamisch einige CTS-Dateien herunter, die mit der Mainline zusammenhängen. Dadurch erhöht sich die Laufzeit je nach Netzwerkgeschwindigkeit um mindestens 10 Minuten.

Um diese zusätzliche CTS-Laufzeit zu vermeiden, können Sie die zugehörigen CTS-Dateien herunterladen, bevor Sie die CTS-Version ausführen. Folgen Sie dazu dieser Anleitung:

  1. So rufen Sie die Android API-Ebene auf dem Gerät ab:

    adb shell getprop ro.build.version.sdk
    
  2. Folgen Sie der Anleitung im download_mcts.sh-Script, um die Mainline-CTS-Dateien herunterzuladen.

    Der Download dauert je nach Netzwerkgeschwindigkeit mindestens 10 Minuten.

Geräteerkennung

Folgen Sie der Anleitung, um Ihr System so einzurichten, dass es Ihr Gerät erkennt.

Arbeitsspeicherlimit

Möglicherweise möchten Sie den maximalen Arbeitsspeicher erhöhen, der während des Testlaufs im Skript cts-tradefed verfügbar ist. Weitere Informationen finden Sie in der Beispiel-CL.

Android-Gerät einrichten

Nutzerbuilds

Ein kompatibles Gerät ist ein Gerät mit einem vom Nutzer oder Releaseschlüssel signierten Build. Auf Ihrem Gerät sollte ein System-Image ausgeführt werden, das auf dem bekannten kompatiblen Nutzer-Build (Android 4.0 oder höher) aus Codenamen, Tags und Build-Nummern basiert.

Build-Attribut der ersten API-Ebene

Bestimmte CTS-Anforderungen hängen von der Build-Version ab, mit der ein Gerät ursprünglich ausgeliefert wurde. So können Geräte, die ursprünglich mit früheren Builds ausgeliefert wurden, von Systemanforderungen ausgeschlossen werden, die für Geräte mit neueren Builds gelten.

Um diese Informationen für CTS verfügbar zu machen, könnten Gerätehersteller die Buildzeiteigenschaft ro.product.first_api_level definiert haben. Der Wert dieser Property ist die erste API-Ebene, mit der das Gerät auf den Markt gebracht wurde.

Die Gerätehersteller können die gemeinsame zugrunde liegende Implementierung wiederverwenden, um ein neues Produkt als Upgrade eines vorhandenen Produkts in derselben Gerätegruppe auf den Markt zu bringen. Die Gerätehersteller können optional die API-Ebene des vorhandenen Produkts auf ro.product.first_api_level setzen, sodass Upgradeanforderungen für CTS und Treble/VTS gelten.

Die Gerätehersteller können PRODUCT_SHIPPING_API_LEVEL in ihrer Datei device.mk definieren, um dieses Attribut festzulegen, wie im folgenden Beispiel gezeigt:

# 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

Erstes API-Level für Android 9 oder höher

Setze bei Geräten mit Android 9 oder höher das Attribut ro.product.first_api_level auf einen gültigen Wert aus Codenames, Tags und Build-Nummern.

Erste API-Ebene für Android 8.x oder niedriger

Legen Sie für Geräte, die mit Android 8.x oder niedriger eingeführt wurden, die Property ro.product.first_api_level für den ersten Build des Produkts auf „unbekannt“ fest. Legen Sie für alle nachfolgenden Builds ro.product.first_api_level auf den richtigen Wert für die API-Ebene fest. So kann die Property ein neues Produkt korrekt identifizieren und Informationen zur ersten API-Ebene des Produkts werden beibehalten. Wenn das Flag nicht gesetzt ist, weist Android Build.VERSION.SDK_INT ro.product.first_api_level zu.

CTS-Shims

Android 10 oder höher enthält ein Paketformat namens APEX. Wenn Sie CTS-Tests für APEX-Verwaltungs-APIs ausführen möchten (z. B. eine Aktualisierung auf eine neue Version oder das Melden aktiver APEXes), müssen Sie ein CtsShimApex-Paket auf einer Partition /system vorinstallieren.

Mit dem APEX-Shim-Validierungstest wird die Implementierung von CtsShimApex überprüft.

ro.apex.updatable requirements

  • Wenn die Property ro.apex.updatable auf true festgelegt ist, ist CtsShimApex für alle Geräte erforderlich, die die APEX-Paketverwaltung unterstützen.

  • Wenn die Property ro.apex.updatable fehlt oder nicht festgelegt ist, muss CtsShimApex nicht auf einem Gerät vorinstalliert sein.

Mit dem APEX-Shim-Validierungstest wird die Implementierung von CtsShimApex überprüft.

Von CtsShim vorinstallierte und vorgeladene Inhalte

Ab Android 11 enthält CtsShimApex zwei vorkonfigurierte Apps (aus der Build-Quelle erstellt), die außer dem Manifest keinen Code enthalten. Mit diesen Apps werden in CTS Berechtigungen und Befugnisse getestet.

Wenn das Gerät die APEX-Paketverwaltung nicht unterstützt (d. h. das Attribut ro.apex.updatable fehlt oder nicht festgelegt ist) oder auf dem Gerät Version 10 oder niedriger ausgeführt wird, müssen die beiden vordefinierten Apps separat im System vorinstalliert werden.

Wenn APEX unterstützt wird, müssen die Vorabinstallationen für die entsprechende Version als /system/apex/com.android.apex.cts.shim.apex platziert werden.

Wenn reguläre vorkonfigurierte Apps verwendet werden, müssen CtsShim und CtsShimPriv für den entsprechenden Release als /system/app/CtsShimPrebuilt.apk und /system/priv-app/CtsShimPrivPrebuilt.apk festgelegt werden.

In der folgenden Tabelle sind die vorinstallierten und vorgeladenen Inhalte aufgeführt, die für jede Geräteversion und -architektur verfügbar sind.

Geräteversion
vorinstallieren (falls APEX unterstützt wird)
Vorab laden
SCHARF SCHALTEN x86 SCHARF SCHALTEN x86
Android 15 android15-arm-release android15-x86-release android15-arm-CtsShim.apk

android15-arm-CtsShimPriv.apk

android15-x86-CtsShim.apk

android15-x86-CtsShimPriv.apk

Android 14 android14-arm-release android14-x86-release android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

Android 13 android13-arm-release android13-x86-release android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

Android 12 android12-arm-release android12-x86-release android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Android 11 android11-arm-release android11-x86-release android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Android 10 android10-release android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

Android 9, O und O-MR1 arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

Damit die Tests bestanden werden, müssen Sie die Apps in die entsprechenden Verzeichnisse im System-Image vorladen, ohne sie noch einmal zu signieren.

Beispiel-Applet

Mit Android 9 wurden Open Mobile APIs eingeführt. Bei Geräten, die mehr als ein Secure Element melden, fügt CTS Testfälle hinzu, um das Verhalten der Open Mobile APIs zu validieren. Für diese Testfälle muss ein Beispiel-Applet einmalig im eingebetteten Secure Element (eSE) des DUT oder in der von ihm verwendeten SIM-Karte installiert werden. Das eSE-Beispiel-Applet und das SIM-Beispiel-Applet finden Sie im AOSP.

Weitere Informationen zu Open Mobile API- und Zugriffssteuerungs-Tests finden Sie unter CTS-Test für Secure Element.

Speicheranforderungen

Für die CTS-Medien-Stresstests müssen sich Videoclips in einem externen Speicher befinden (/sdcard). Die meisten Clips stammen von Big Buck Bunny, das von der Blender Foundation im Rahmen der Creative Commons Attribution 3.0-Lizenz urheberrechtlich geschützt ist.

Der erforderliche Speicherplatz hängt von der maximalen Auflösung der Videowiedergabe ab, die vom Gerät unterstützt wird. Die Plattformversion der erforderlichen Auflösungen finden Sie im Abschnitt 5 des Dokuments zur Definition der Android-Kompatibilität.

Hier sind die Speicheranforderungen nach maximaler Videowiedergabeauflösung:

  • 480 x 360: 98 MB
  • 720 x 480: 193 MB
  • 1280 × 720: 606 MB
  • 1920 × 1080: 1.863 MB

Display und Speicher

  • Jedes Gerät ohne eingebetteten Bildschirm muss mit einem Bildschirm verbunden werden.
  • Wenn das Gerät einen Speicherkartensteckplatz hat, legen Sie eine leere SD-Karte ein. Verwenden Sie eine SD-Karte, die einen UHS-Bus (Ultra High Speed) mit SDHC- oder SDXC-Kapazität oder eine Karte mit mindestens der Geschwindigkeitsklasse 10 unterstützt, damit sie den CTS bestehen kann.

  • Wenn das Gerät SIM-Kartensteckplätze hat, legen Sie in jeden Steckplatz eine aktivierte SIM-Karte ein. Wenn das Gerät SMS unterstützt, muss für jede SIM-Karte ein eigenes Nummernfeld ausgefüllt sein. Auf Geräten mit Android 12 oder höher müssen alle SIM-Karten die Speicherung von Kurzwahlnummern unterstützen. GSM- und USIM-Karten mit der speziellen Datei für Telekommunikation (DFTelecom) erfüllen diese Anforderung.

UICC für Entwickler

Zum Ausführen von CTS-Mobilfunkanbieter-API-Tests muss das Gerät eine SIM-Karte mit CTS-Mobilfunkanbieterberechtigungen verwenden, die den unter UICC vorbereiten aufgeführten Anforderungen entspricht.

Android-Gerätekonfiguration

  1. Setzen Sie das Gerät auf die Werkseinstellungen zurück: Einstellungen > Sichern und zurücksetzen > Auf Werkseinstellungen zurücksetzen.

  2. Legen Sie als Sprache Ihres Geräts Englisch (Vereinigte Staaten) fest: Einstellungen > Sprache und Eingabe > Sprache.

  3. Wenn das Gerät die Anpassung von Standardschriftarten unterstützt, legen Sie die Standardschriftfamilie sans-serif auf Roboto fest. Das ist die Standardschriftfamilie sans-serif, die in AOSP-Builds verwendet wird.

  4. Aktivieren Sie die Standorteinstellungen, wenn auf dem Gerät eine GPS- oder WLAN-/Mobilfunkfunktion vorhanden ist: Einstellungen > Standort > Ein.

  5. Stellen Sie eine Verbindung zu einem WLAN her, das IPv6 unterstützt, die DUT als isolierten Client behandeln kann (siehe oben Physische Umgebung) und eine Internetverbindung hat: Einstellungen > WLAN.

  6. Achten Sie darauf, dass auf dem Gerät kein Sperrmuster oder Passwort festgelegt ist: Einstellungen > Sicherheit > Displaysperre > Keine.

  7. Aktivieren Sie auf Ihrem Gerät das USB-Debugging: Einstellungen > Entwickleroptionen > USB-Debugging.

  8. Stellen Sie die Uhrzeit auf das 12-Stunden-Format ein: Einstellungen > Datum und Uhrzeit > 24-Stunden-Format verwenden > Aus.

  9. Legen Sie fest, dass das Gerät eingeschaltet bleiben soll: Einstellungen > Entwickleroptionen > „Ein“ aktivieren.

  10. Nur unter Android 5.x und 4.4.x: Legen Sie auf dem Gerät fest, dass simulierte Standorte zulässig sind: Einstellungen > Entwickleroptionen > Simulierte Standorte zulassen > Ein.

  11. Deaktiviere in Android 4.2 oder höher die USB-App-Bestätigung: Einstellungen > Entwickleroptionen > Apps über USB bestätigen > Aus.

  12. Bei Android 13 oder höher müssen Sie auf dem Gerät das Mock-Modem aktivieren: gehen Sie zu Einstellungen > Entwickleroptionen > Mock-Modem zulassen > Ein.

  13. Starten Sie den Browser und schließen Sie alle Start-/Einrichtungsbildschirme.

  14. Verbinden Sie den Computer, mit dem das Gerät getestet werden soll, über ein USB-Kabel.

  15. Legen Sie vor dem Ausführen von CTS Roboto2 als serifenlose Schriftart fest. Verwenden Sie dazu eine Einstellung, die für Nutzer zugänglich ist (nicht ausgeblendet).

Dateiinstallation

Installieren und konfigurieren Sie Hilfs-Apps auf dem Gerät.

  1. Richten Sie Ihr Gerät gemäß der CTS-Version ein:

    • CTS-Versionen 2.1 R2 bis 4.2 R4:Richten Sie Ihr Gerät (oder Ihren Emulator) so ein, dass die Tests zur Barrierefreiheit mit folgenden Tools ausgeführt werden: adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      Aktivieren Sie die Delegierung auf dem Gerät: Einstellungen > Bedienungshilfen > Bedienungshilfen > Bedienungshilfendienst delegieren.

    • CTS-Versionen 6.x oder niedriger:Richten Sie auf Geräten, die android.software.device_admin angeben, den Test für die Geräteverwaltung mithilfe von Folgendem ein: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      Aktivieren Sie unter Einstellungen > Sicherheit > Geräteadministratoren auswählen die beiden android.deviceadmin.cts.CtsDeviceAdminReceiver*-Geräteadministratoren. android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver und alle anderen vorinstallierten Geräteadministratoren müssen deaktiviert bleiben.

  2. Kopieren Sie die CTS-Mediendateien wie folgt auf das Gerät:

    1. Gehen Sie (cd) zu dem Pfad, in dem die Mediendateien heruntergeladen und entpackt werden.
    2. Ändern Sie die Dateiberechtigungen: chmod u+x copy_media.sh

    3. Kopieren Sie die erforderlichen Dateien:

      • Wenn du Clips mit einer Auflösung von bis zu 720 × 480 Pixeln kopieren möchtest, führe Folgendes aus:

        ./copy_media.sh 720x480
        
      • Wenn Sie sich nicht sicher sind, welche Auflösung maximal möglich ist, kopieren Sie alle Dateien:

        ./copy_media.sh all
        
      • Wenn unter „adb“ mehrere Geräte aufgeführt sind, fügen Sie am Ende die Serienoption (-s) eines bestimmten Geräts hinzu. Wenn du beispielsweise bis zu 720 × 480 auf das Gerät mit der Seriennummer 1234567 kopieren möchtest, führe Folgendes aus:

        ./copy_media.sh 720x480 -s 1234567