CTS einrichten

Um CTS auszuführen, bereiten Sie zunächst Ihre physische Umgebung, Ihren Desktop-Computer und das Android-Gerät vor, das Sie zum Testen verwenden.

Physische Umgebung

Bluetooth LE-Beacons

Wenn das zu testende Gerät (DUT) Bluetooth LE unterstützt, platzieren Sie für den Bluetooth LE-Scantest mindestens drei Bluetooth LE-Beacons im Umkreis von 5 Metern um das DUT. Diese Beacons müssen nicht konfiguriert werden oder etwas Besonderes aussenden, und können beliebiger Art sein, einschließlich iBeacon, Eddystone oder sogar Geräte, die BLE-Beacons simulieren.

Ultra-Breitband

Wenn das DUT Ultrabreitband (UWB) unterstützt, muss ein anderes Gerät, das UWB unterstützt, nahe genug positioniert und ausgerichtet sein, damit keine Antennen- und Funktotzone entsteht. Für die Entfernungsgenauigkeitstests gibt es spezifische Positionierungs- und Orientierungsanforderungen. Einzelheiten zur Einrichtung finden Sie unter UWB-Anforderungen . Der UWB-Test muss manuell ausgeführt werden, indem in der Befehlszeile angegeben wird, welche zwei Geräte einen Meter voneinander entfernt sind. Einzelheiten zum Sharding, das für diesen Test erforderlich ist, finden Sie unter Lokales Sharding .

Kameras

Verwenden Sie beim Ausführen von Kamera-CTS normale Lichtbedingungen mit einem Testmusterdiagramm (z. B. einem Schachbrettmuster). Platzieren Sie die Testmustertabelle entsprechend der minimalen Fokusentfernung des Prüflings, um sicherzustellen, dass er nicht zu nah am Objektiv ist.

Richten Sie die Kamerasensoren auf eine Szene mit ausreichender Beleuchtung, damit die zu testenden Sensoren die in CONTROL_AE_TARGET_FPS_RANGE angegebenen maximalen konfigurierten Zielbilder pro Sekunde (FPS) erreichen und beibehalten können. Dies gilt für alle von getCameraIdList gemeldeten Kamerasensoren, da der Test die aufgelisteten 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 von CTS eine externe Kamera an. Andernfalls schlagen die CTS-Tests fehl.

GPS/GNSS

Wenn das DUT die Funktion Global Positioning System/Global Navigation Satellite System (GPS/GNSS) unterstützt, stellen Sie dem DUT ein GPS/GNSS-Signal mit einem geeigneten Signalpegel für den Empfang und die GPS-Standortberechnung zur Verfügung. Der GPS-Teil muss mit ICD-GPS-200C kompatibel sein. Ansonsten kann das GPS/GNSS-Signal beliebiger Art sein, einschließlich eines Satellitensimulators oder eines GPS/GNSS-Repeaters für Außensignale, oder Sie können den Prüfling nahe genug an einem Fenster platzieren, sodass er direkt ausreichend GPS/GNSS-Signal empfangen kann.

WLAN und IPv6

CTS-Tests erfordern ein Wi-Fi-Netzwerk, das IPv4 und IPv6 unterstützt, über eine Internetverbindung mit funktionierendem DNS für IPv4 und IPv6 verfügt, IP-Multicast unterstützt und das DUT als isolierten Client behandeln kann. Ein isolierter Client ist eine Konfiguration, bei der das DUT keinen Einblick in die Broadcast-/Multinetzwerk-Nachrichten in diesem Subnetzwerk hat. Dies geschieht bei einer Wi-Fi Access Point (AP)-Konfiguration oder indem das DUT in einem isolierten Subnetzwerk ausgeführt wird, ohne dass andere Geräte angeschlossen sind.

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

Um CTS zu bestehen, muss das DUT die Flags UP , BROADCAST und MULTICAST auf der Wi-Fi-Schnittstelle setzen. Der Wi-Fi-Schnittstelle müssen IPv4- und IPv6-Adressen zugewiesen werden. Überprüfen Sie die Eigenschaften der Wi-Fi-Schnittstelle mit adb shell ifconfig .

