Auf dieser Seite finden Sie eine Anleitung zum Einrichten und Ausführen von CTS-V-Tests (CTS Verifier) für Android 16 QPR2 und Android 17 auf Hostseite. Es gibt zwei Arten von hostseitigen Tests: Tests mit mehreren Geräten (vor Android 17 eingeführt) und interaktive Tests (neu in Android 17):
- Tests auf mehreren Geräten sind vollständig automatisierte Tests.
- Interaktive Tests sind halbautomatisierte Tests, bei denen du einige manuelle Schritte auf dem zu testenden Gerät ausführen musst.
Zusätzlich zu den neuen interaktiven Tests sind die Tests zur Genauigkeit der manuellen Entfernungsmessung und die Telekommunikationstests jetzt hostseitige Tests für mehrere Geräte. Außerdem sind WLAN-Verbindungstests erforderlich.
Hostseitige Tests einrichten
So richten Sie hostseitige Tests ein (für Tests mit mehreren Geräten ist eine zusätzliche Einrichtung erforderlich):
Prüfe, ob dein Desktop-Computer die Betriebssystemanforderungen für die CTS erfüllt.
Folgen Sie den Schritten 2 und 5 unter Desktopsoftware installieren, um adb, AAPT2 und Python auf Ihrem Desktop zu installieren und zu prüfen, ob sie korrekt installiert sind.
Die Python-Version für Computer sollte 3.11 oder höher sein. Führen Sie
python3 --versionaus, um die Python-Version zu ermitteln. Wenn die Version niedriger als 3.11 ist, installieren Sie die neueste offizielle Python-Version. Weitere Informationen finden Sie im Abschnitt „Downloads“ vonpython.org.Für einige Tests muss auf dem Host das Python-Modul
venvinstalliert sein. Auf Debian- und Ubuntu-Systemen ist dieses Modul möglicherweise nicht standardmäßig installiert. Führen Siepython3 -m venv venvaus, um festzustellen, ob die Desktop-Python-Version das Modulvenventhält. Wenn dieser Befehl fehlschlägt, wird eine Fehlermeldung angezeigt. Folgen Sie der Aufforderung, um das Paketpython3.x-venvzu installieren.
Wenn Sie nur die interaktiven Tests auf Hostseite ausführen, fahren Sie mit Tests auf Hostseite ausführen fort. Wenn Sie jedoch Tests auf mehreren Geräten ausführen möchten, fahren Sie mit Hostseitige Tests auf mehreren Geräten einrichten fort.
Hostseitige Tests für mehrere Geräte einrichten
So richten Sie hostseitige Tests mit mehreren Geräten ein:
Prüfe, ob dein Computer die Betriebssystemanforderungen für die CTS erfüllt.
Folgen Sie den Schritten 2 und 5 unter Desktopsoftware installieren, um adb, AAPT2 und Python auf Ihrem Desktop zu installieren und zu prüfen, ob sie korrekt installiert sind.
Die Python-Version für Computer sollte 3.11 oder höher sein. Führen Sie
python3 --versionaus, um die Python-Version zu ermitteln. Wenn die Version niedriger als 3.11 ist, installieren Sie die neueste offizielle Python-Version. Weitere Informationen finden Sie im Abschnitt „Downloads“ vonpython.org.- Für einige Tests muss auf dem Host das Python-Modul
venvinstalliert sein. Auf Debian- und Ubuntu-Systemen ist dieses Modul möglicherweise nicht standardmäßig installiert. Führen Siepython3 -m venv venvaus, um festzustellen, ob die Desktop-Python-Version das Modulvenventhält. Wenn dieser Befehl fehlschlägt, wird eine Fehlermeldung angezeigt. Folgen Sie der Aufforderung, um das Paketpython3.x-venvzu installieren.
- Für einige Tests muss auf dem Host das Python-Modul
Bereite zwei passende DUTs vor, auf denen jeweils CTS-V eingerichtet ist.
- Weitere Informationen zum Einrichten eines DUT finden Sie unter DUT einrichten.
- Weitere Informationen zum Einrichten von CTS-V findest du unter Einrichtung.
Rufen Sie den Abschnitt zur Einrichtung für Ihren Testtyp auf:
- Informationen zu NFC-Tests finden Sie unter NFC-Tests einrichten.
- Informationen zu Tests für WLAN-AP-Verbindungen finden Sie unter Tests für WLAN-AP-Verbindungen einrichten.
- Informationen zu den Tests der Entfernungsgenauigkeit findest du unter Tests der Entfernungsgenauigkeit einrichten.
- Wenn du das CDM-Modul testen möchtest, rufe Standardtests für zwei Geräte einrichten und dann CDM-Tests einrichten auf.
Wenn dein Test nicht in dieser Liste aufgeführt ist, fahre mit Standardtests mit zwei Geräten einrichten fort.
NFC-Tests einrichten
Für NFC-Tests werden ein DUT und ein PN532-NFC-Chip verwendet.
So richten Sie NFC-Tests ein:
- Kaufen Sie einen PN532-NFC-Chip. Wir empfehlen das All-In-One PN532.
- Öffne auf dem zu testenden Gerät die Einstellungen.
- Aktivieren Sie NFC.
Positioniere den NFC-Chip:
Positioniere das NFC-Lesegerät des zu testenden Smartphones wie in Abbildung 1 gezeigt:

