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 für den Bluetooth LE-Scantest im Umkreis von 5 Metern von der DUT mindestens drei Bluetooth LE-Beacons. Diese Beacons müssen nicht konfiguriert werden und geben keine spezifischen Daten aus. Sie können beliebig sein, einschließlich iBeacon, Eddystone oder sogar Geräte, die BLE-Beacons simulieren.

Ultrabreitband

Wenn der DUT Ultrabreitband (UWB) unterstützt, muss ein anderes UWB-fähiges Gerät nah genug positioniert und so ausgerichtet sein, dass sich keine Antenne und keine Funkzone befinden. Für die Tests zur Entfernungsgenauigkeit gibt es spezielle Anforderungen an Position und Ausrichtung. Weitere Informationen zur Einrichtung finden Sie unter UWB-Anforderungen. Der UWB-Test muss manuell ausgeführt werden. Dabei muss in der Befehlszeile angegeben werden, welche zwei Geräte einen Meter voneinander entfernt sind. Weitere Informationen zur für diesen Test erforderlichen Fragmentierung finden Sie unter Lokale Fragmentierung.

Kameras

Verwenden Sie beim Ausführen des CTS der Kamera normale Lichtverhältnisse mit einem Testmusterdiagramm (z. B. mit einem Schachbrettmuster). Platzieren Sie das Testmusterdiagramm entsprechend der minimalen Fokusdistanz des DUT, damit es sich nicht zu nah am Objektiv befindet.

Richten Sie die Kamerasensoren auf ein Ambiente mit ausreichender Beleuchtung aus, damit die zu testenden Sensoren die in CONTROL_AE_TARGET_FPS_RANGE angegebenen maximal konfigurierten Zielbilder pro Sekunde (fps) erreichen und beibehalten können. Dies gilt für alle von getCameraIdList gemeldeten Kamerasensoren, da der Test die aufgeführten Geräte durchläuft und die Leistung einzeln misst.

Wenn der DUT externe Kameras wie USB-Webcams unterstützt, schließen Sie beim Ausführen von 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 jeglicher Art sein, einschließlich eines Satellitensimulators oder eines GPS/GNSS-Repeaters für Außensignale. Sie können den DUT aber auch nah genug an einem Fenster platzieren, sodass es direkt genug GPS-/GNSS-Signal empfangen kann.

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 der DUT die Broadcast-/Multinetzwerk-Nachrichten in diesem Subnetzwerk nicht einsehen kann. Dies geschieht bei der Konfiguration eines Wi-Fi-Zugangspunkts oder durch Ausführen des DUT in einem isolierten Subnetzwerk, ohne dass andere Geräte verbunden sind.

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

Zur Übergabe der CTS müssen für den DUT die Flags UP, BROADCAST und MULTICAST auf der WLAN-Schnittstelle festgelegt 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 STA/STA-Gleichzeitigkeit von WLAN unterstützen, sind mehrere WLANs (mindestens 2) erforderlich. Damit die CTS übergeben werden kann, 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 Round Trip Time (RTT)-Funktion. So können Geräte die Entfernung zu Zugangspunkten mit einer Genauigkeit von 1 bis 2 Metern messen, was die Genauigkeit der Standortbestimmung in Innenräumen erheblich 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. Zugangspunkte müssen sich nicht neben dem Testgerät befinden, es wird jedoch empfohlen, sich nicht weiter als 15 Meter vom DUT entfernt zu befinden. In der Regel ist ein Zugangspunkt ausreichend.

Einrichtung von Desktopcomputern

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.

Upgrade der Hostmaschine

Es wird dringend empfohlen, den RAM des CTS-Hostcomputers auf 128 GB und die Festplatte auf 256 GB zu aktualisieren. Sie ist erforderlich, um der gestiegenen Anzahl von CTS-Testfällen und einer erhöhten Reservierung von Java-Heap-Speicherplatz im Tradefed gerecht zu werden.

ADB und AAPT2

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

Laden Sie zum Installieren von ADB und AAPT2 die neuesten Android SDK Platform Tools und Android SDK Build Tools über den SDK Manager von Android Studio oder das sdkmanager-Befehlszeilentool herunter.