Für Geräte, die Wi-Fi STA/STA Concurrency unterstützen, sind mehrere Wi-Fi-Netzwerke (mindestens 2) erforderlich. Um CTS zu bestehen, müssen die Wi-Fi-Netzwerke auf unterschiedlichen Bändern mit unterschiedlichen SSIDs oder auf derselben SSID mit unterschiedlichen BSSIDs laufen.

Wi-Fi RTT

Android enthält die Wi-Fi RTT API für eine Wi-Fi Round Trip Time (RTT) -Funktion. Dadurch können Geräte ihre Entfernung zu Zugangspunkten mit einer Genauigkeit von 1 bis 2 Metern messen, was die Genauigkeit der Standortbestimmung in Innenräumen deutlich erhöht. Zwei empfohlene Geräte, die Wi-Fi RTT unterstützen, sind Google Wifi und der fitlet2 Access Point von Compulab (eingestellt auf 40 MHz Bandbreite bei 5 GHz).

Die Access Points sollten eingeschaltet sein, benötigen aber keine Netzwerkverbindung. Access Points müssen sich nicht in der Nähe des Testgeräts befinden, es wird jedoch empfohlen, dass sie sich in einem Umkreis von 40 Fuß um das DUT befinden. Normalerweise reicht ein Zugangspunkt aus.

Einrichtung eines Desktop-Computers

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.

Upgrade der Host-Maschine

Es wird dringend empfohlen, den Arbeitsspeicher des CTS-Hostcomputers auf 128 GB und die Festplatte auf 256 GB aufzurüsten. Dies ist erforderlich, um der erhöhten Anzahl von CTS-Testfällen und einer erhöhten Java-Heap-Speicherplatzreservierung in Tradefed gerecht zu werden.

ADB und AAPT2

Stellen Sie vor dem Ausführen des CTS sicher, dass Sie die aktuellen Versionen von Android Debug Bridge (adb) und Android Asset Packaging Tool (AAPT2) installiert und den Speicherort dieser Tools zum Systempfad Ihres Computers hinzugefügt haben.

Um ADB und AAPT2 zu installieren, laden Sie die neuesten Android SDK Platform Tools und Android SDK Build Tools vom SDK Manager von Android Studio oder vom Befehlszeilentool sdkmanager herunter.

