CTS einrichten

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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 mindestens drei Bluetooth LE-Beacons innerhalb von 5 Metern um das DUT für Bluetooth LE-Scantests. Diese Beacons müssen nicht konfiguriert werden oder etwas Bestimmtes aussenden und können jede Art sein, einschließlich iBeacon, Eddystone oder sogar Geräte, die BLE-Beacons simulieren.

Kameras

Verwenden Sie beim Ausführen von Kamera-CTS normale Lichtverhältnisse mit einem Testmusterdiagramm (z. B. einem Schachbrettmuster). Platzieren Sie das Testmusterdiagramm entsprechend der minimalen Fokusentfernung des DUT, um sicherzustellen, dass es nicht zu nahe am Objektiv ist.

Richten Sie die Kamerasensoren auf eine Szene mit ausreichender Beleuchtung, damit die zu testenden Sensoren die maximal konfigurierten Zielbilder pro Sekunde (FPS) wie in CONTROL_AE_TARGET_FPS_RANGE angegeben erreichen und dort bleiben können. Dies gilt für alle von getCameraIdList gemeldeten Kamerasensoren, da der Test über die aufgelisteten Geräte iteriert und die Leistung einzeln misst.

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

GPS/GNSS

Wenn das DUT das Merkmal des globalen Positionsbestimmungssystems/globalen Navigationssatellitensystems (GPS/GNSS) unterstützt, stellen Sie dem DUT ein GPS/GNSS-Signal mit einem geeigneten Signalpegel für den Empfang und die GPS-Standortberechnung bereit. Der GPS-Teil muss mit ICD-GPS-200C konform sein. Ansonsten kann das GPS/GNSS-Signal beliebiger Art sein, einschließlich eines Satellitensimulators oder eines GPS/GNSS-Repeaters von Außensignalen, oder Sie können das DUT nahe genug an einem Fenster platzieren, sodass es direkt genug 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 keine Sichtbarkeit für die Broadcast-/Multinetzwerk-Nachrichten in diesem Teilnetzwerk hat. Dies geschieht mit einer Wi-Fi Access Point (AP)-Konfiguration 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-Betreibernetzwerk oder ein VPN haben, um einige IPv6-abhängige Tests zu bestehen, können Sie einen WLAN-Zugangspunkt und einen IPv6-Tunnel verwenden. Siehe Wikipedia- Liste der IPv6-Tunnelbroker .

Um CTS zu passieren, benötigt das DUT die UP , BROADCAST und MULTICAST -Flags, die auf der Wi-Fi-Schnittstelle gesetzt sind. 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 .

Wi-Fi-RTT

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

Die Access Points sollten eingeschaltet sein, benötigen aber keine Netzwerkverbindung. Access Points müssen sich nicht neben dem Testgerät befinden, es wird jedoch empfohlen, dass sie sich innerhalb von 40 Fuß vom DUT befinden. Ein Zugriffspunkt ist normalerweise ausreichend.

Einrichtung des Desktop-Computers

ADB und AAPT

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

Um ADB zu installieren, laden Sie das Android SDK Tools -Paket für Ihr Betriebssystem herunter, öffnen Sie es und befolgen Sie die Anweisungen in der enthaltenen README-Datei. Informationen zur Fehlerbehebung finden Sie unter Installieren der eigenständigen SDK-Tools .

Stellen Sie sicher, dass sich adb und aapt in Ihrem Systempfad befinden. Der folgende Befehl geht davon aus, dass Sie das Paketarchiv in Ihrem Home-Verzeichnis geöffnet haben:

export PATH=$PATH:$HOME/android-sdk-linux/build-tools/version

Java-Entwicklungskit 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 .

Einrichtung 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 virtualenv -h .

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 binären Anwendungsschnittstellen (ABIs), die Ihre Geräte unterstützen, entsprechen.

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

Geräteerkennung

Folgen Sie den Schritten, um Ihr System so einzurichten, dass es Ihr Gerät erkennt .

Speicherlimit

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

Einrichtung des Android-Geräts

Benutzer baut

Ein kompatibles Gerät ist als Gerät mit einem vom Benutzer/Freigabeschlüssel signierten Build definiert. Ihr Gerät sollte ein Systemabbild ausführen, 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 vom Build ab, mit dem 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 eingeführt wurde.

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

Die Gerätehersteller können PRODUCT_PROPERTY_OVERRIDES zu ihrer Datei „ device.mk “ hinzufügen, um diese Eigenschaft festzulegen, wie im folgenden Beispiel gezeigt:

#ro.product.first_api_level indicates the first api level that the device has
been commercially launched on.
PRODUCT_PROPERTY_OVERRIDES +=\
ro.product.first_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 von Codenames, Tags und Build Numbers fest.

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

Deaktivieren (entfernen) Sie für Geräte, die mit Android 8.x oder niedriger gestartet wurden, die Eigenschaft 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 API-Level-Wert fest. 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 zu ro.product.first_api_level zu.

CTS-Shimpakete

Android 10 oder höher enthält ein Paketformat namens APEX . Zum Ausführen von CTS-Tests für APEX-Verwaltungs-APIs (z. B. Aktualisieren auf eine neue Version oder Melden aktiver APEXs) 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 vorinstalliert und vorgeladen