Achten Sie darauf, dass sich adb und aapt2 in Ihrem Systempfad befinden. Bei dem folgenden Befehl wird davon ausgegangen, dass Sie die Paketarchive in ein Unterverzeichnis mit dem Namen 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 den Python-Support

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

Durch Aufrufen von virtualenv -h können Sie prüfen, ob die Installation erfolgreich war.

CTS-Dateien

Laden Sie die CTS-Pakete aus Kompatibilitätstest-Suite-Downloads 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.

Laden Sie die neueste Version der CTS-Mediendateien herunter und öffnen Sie sie.

Mainline-bezogene CTS-Dateien herunterladen (optional)

Wenn Sie eine CTS-Version zum ersten Mal ausführen, lädt CTS einige Mainline-bezogene CTS-Dateien dynamisch herunter, wodurch die Laufzeit abhängig von Ihrer Netzwerkgeschwindigkeit um mindestens 10 Minuten verlängert wird.

Um diese zusätzliche CTS-Laufzeit zu vermeiden, können Sie die Mainline-bezogenen CTS-Dateien herunterladen, bevor Sie die CTS-Version ausführen. Gehen Sie dazu so vor:

  1. Rufen Sie das Android-API-Level auf dem Gerät ab, indem Sie folgenden Befehl ausführen:

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

    Der Download dauert je nach Netzwerkgeschwindigkeit mindestens 10 Minuten.

Geräteerkennung

Folgen Sie dem Schritt, 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 im Beispiel-CL.

Einrichtung von Android-Geräten

Nutzer-Builds

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

Build-Attribut der ersten API-Ebene

Bestimmte CTS-Anforderungen hängen vom Build ab, mit dem das Gerät ursprünglich versendet wurde. Beispielsweise können Geräte, die ursprünglich mit älteren Builds ausgeliefert wurden, möglicherweise von den Systemanforderungen ausgeschlossen werden, die für Geräte mit späteren Builds gelten.

Um diese Informationen für CTS verfügbar zu machen, könnten Gerätehersteller das Build-Zeit-Attribut ro.product.first_api_level definiert haben. Der Wert dieser Eigenschaft ist die erste API-Ebene, mit der das Gerät kommerziell gestartet 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 Codenamen, Tags und Build-Nummern.

Erstes API-Level für Android 8.x oder niedriger

Deaktivieren Sie bei Geräten, die mit Android 8.x oder niedriger auf den Markt gebracht wurden, das Attribut ro.product.first_api_level für den ersten Build des Produkts. Lege für alle nachfolgenden Builds ro.product.first_api_level auf den richtigen Wert für die API-Ebene fest. So kann das Attribut ein neues Produkt korrekt identifizieren und Informationen zur ersten API-Ebene des Produkts bleiben erhalten. Wenn das Flag nicht festgelegt ist, weist Android Build.VERSION.SDK_INT ro.product.first_api_level zu.

CTS-Shim-Pakete

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. die Aktualisierung auf eine neue Version oder die Berichterstellung für aktive APEXes), müssen Sie ein CtsShimApex-Paket auf einer Partition /system vorinstallieren.

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

Anforderungen für ro.apex.updatable

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

  • Wenn das Attribut 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.

CtsShim-Vorinstallationen und -Vorabladevorgänge

Ab Android 11 enthält CtsShimApex zwei vordefinierte Apps, die aus einem Build-Quellcode erstellt wurden und keinen Code außer dem Manifest enthalten. CTS verwendet diese Anwendungen, um Berechtigungen und Berechtigungen zu testen.

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 Vorinstallationen für den entsprechenden Release als /system/apex/com.android.apex.cts.shim.apex platziert werden.

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

In der folgenden Tabelle sind die für jede Geräteversion und -architektur verfügbaren Vorinstallationen und Vorabladevorgänge aufgeführt.

Geräteversion
vorinstallieren (falls APEX unterstützt wird)
Vorab laden
SCHARF SCHALTEN x86 SCHARF SCHALTEN x86
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

Um die Tests zu bestehen, laden Sie die Anwendungen vorab in die entsprechenden Verzeichnisse im System-Image, ohne die Anwendungen neu zu signieren.