Stellen Sie sicher, dass sich adb und aapt2 in Ihrem Systempfad befinden. Der folgende Befehl geht davon aus, dass Sie die Paketarchive in ein Unterverzeichnis namens android-sdk in Ihrem Home-Verzeichnis 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 Kit (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.

Einzelheiten finden Sie in den JDK-Anforderungen .

Setup für Python-Unterstützung

Installieren Sie virtualenv für Ihre Plattform, indem Sie den Installationsanweisungen folgen.

Sie können überprü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, die der Android-Version Ihrer Geräte und allen von Ihren Geräten unterstützten Application Binary Interfaces (ABIs) entsprechen.

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

Geräteerkennung

Befolgen Sie die Schritte, um Ihr System so einzurichten, dass es Ihr Gerät erkennt .

Speicherlimit

Möglicherweise möchten Sie den maximal verfügbaren Speicher während des Testlaufs im cts-tradefed -Skript erhöhen. Weitere Informationen finden Sie im Beispiel-CL .

Einrichtung eines Android-Geräts

Benutzer-Builds

Ein kompatibles Gerät ist als Gerät mit einem vom Benutzer/Freigabeschlüssel signierten Build definiert. Auf Ihrem Gerät sollte ein Systemabbild ausgeführt werden, das auf dem bekanntermaßen kompatiblen Benutzer-Build (Android 4.0 oder höher) aus Codenamen, Tags und Build-Nummern basiert.

Build-Eigenschaft der ersten API-Ebene

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

Um diese Informationen CTS zur Verfügung zu stellen, hätten Gerätehersteller die Build-Time-Eigenschaft ro.product.first_api_level definieren können. 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 festlegen, sodass Upgrade-Anforderungen für CTS und Treble/VTS gelten.

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

Erste API-Ebene für Android 9 oder höher

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

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

Bei Geräten, die unter Android 8.x oder niedriger gestartet wurden, deaktivieren (entfernen) Sie die Eigenschaft ro.product.first_api_level für den ersten Build des Produkts. Setzen Sie für alle nachfolgenden Builds ro.product.first_api_level auf den richtigen API-Level-Wert. Dadurch kann die Eigenschaft ein neues Produkt korrekt identifizieren und Informationen über die erste API-Ebene des Produkts beibehalten. Wenn das Flag nicht gesetzt ist, weist Android Build.VERSION.SDK_INT ro.product.first_api_level zu.

CTS-Unterlegscheibenpakete

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

Der APEX-Shim-Validierungstest überprüft die Implementierung von CtsShimApex .

ro.apex.updatable-Anforderungen

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

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

Der APEX-Shim-Validierungstest überprüft die Implementierung von CtsShimApex .

CtsShim wird vorinstalliert und vorab geladen

Ab Android 11 enthält CtsShimApex zwei vorgefertigte Apps (aus der Build-Quelle erstellt), die außer dem Manifest keinen Code enthalten. CTS verwendet diese Apps, um Privilegien und Berechtigungen zu testen.

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

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

Wenn reguläre vorgefertigte Apps verwendet werden, müssen CtsShim und CtsShimPriv für die entsprechende Version als /system/app/CtsShimPrebuilt.apk bzw. /system/priv-app/CtsShimPrivPrebuilt.apk platziert werden.

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

Geräteversion Vorinstallieren
(sofern APEX unterstützt)
Vorladen
ARM x86 ARM 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-Version android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

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

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

Um die Tests zu bestehen, laden Sie die Apps vorab in die entsprechenden Verzeichnisse auf dem Systemabbild, ohne die Apps erneut 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. Diese Testfälle erfordern die einmalige Installation eines Beispiel-Applets im eingebetteten Secure Element (eSE) des DUT oder in der vom DUT verwendeten SIM-Karte. Das eSE-Beispiel-Applet und das SIM-Beispiel-Applet finden Sie in AOSP.

Ausführlichere Informationen zu Open Mobile API-Testfällen und Zugriffskontroll-Testfällen finden Sie unter CTS-Test für Secure Element .

Lagerungssansprüche

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

Der erforderliche Speicherplatz hängt von der maximalen Videowiedergabeauflösung ab, die das Gerät unterstützt. Die Plattformversion der erforderlichen Auflösungen finden Sie in Abschnitt 5 im Dokument zur Android-Kompatibilitätsdefinition .

Hier sind die Speicheranforderungen nach maximaler Videowiedergabeauflösung:

  • 480x360: 98 MB
  • 720x480: 193 MB
  • 1280x720: 606 MB
  • 1920x1080: 1863 MB

Bildschirm und Lagerung

  • Jedes Gerät, das keinen eingebetteten Bildschirm hat, muss an einen Bildschirm angeschlossen werden.
  • Wenn das Gerät über einen Speicherkartensteckplatz verfügt, stecken Sie eine leere SD-Karte ein. Verwenden Sie eine SD-Karte, die den Ultra-High-Speed-Bus (UHS) mit SDHC- oder SDXC-Kapazität unterstützt, oder eine SD-Karte mit mindestens Geschwindigkeitsklasse 10 oder höher, um sicherzustellen, dass sie den CTS bestehen kann.

  • Wenn das Gerät über SIM-Kartensteckplätze verfügt, stecken Sie in jeden Steckplatz eine aktivierte SIM-Karte. Wenn das Gerät SMS unterstützt, muss für jede SIM-Karte ein eigenes Nummernfeld ausgefüllt sein. Bei Geräten mit Android 12 oder höher müssen alle SIM-Karten die Speicherung von Kurzwahlnummern (ADN) unterstützen. GSM- und USIM-Karten mit der dedizierten Telekommunikationsdatei (DF Telecom ) erfüllen diese Anforderung.

Entwickler UICC

Um CTS-Carrier-API-Tests ausführen zu können, muss das Gerät eine SIM-Karte mit CTS-Carrier-Berechtigungen verwenden, die den unter „Vorbereitung der UICC“ angegebenen Anforderungen entspricht.

Konfiguration des Android-Geräts

  1. Setzen Sie das Gerät auf Werkseinstellungen zurück: Einstellungen > Sichern & Zurücksetzen > Werksdaten zurücksetzen .

  2. Stellen Sie die Sprache Ihres Geräts auf Englisch ( USA ) ein: Einstellungen > Sprache & Eingabe > Sprache .

  3. Wenn das Gerät das Anpassen von Standardschriftarten unterstützt, legen Sie die standardmäßige sans-serif Schriftfamilie auf Roboto fest (die standardmäßige sans-serif Schriftfamilie, die in AOSP-Builds verwendet wird).

  4. Aktivieren Sie die Standorteinstellung, wenn das Gerät über eine GPS- oder WLAN-/Mobilfunknetzwerkfunktion verfügt: Einstellungen > Standort > Ein .

  5. Stellen Sie eine Verbindung zu einem Wi-Fi-Netzwerk her, das IPv6 unterstützt, das DUT als isolierten Client behandeln kann (siehe physische Umgebung oben) und über eine Internetverbindung verfügt: Einstellungen > Wi-Fi .

  6. Stellen Sie sicher, dass auf dem Gerät kein Sperrmuster oder Passwort eingestellt ist: Einstellungen > Sicherheit > Bildschirmsperre > Keine .

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

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

  9. Stellen Sie das Gerät so ein, dass es wach bleibt: Einstellungen > Entwickleroptionen > Wach bleiben > Ein .

  10. Nur in Android 5.x und 4.4.x stellen Sie das Gerät so ein, dass Scheinstandorte zugelassen werden: Einstellungen > Entwickleroptionen > Scheinstandorte zulassen > Ein .

  11. Deaktivieren Sie in Android 4.2 oder höher die USB-App-Überprüfung: Einstellungen > Entwickleroptionen > Apps über USB überprüfen > Aus .

  12. Stellen Sie in Android 13 oder höher das Gerät so ein, dass es Scheinmodems zulässt: Einstellungen > Entwickleroptionen > Scheinmodem zulassen > Ein .

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

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

  15. Bevor Sie CTS ausführen, legen Sie Roboto2 mithilfe einer für den Benutzer zugänglichen (nicht ausgeblendeten) Einstellung als serifenlose Schriftart fest.

Dateiinstallation

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

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

    • CTS-Versionen 2.1 R2 bis 4.2 R4: Richten Sie Ihr Gerät (oder Ihren Emulator) für die Ausführung der Barrierefreiheitstests ein mit: adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      Aktivieren Sie auf dem Gerät die Delegierung: Einstellungen > Barrierefreiheit > Barrierefreiheit > Barrierefreiheitsdienst delegieren .

    • CTS-Versionen 6.x oder niedriger: Richten Sie auf Geräten, die android.software.device_admin deklarieren, Ihr Gerät für die Ausführung des Geräteverwaltungstests ein, indem Sie Folgendes verwenden: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      Aktivieren Sie unter Einstellungen > Sicherheit > Geräteadministratoren auswählen die beiden Geräteadministratoren android.deviceadmin.cts.CtsDeviceAdminReceiver* . Stellen Sie sicher, 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. Navigieren Sie ( cd ) zu dem Pfad, in den die Mediendateien heruntergeladen und entpackt werden.
    2. Ändern Sie die Dateiberechtigungen: chmod u+x copy_media.sh

    3. Kopieren Sie die erforderlichen Dateien:

      • Um Clips mit einer Auflösung von bis zu 720 x 480 zu kopieren, führen Sie Folgendes aus:

        ./copy_media.sh 720x480
        
      • Wenn Sie sich über die maximale Auflösung nicht sicher sind, kopieren Sie alle Dateien:

        ./copy_media.sh all
        
      • Wenn sich unter adb mehrere Geräte befinden, fügen Sie am Ende die serielle Option ( -s ) eines bestimmten Geräts hinzu. Um beispielsweise bis zu 720 x 480 auf das Gerät mit der Seriennummer 1234567 zu kopieren, führen Sie Folgendes aus:

        ./copy_media.sh 720x480 -s 1234567