CTS einrichten

Bevor Sie CTS ausführen können, müssen Sie Ihre physische Umgebung, Ihren Computer und das Android-Gerät, das Sie für die Tests verwenden, vorbereiten.

Physische Umgebung

Bluetooth LE-Beacons

Wenn das Testgerät Bluetooth LE unterstützt, platzieren Sie für Bluetooth LE-Scantests mindestens drei Bluetooth LE-Beacons innerhalb von 5 Metern vom Testgerät. Diese Beacons müssen nicht konfiguriert werden und senden keine bestimmten Daten. Sie können jede Art von Beacon sein, z. B. 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 der 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 das Global Positioning System/Global Navigation Satellite System (GPS/GNSS) unterstützt, stellen Sie dem DUT ein GPS/GNSS-Signal mit einer geeigneten Signalstärke für den Empfang und die GPS-Standortberechnung zur Verfügung. Der GPS-Teil muss ICD-GPS-200C entsprechen. 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

Für CTS-Tests ist ein WLAN erforderlich, 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üfen Sie die Eigenschaften der WLAN-Schnittstelle mit adb shell ifconfig.

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 WLAN-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 Wi‑Fi RTT unterstützen, sind Google Wifi und der Zugangspunkt „fitlet2“ von Compulab (auf 40 MHz Bandbreite bei 5 GHz eingestellt).

Die Zugangspunkte müssen eingeschaltet sein, benötigen aber keine Netzwerkverbindung. Die Zugangspunkte müssen sich nicht direkt neben dem Testgerät befinden, sollten aber nicht weiter als 1 Meter davon entfernt sein. In der Regel ist ein Zugangspunkt ausreichend. Für konsistente Wi‑Fi-RTT-CTS-Testergebnisse muss der Kanal eine geringe Auslastung haben.

Computer einrichten

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

FFMPEG

Installieren Sie das Paket „ffmpeg“ Version 5.1.3 (oder höher) auf dem Hostcomputer.

Anforderungen an den Hostcomputer

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) installieren und den Speicherort dieser Tools dem Systempfad Ihres Computers hinzufügen.

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.
  • Für Android 9 und Android 10: Installieren Sie OpenJDK9.
  • Für Android 7.0, 7.1, 8.0 und 8.1 OpenJDK 8 installieren

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 von Compatibility Test Suite Downloads herunter und öffnen Sie sie. Sie müssen der Android-Version Ihrer Geräte und allen von ihnen unterstützten Anwendungs-Binärschnittstellen (Application Binary Interfaces, ABIs) entsprechen.

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 einige CTS-Dateien herunter, die mit der Mainline zusammenhängen. Dadurch verlängert sich die Laufzeit je nach Netzwerkgeschwindigkeit um mindestens 10 Minuten.

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

  1. So rufen Sie das Android API-Level 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.

    Je nach Netzwerkgeschwindigkeit dauert der Download mindestens 10 Minuten.

Geräteerkennung

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

Arbeitsspeicherlimit

Sie können den maximal verfügbaren Arbeitsspeicher während des Testlaufs im Script cts-tradefed erhöhen. Weitere Informationen finden Sie in der Beispiel-CL.

Android-Gerät einrichten

Nutzerbuilds

Ein kompatibles Gerät ist ein Gerät mit einer Build-Version, die mit einem Nutzer-/Release-Schlüssel signiert ist. 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.

Erste Build-Eigenschaft auf 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 die API-Ebene des vorhandenen Produkts optional auf ro.product.first_api_level festlegen, damit die Upgradeanforderungen für CTS und Treble/VTS angewendet werden.

Die Gerätehersteller können PRODUCT_SHIPPING_API_LEVEL in ihrer device.mk-Datei definieren, um diese Eigenschaft 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

Legen Sie für Geräte, die mit Android 9 oder höher eingeführt wurden, für die Property ro.product.first_api_level einen gültigen Wert aus der Liste Codenamen, Tags und Build-Nummern fest.

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

Entfernen Sie für Geräte, die mit Android 8.x oder niedriger gestartet wurden, die Property ro.product.first_api_level für den ersten Build des Produkts. 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 das Paketformat APEX. Wenn Sie CTS-Tests für APEX-Verwaltungs-APIs ausführen möchten (z. B. ein Update auf eine neue Version oder das Melden aktiver APEXes), müssen Sie ein CtsShimApex-Paket auf einer /system-Partition 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. die Eigenschaft ro.apex.updatable fehlt oder nicht festgelegt ist) oder auf dem Gerät Version 10 oder niedriger ausgeführt wird, müssen die beiden vorkonfigurierten 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 sicheren 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 die Videoclips auf einem externen Speicher (/sdcard) befinden. Die meisten Clips stammen aus Big Buck Bunny, das der Blender Foundation unter der Creative Commons Attribution 3.0-Lizenz zusteht.

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 × 360: 98 MB
  • 720 x 480: 193 MB
  • 1280 × 720: 606 MB
  • 1920 × 1080: 1.863 MB

Display und Speicher

  • Geräte ohne integriertes Display müssen mit einem Bildschirm verbunden sein.
  • 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

Für die Ausführung von CTS-Carrier API-Tests muss auf dem Gerät eine SIM mit CTS-Carrier-Berechtigungen verwendet werden, die die in UICC vorbereiten beschriebenen Anforderungen erfüllen.

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 Standardschriften unterstützt, legen Sie die Standardschriftfamilie sans-serif auf Roboto fest (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. Deaktivieren Sie unter Android 4.2 oder höher die USB-App-Überprüfung: Einstellungen > Entwickleroptionen > Apps über USB prüfen > Deaktiviert.

  12. Unter 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 > Delegierung des Bedienungshilfendiensts.

    • 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. So kopieren Sie die CTS-Mediendateien auf das Gerät:

    1. Rufe (cd) den Pfad auf, unter 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