Beispiel-Applet

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

Ausführliche Informationen zu Open Mobile API-Testläufen und Testfällen für die Zugriffssteuerung finden Sie unter CTS-Test für Secure Element.

Speicheranforderungen

Für die CTS-Medien-Stresstests müssen sich Videoclips auf 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 ab, die bei der Videowiedergabe vom Gerät unterstützt wird. Die Plattformversion der erforderlichen Auflösungen finden Sie in Abschnitt 5 im Dokument zur Definition der Android-Kompatibilität.

Dies sind die Speicheranforderungen je nach maximaler Auflösung für die Videowiedergabe:

  • 480 x 360: 98 MB
  • 720 x 480: 193 MB
  • 1280 x 720: 606 MB
  • 1.920 x 1.080: 1.863 MB

Display und Speicher

  • Jedes Gerät ohne eingebetteten Bildschirm muss mit einem Bildschirm verbunden werden.
  • Wenn das Gerät über einen Steckplatz für Speicherkarten verfügt, stecken Sie eine leere SD-Karte ein. Verwenden Sie eine SD-Karte, die einen Ultra-High-Speed-Bus (UHS) mit SDHC- oder SDXC-Kapazität unterstützt, oder eine mit mindestens einer Geschwindigkeitsklasse von 10, damit er die CTS bestehen kann.

  • Wenn das Gerät über SIM-Kartensteckplätze verfügt, stecken Sie eine aktivierte SIM-Karte in jeden dieser Steckplätze. 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 das Speichern von Kurzwahlnummern (ADN) unterstützen. GSM- und USIM-Karten mit der dedizierten Telekommunikationsdatei (DFTelecom) erfüllen diese Anforderung.

Entwickler-UICC

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. Stellen Sie die Sprache Ihres Geräts auf Englisch (USA) ein: Einstellungen > Sprache & 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. Aktiviere die Standorteinstellung, wenn das Gerät eine GPS- oder WLAN-/Mobilfunkfunktion unterstützt: Einstellungen > Standort > An.

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

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

  7. Aktiviere USB-Debugging auf deinem Gerät: Einstellungen > Entwickleroptionen > USB-Debugging.

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

  9. Legen Sie fest, dass das Gerät aktiv bleibt: Einstellungen > Entwickleroptionen > Aktiv bleiben > An.

  10. Nur in Android 5.x und 4.4.x: Legen Sie fest, dass auf dem Gerät simulierte Standorte zugelassen werden: Einstellungen > Entwickleroptionen > Simulierte Standorte zulassen > An.

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

  12. Richten Sie das Gerät unter Android 13 oder höher so ein, dass Mock-Modem zugelassen wird: Einstellungen > Entwickleroptionen > Mock Modem zulassen > An.

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

  14. Schließen Sie den Desktopcomputer, der zum Testen des Geräts verwendet werden soll, mit einem USB-Kabel an.

  15. Bevor Sie CTS ausführen, legen Sie Roboto2 als serifenlose Schriftart fest. Verwenden Sie dazu eine Einstellung für vom Nutzer zugängliche Angebote (nicht ausgeblendet).

Dateiinstallation

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

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

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

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

    • CTS-Version 6.x oder niedriger: Richte dein Gerät auf Geräten, für die android.software.device_admin deklariert wird, so ein, dass der Test zur Geräteverwaltung ausgeführt wird. Verwende dazu 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. Achten Sie darauf, dass android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver und alle anderen vorinstallierten Geräteadministratoren 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:

      • Führen Sie folgenden Befehl aus, um Clips mit einer Auflösung von 720 x 480 zu kopieren:

        ./copy_media.sh 720x480
        
      • Wenn Sie die maximale Auflösung nicht kennen, kopieren Sie alle Dateien:

        ./copy_media.sh all
        
      • Wenn sich mehrere Geräte unter ADB befinden, füge am Ende die serielle Option (-s) eines bestimmten Geräts hinzu. Um beispielsweise eine Größe von bis zu 720 x 480 auf das Gerät mit der Seriennummer 1234567 zu kopieren, führen Sie folgenden Befehl aus:

        ./copy_media.sh 720x480 -s 1234567