Ab Android 11 enthält CtsShimApex zwei vorgefertigte Apps (aus Build-Quelle erstellt), die außer dem Manifest keinen Code enthalten. CTS verwendet diese Apps, um Berechtigungen 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 in der vorinstalliert werden System separat.

Geräteversion Vorinstallieren
(falls APEX unterstützt)
Vorladen
ARM x86 ARM x86
Android 12 android12-arm-release
unter /system/apex/com.android.apex.cts.shim.apex
Android12-x86-Version
unter /system/apex/com.android.apex.cts.shim.apex
android12-arm-CtsShim.apk
unter /system/app/CtsShimPrebuilt.apk

android12-arm-CtsShimPriv.apk
unter /system/priv-app/CtsShimPrivPrebuilt.apk

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

android12-x86-CtsShimPriv.apk
unter /system/priv-app/CtsShimPrivPrebuilt.apk

Android 11 android11-arm-release
unter /system/apex/com.android.apex.cts.shim.apex
Android11-x86-Version
unter /system/apex/com.android.apex.cts.shim.apex
android11-arm-CtsShim.apk
unter /system/app/CtsShimPrebuilt.apk

android11-arm-CtsShimPriv.apk
unter /system/priv-app/CtsShimPrivPrebuilt.apk

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

android11-x86-CtsShimPriv.apk
unter /system/priv-app/CtsShimPrivPrebuilt.apk

Android 10 Android10-Release
unter /system/apex/com.android.apex.cts.shim.apex
android10-arm-CtsShim.apk
unter /system/app/CtsShimPrebuilt.apk

android10-arm-CtsShimPriv.apk
unter /system/priv-app/CtsShimPrivPrebuilt.apk

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

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

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

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

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

x86-CtsShimPriv.apk
unter /system/priv-app/CtsShimPrivPrebuilt.apk

Um die Tests zu bestehen, laden Sie die Apps vorab in die entsprechenden Verzeichnisse auf dem Systemabbild, ohne die Apps neu zu signieren.

Beispiel-Applet

Android 9 führte Open Mobile APIs ein. 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 in das eingebettete sichere Element (eSE) des DUT oder in die vom DUT verwendete 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 Zugriffssteuerungs-Testfällen finden Sie unter CTS-Test für Secure Element .

Lagerungssansprüche

Für die CTS-Medienbelastungstests 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 Lizenz Creative Commons Attribution 3.0 urheberrechtlich geschützt ist .

Der erforderliche Speicherplatz hängt von der maximalen Videowiedergabeauflösung ab, die vom Gerät unterstützt wird. Siehe Abschnitt 5 im Dokument Android-Kompatibilitätsdefinition für die Plattformversion der erforderlichen Auflösungen.

Hier sind die Speicheranforderungen nach maximaler Videowiedergabeauflösung:

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

Bildschirm und Speicher

  • Jedes Gerät, das keinen eingebetteten Bildschirm hat, muss mit einem Bildschirm verbunden werden.
  • Wenn das Gerät über einen Speicherkartensteckplatz verfügt, stecken Sie eine leere SD-Karte ein. Verwenden Sie eine SD-Karte, die UHS-Bus (Ultra High Speed) mit SDHC- oder SDXC-Kapazität unterstützt, oder eine 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 werden. Bei 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 Telekom-dedizierten Datei (DF Telecom ) erfüllen diese Anforderung.

Entwickler UICC

Um CTS-Betreiber-API-Tests auszuführen, muss das Gerät eine SIM-Karte mit CTS-Betreiberprivilegien verwenden, die die unter Vorbereiten der UICC angegebenen Anforderungen erfüllt.

Konfiguration von Android-Geräten

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

  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 Builds verwendet wird).

  4. Aktivieren Sie die Standorteinstellung, wenn auf dem Gerät eine GPS- oder WLAN-/Mobilfunkfunktion vorhanden ist: 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 Kennwort festgelegt 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. Stellen Sie das Gerät nur unter Android 5.x und 4.4.x 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 ein Mock-Modem zulässt: Einstellungen > Entwickleroptionen > Mock-Modem zulassen > Ein .

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

  14. Verbinden Sie den Desktop-Computer, der zum Testen des Geräts verwendet wird, mit einem USB-Kabel.

  15. Legen Sie vor dem Ausführen von CTS Roboto2 als Sans-Serif-Schriftart fest, indem Sie eine für den Benutzer zugängliche Affordance-Einstellung (nicht ausgeblendet) verwenden.

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) ein, um die Barrierefreiheitstests auszuführen, mit: abd install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      Aktivieren Sie auf dem Gerät die Delegierung: Einstellungen > Barrierefreiheit > Barrierefreiheit > Delegieren des Barrierefreiheitsdienstes .

    • CTS-Versionen 6.x oder niedriger: Auf Geräten, die android.software.device_admin deklarieren, richten Sie Ihr Gerät so ein, dass der Geräteverwaltungstest ausgeführt wird, indem Sie Folgendes verwenden: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      Aktivieren Sie unter Einstellungen > Sicherheit > Geräteadministratoren auswählen die beiden 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 dem 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 bis zu einer Auflösung von 720 x 480 zu kopieren, führen Sie Folgendes aus:

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

        ./copy_media.sh all
        
      • Wenn unter adb mehrere Geräte vorhanden sind, fügen Sie die serielle Option ( -s ) eines bestimmten Geräts am Ende 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