Abbildung 1. Position des NFC-Chips.
Bei anderen Gerätetypen positionieren Sie den Chip neben der NFC-Antenne des Geräts.
Schließe den PN532-NFC-Chip über ein USB-Kabel an deine Test-Workstation an.
Verbindungstests für WLAN-Zugangspunkte einrichten
Mit den Tests für die WLAN-Zugangspunktverbindung (CtsWifiConnectionTests) wird die Verbindung zwischen einem DUT und einem Zugangspunkt getestet. Sie können diese Tests auf die folgenden zwei Arten einrichten:
- Option 1: Verwende ein vorhandenes WLAN, das du für CTS-V eingerichtet hast.
- Option 2: Programmierbaren Zugangspunkt (AP) einrichten
Für Android 17 empfehlen wir dringend Option 2, sie ist jedoch nicht erforderlich. In den folgenden beiden Abschnitten werden die einzelnen Optionen erläutert.
Option 1: Vorhandenes WLAN verwenden, das Sie für CTS-V eingerichtet haben
Für Option 1 ist ein Android-Prüfling innerhalb des WLAN-Abdeckungsbereichs erforderlich. Wenn sich das zu testende Gerät in einer Shield Box befindet und keine Verbindung zum WLAN herstellen kann, nimm es aus der Shield Box heraus.
Option 2: Programmierbaren AP einrichten
So richten Sie einen programmierbaren AP für die WLAN-Verbindungstests ein:
Kaufen Sie den Banana Pi R3 AP und richten Sie ihn ein. Informationen zum Kauf und zur Einrichtung des Banana Pi R3 AP finden Sie unter Banana Pi BPI-R3 AP einrichten.
(Optional) Wenn Sie keine Shield Box haben, empfehlen wir die Shield Box JTP-SR101. Kaufen Sie diese Box mit den folgenden Informationen:
Dong Guan Zheng Sheng Electronics Technology Co., LTD
Bohui Industrial Park, Panlong Road, Liaobu Town, Dongguan City, Guangdong Province, China
Kontakt: Forest Pan
E‑Mail: forest.pan@jtpmak.cn
Telefon (China): +86 18676993556
Verbinde das DUT und den AP mit dem Host und platziere sie in einer HF-Abschirmbox. Das zu testende Gerät und der AP sollten mindestens 10 cm voneinander entfernt sein. Abbildung 2 zeigt diese Konfiguration:

Abbildung 2: DUT und AP in Shield Box.
Prüfen Sie mit SSH, ob der Zugriffspunkt vom Host aus erreichbar ist.
Tests zur Genauigkeit der Entfernungsmessung einrichten
So richten Sie Tests zur Genauigkeit der Entfernungsmessung ein:
Platziere zwei übereinstimmende Android-Prüflinge in einem Abstand von 1 Meter, auf derselben Höhe, mit direkter Sichtverbindung und mit der Rückseite zueinander. Abbildung 3 zeigt diese Ausrichtung:

Abbildung 3: Geräteausrichtung.
Verbinde beide Geräte über USB-Kabel mit dem Desktop-Computer.
Standardtests mit zwei Geräten einrichten
Für die Standardeinrichtung mit zwei Geräten:
Platziere zwei identische Android-Prüflinge etwa 20 cm voneinander entfernt.
Sehr empfehlenswert: Platziere beide Geräte in einer Abschirmbox. Die Shield Box verbessert die Teststabilität und erleichtert die Fehlerbehebung bei Testfehlern.
Für Telekommunikationstests muss jedes zu testende Gerät eine SIM-Karte und ein Mobilfunksignal haben. Wenn sich die zu testenden Geräte in einer Shield-Box befinden, muss das Mobilfunksignal in die Box eingekoppelt werden. Andernfalls nimm die Geräte aus der Abschirmbox.
Optional: Richte einen OTA-Sniffer für das WLAN-Debugging ein.
CDM-Tests einrichten
Der Testfall test_permissions_sync verhält sich je nach Build-Typ der Geräte, auf denen der Test ausgeführt wird, unterschiedlich. Es ist wichtig, dass sowohl debuggbare (userdebug oder eng) als auch nicht debuggbare (user) Builds von OEMs getestet werden und dass die Tests für beide erfolgreich sind.
Befreiung
Die CDD-Klausel für die Implementierung der API zur Synchronisierung von Berechtigungen erfordert nur, dass Daten über einen sicheren Kanal zwischen Geräten übertragen werden können. Da die Implementierung des sicheren Kanals keine CDD-Compliance-Anforderung ist, kann dieser Test bei nicht debugfähigen (Nutzer-)Builds übersprungen werden, aber nur, wenn du die Funktion zur Synchronisierung von CDM-Berechtigungen nicht unterstützen möchtest.
Die Tests müssen auf debugfähigen Builds ausnahmslos erfolgreich sein.
Voraussetzungen für Tests mit nicht debugfähigen Builds
Wenn Sie nicht ausgenommen sind, prüfen Sie, ob Sie die folgenden Voraussetzungen erfüllen.
Der sichere Kanal verwendet AVF (AttestationVerificationFramework), um die Vertrauenswürdigkeit der Hardware zu prüfen. Die von beiden Parteien generierten Attestierungen enthalten mehrere Informationen über sie selbst, um zu bestätigen, dass keine unbefugte Änderung an ihrem System vorgenommen wurde. Das AVF prüft während des Überprüfungsprozesses die folgenden Status:
Das Gerät hat Zugriff auf das Internet.
Das Gerät verwendet den Bootmodus mit Verifikation und der Build ist mit einem Release-Schlüssel (nicht mit einem Dev-Schlüssel) signiert.
Der Bootloader des Geräts ist gesperrt. Weitere Informationen findest du unter Bootloader sperren.
Die Patch-Level für Betriebssystem, Key Boot und Key Vendor liegen innerhalb von 12 Monaten. Verwenden Sie keinen Build, der älter als ein Jahr ist.
Die Geräteattestierung wird durch eines der vom Anbieter genehmigten Root-Zertifikate unterstützt. Geben Sie Ihre vertrauenswürdigen Root-Zertifikate im Ressourcen-Overlay
vendor_required_attestation_certificates.xmlan.
Hostseitige Tests ausführen
Für einige Tests mit mehreren Geräten, z. B. NFC-Tests, ist eine zusätzliche Einrichtung erforderlich. Bei Tests, die eine zusätzliche Einrichtung erfordern, wird jeder Test separat ausgeführt. Tests, die keine zusätzliche Einrichtung erfordern, können Sie in einer Gruppe ausführen.
Starten Sie auf Ihrer Test-Workstation die
cts-v-host-Konsole aus dem Verzeichnis, in dem das CTS-V-ZIP-Paket entpackt wurde:./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefedKlicke in der CTS-V App auf dem zu testenden Gerät auf Host-side Tests (Hostseitige Tests). Abbildung 4 zeigt die hostseitigen Tests in der CTS-V-App:
Abbildung 4: Hostseitige Tests in der CTS-V-App.
Eine Liste der hostseitigen Testmodule für mehrere Geräte wird angezeigt.
Verwende in der CTS-V-Hostkonsole den folgenden Befehl, um Tests mit mehreren Geräten auszuführen, die eine Standardeinrichtung mit zwei Geräten verwenden:
run cts-v-host-multidevice-defaultDie Ergebnisse werden unter jedem Testmodul in der CTS-V-App auf dem DUT angezeigt. Grün markierte Tests wurden bestanden, rot markierte Tests sind fehlgeschlagen.
Abbildung 5 zeigt Beispielergebnisse für die CtsCompanionDeviceManager-Tests:
Abbildung 5: Hostseitige Testergebnisse für mehrere Geräte in der CTS-V-App.
Verwende in der CTS-V-Hostkonsole den folgenden Befehl, um die interaktiven Tests auszuführen:
run cts-v-host-interactiveDie Ergebnisse werden unter jedem Testmodul in der CTS-V-App auf dem DUT angezeigt. Grün markierte Tests wurden bestanden, rot markierte Tests sind fehlgeschlagen.
Führen Sie für jeden Test, der eine zusätzliche Einrichtung erfordert, den Test separat mit dem folgenden Befehl aus:
run cts-v-host -m test_module_nameVerwenden Sie beispielsweise diesen Befehl, um die NFC-Tests auszuführen:
run cts-v-host -m CtsNfcHceMultiDeviceTestCasesDie Ergebnisse werden unter jedem Testmodul in der CTS-V-App auf dem DUT angezeigt. Grün markierte Tests wurden bestanden, rot markierte Tests sind fehlgeschlagen.
WLAN-AP-Verbindungstests ausführen
Sie können die Tests für die WLAN-AP-Verbindung auf zwei Arten ausführen:
- Option 1: Verwende ein vorhandenes WLAN, das du für CTS-V eingerichtet hast.
- Option 2: Programmierbaren AP einrichten
Option 1: Vorhandenes WLAN verwenden, das Sie für CTS-V eingerichtet haben
So führen Sie die Tests für die WLAN-AP-Verbindung in einem vorhandenen WLAN aus:
Bearbeite die Testbed-Konfigurationsdatei (
WifiConnectionTestbed.yaml). Diese Datei befindet sich in dem Verzeichnis, in dem CTS-Verifier entpackt wurde. Beispiel:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlÄndern Sie den Wert der Felder
wifi_ssidundwifi_passwordin die SSID und das Passwort des WLANs. Das folgende Beispiel zeigt, wo sich diese Einstellungen befinden:TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' TestParams: use_programmable_ap: False wifi_ssid: WIFI-SSID wifi_password: WIFI-PASSWORDFühre in der CTS-V-Hostkonsole den folgenden Befehl aus:
run cts-v-host -m CtsWifiConnectionTests
Option 2: Mit einem programmierbaren AP ausführen
So führen Sie die WLAN-AP-Verbindungstests auf einem programmierbaren AP aus:
Bearbeite die Testbed-Konfigurationsdatei (
WifiConnectionTestbed.yaml). Diese Datei befindet sich in dem Verzeichnis, in dem CTS-Verifier entpackt wurde. Beispiel:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlÄndern Sie den Wert von
hostnamein die IP-Adresse des AP, basierend auf Ihren lokalen SSH-Einstellungen. Informationen zum Ermitteln der IP-Adresse finden Sie unter IP-Adresse des AP ermitteln. Das folgende Beispiel zeigt die Position der Einstellunghostname:TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' # Specify settings for the AP. OpenWrtDevice: - hostname: AP-IP skip_init_reboot: True TestParams: use_programmable_ap: TrueFühre in der CTS-V-Hostkonsole den folgenden Befehl aus:
run cts-v-host -m CtsWifiConnectionTests
USB-Hostseitige Tests ausführen
Android 17 enthält hostseitige USB-CTS-V-Tests, für die adb über WLAN erforderlich ist.
Für einige USB-Tests ist der CTS-V-Host erforderlich, um auf System-APIs zuzugreifen, die Berechtigungen haben, auf die die normale CTS-V-App nicht zugreifen kann. Diese Tests sind nicht kabelgebunden und erfordern die Verwendung von adb über WLAN.
Das folgende Typ-C-Zubehör ist erforderlich, wenn das zu testende Gerät die Meldung des BC 1.2-Typs des Portpartners oder von USB-Stromprofilen in UsbPort.java unterstützt:
- Ein USB Typ‑C-Ladegerät mit Power Delivery (PD)
- Ein Standard-Downstream-Port (SDP) gemäß USB-Batterieladespezifikation 1.2 (BC 1.2). Diese Ports sind darauf beschränkt, 500 mA oder 900 mA an das DUT zu liefern, und sind häufig an den USB-Anschlüssen externer Hubs zu finden.
- Ein USB-BC-1.2-CDP-Anschluss (Charging Downstream Port). Diese Ports können das DUT mit 1,5 A Strom und Daten versorgen. Ein Typ-C-Anschluss an einem Laptop oder Computer ist wahrscheinlich ein CDP.
- Ein USB-BC-1.2-DCP (Dedicated Charging Port). Diese Ports können dem DUT 1,5 A Strom ohne Daten liefern. Das USB Typ‑C-PD-Ladegerät in dieser Liste ist wahrscheinlich ein DCP.
Verbinde das zu testende Gerät über WLAN mit
adb. Weitere Informationen zur Einrichtung finden Sie unter Über WLAN mit einem Gerät verbinden.Trennen Sie das Gerät von allen USB-Verbindungen. Der Test schlägt fehl, wenn das Gerät beim Ausführen des Testbefehls mit einem USB-Host oder ‑Zubehör verbunden ist.
Führen Sie den folgenden Testbefehl aus:
run cts-v-host -m CtsUsbTypecTestCases
Nach den Tests werden die Ergebnisse in der CTS-V-App unter Host-side tests (Hostseitige Tests) angezeigt, wie in den folgenden Abbildungen dargestellt:
Abbildung 6. Hostseitige USB-Tests in der CTS-V-App.
Abbildung 7. CtsUsbTypecTestCases-Suite in der hostseitigen USB-CTS-V-App.
Fehlerbehebung bei Tests auf mehreren Geräten
In diesem Abschnitt finden Sie Informationen zur Behebung häufiger Probleme.
Fehler beim Abrufen der Telefonnummer während des CtsTelecomTest
Wenn Sie die Fehlermeldung Failed to get phone number for <serial> erhalten, gehen Sie so vor:
Prüfe, ob in jedem DUT eine SIM-Karte installiert ist.
Wenn der Fehler weiterhin auftritt, unterstützen die SIM-Karten möglicherweise nicht den automatischen Abruf der Telefonnummern. In diesem Fall müssen Sie die Telefonnummern im Befehl explizit angeben.
Für DUT 1 (Seriennummer
17011FDEE0002N, Telefonnummer555-0000) und DUT 2 (SeriennummerR3CN90YNAR, Telefonnummer555-1111) hängen Sie beispielsweise die folgenden Argumente an den Befehlrun cts-v-hostan:--module-arg CtsTelecomTest:dut_serial:17011FDEE0002N \ --module-arg CtsTelecomTest:dut_phone_number:555-0000 \ --module-arg CtsTelecomTest:ref_phone_number:555-1111
Keine Antwort vom Server während CtsMultiDeviceGenericRangingAccuracyTests
Wenn Sie die folgende Fehlermeldung erhalten, kann die Test-App auf bestimmten Geräten durch die OEM-spezifische Verwaltung von Hintergrundprozessen eingefroren oder beendet werden:
mobly.snippet.errors.ProtocolError: <AndroidDevice|Initiator> No response from server. Check the device logcat for crashes.
Deaktivieren Sie die Hintergrundbeschränkungen oder setzen Sie die folgenden Pakete auf die Zulassungsliste, um dieses Problem zu beheben:
| Paket | Anzeigename |
|---|---|
com.google.snippet.uwb |
CtsUwbSnippetApp |
com.google.snippet.ranging |
CtsRangingSnippetApp |
com.google.snippet.bluetooth |
CtsBluetoothMultiDeviceSnippetApp |
com.google.android.mobly.snippet.bundled |
androidx.multidex.MultDexApplication |
Fehler behoben: Keine Antwort für GetFirmwareVersion während NFC-Tests
Wenn du beim Ausführen der Tests für mehrere Geräte die Meldung verify_firmware_version RuntimeError: No response
for GetFirmwareVersion erhältst, können die Tests nicht auf die PN532-NFC-Platine zugreifen.
Um dieses Problem zu beheben, ermitteln Sie den seriellen Pfad, der von der PN532-NFC-Platine auf Ihrem Host verwendet wird, z. B. dev/ttyUSB1, und geben Sie ihn dann manuell mit dem Argument --module-arg in der Konsole an:
run cts-v-host -m CtsNfcHceMultiDeviceTestCases --module-arg CtsNfcHceMultiDeviceTestCases:pn532_serial_path:/dev/ttyUSB1
Fehlermeldung „Transaktion fehlgeschlagen“ bei NFC-Tests beheben
Wenn du für alle NFC-Testfälle die Meldung Transaction failed, check device logs for more
information. erhältst, liegt das wahrscheinlich daran, dass der NFC-Chip des zu testenden Geräts den PN532 nicht erkennen kann.
Wenn mehrere Geräte mit dem Host verbunden sind und auf einigen davon kein PN532 platziert ist, wurde möglicherweise das falsche DUT ausgewählt. Weitere Informationen finden Sie unter NFC-Tests einrichten.
Führen Sie einen der folgenden Schritte aus, um das Problem zu beheben:
Legen Sie die Seriennummer des richtigen DUT in Ihrem hostseitigen Testbefehl mit dem Flag
-sfest.Trenne alle Geräte, die nicht das zu testende Gerät sind, vom Host.
CDM-Testlauf „test_permissions_sync“ wird ignoriert
Wenn der Test auf nicht debuggbaren Geräten ausgeführt wird, prüfen Sie, ob Sie ausgenommen sind. Prüfen Sie andernfalls, ob beide Geräte die Voraussetzungen erfüllen.