このページでは、CTS 検証ツール(CTS-V)のホスト側 Android 16 QPR2 テストと Android 17 テストをセットアップして実行する手順について説明します。ホスト側テストには、マルチデバイス テスト(Android 17 より前に導入)とインタラクティブ テスト(Android 17 で新登場)の 2 種類があります。
- マルチデバイス テストは、完全に自動化されたテストです。
- インタラクティブ テストは半自動テストであり、テスト対象デバイス(DUT)で手動の手順をいくつか実行する必要があります。
新しいインタラクティブ テストに加えて、手動の距離測定精度テストとテレコム テストがホスト側のマルチデバイス テストになり、Wi-Fi 接続テストが必須になりました。
ホスト側のテストをセットアップする
ホスト側のテストをセットアップする手順は次のとおりです(マルチデバイス テストには追加のセットアップが必要です)。
デスクトップ マシンが CTS のオペレーティング システム要件を満たしていることを確認します。
デスクトップ ソフトウェアをインストールするの手順 2 と 5 に沿って、adb、AAPT2、Python をインストールし、デスクトップに正しくインストールされていることを確認します。
デスクトップの Python バージョンは 3.11 以降である必要があります。Python のバージョンを確認するには、
python3 --versionを実行します。バージョンが 3.11 より前の場合は、最新の公式 Python リリースをインストールします。詳しくは、python.orgのダウンロード セクションをご覧ください。一部のテストでは、ホストに Python
venvモジュールが必要です。Debian システムと Ubuntu システムでは、このモジュールはデフォルトでインストールされない場合があります。デスクトップの Python バージョンにvenvモジュールがあるかどうかを確認するには、python3 -m venv venvを実行します。このコマンドが失敗すると、エラー メッセージが表示されます。プロンプトに沿ってpython3.x-venvパッケージをインストールします。
ホスト側のインタラクティブ テストのみを実行する場合は、ホスト側テストを実行するに進みます。ただし、マルチデバイス テストを実行する場合は、ホスト側のマルチデバイス テストをセットアップするに進んでください。
ホスト側のマルチデバイス テストをセットアップする
ホスト側のマルチデバイス テストをセットアップする手順は次のとおりです。
デスクトップ マシンが CTS のオペレーティング システム要件を満たしていることを確認します。
デスクトップ ソフトウェアをインストールするの手順 2 と 5 に沿って、adb、AAPT2、Python をインストールし、デスクトップに正しくインストールされていることを確認します。
デスクトップの Python バージョンは 3.11 以降である必要があります。Python のバージョンを確認するには、
python3 --versionを実行します。バージョンが 3.11 より前の場合は、最新の公式 Python リリースをインストールします。詳しくは、python.orgのダウンロード セクションをご覧ください。- 一部のテストでは、ホストに Python
venvモジュールが必要です。Debian システムと Ubuntu システムでは、このモジュールはデフォルトでインストールされない場合があります。デスクトップの Python バージョンにvenvモジュールがあるかどうかを確認するには、python3 -m venv venvを実行します。このコマンドが失敗すると、エラー メッセージが表示されます。プロンプトに沿ってpython3.x-venvパッケージをインストールします。
- 一部のテストでは、ホストに Python
2 台の DUT を用意し、それぞれに CTS-V をセットアップします。
- DUT のセットアップ方法については、DUT をセットアップするを参照してください。
- CTS-V のセットアップの詳細については、セットアップをご覧ください。
テストの種類に応じて、以下のセットアップ セクションに移動します。
- NFC テストを行う場合は、NFC テストをセットアップするを参照してください。
- Wi-Fi AP 接続テストについては、Wi-Fi AP 接続テストをセットアップするをご覧ください。
- 測距精度テストについては、測距精度テストをセットアップするをご覧ください。
- CDM モジュールをテストするには、2 台のデバイスによる標準テストをセットアップする、CDM テストをセットアップするを参照してください。
テストがこのリストにない場合は、2 台のデバイスによる標準テストをセットアップするに進みます。
NFC テストをセットアップする
NFC テストでは、DUT 1 台と PN532 NFC チップ 1 個を使用します。
NFC テストをセットアップするには:
- PN532 NFC チップを購入します。All-In-One PN532 をおすすめします。
- DUT で設定アプリに移動します。
- NFC を有効にする。
NFC チップを配置する。
スマートフォンの場合、DUT の NFC リーダーを図 1 に示すように配置します。

図 1. NFC チップの位置
その他のデバイスの場合は、チップをデバイスの NFC アンテナの隣に配置します。
USB ケーブルを使用して、PN532 NFC チップをテスト用ワーク ステーションに接続します。
Wi-Fi AP 接続テストをセットアップする
Wi-Fi アクセス ポイント(AP)接続テスト(CtsWifiConnectionTests)は、DUT と AP 間の接続をテストします。これらのテストは、次の 2 つの方法で設定できます。
- オプション 1: CTS-V 用にセットアップした既存の Wi-Fi ネットワークを使用する。
- オプション 2: プログラマブル アクセス ポイント(AP)をセットアップする。
Android 17 では、オプション 2 を強くおすすめしますが、必須ではありません。次の 2 つのセクションで各オプションについて説明します。
オプション 1: CTS-V 用に設定した既存の Wi-Fi ネットワークを使用する
オプション 1 では、Wi-Fi ネットワークの通信可能エリア内に 1 台の Android DUT が必要です。DUT がシールド ボックスに入っていて Wi-Fi ネットワークに接続できない場合は、シールド ボックスから取り出します。
オプション 2: プログラマブル AP を設定する
Wi-Fi 接続テスト用にプログラム可能な AP をセットアップするには:
Banana Pi R3 AP を購入してセットアップします。Banana Pi R3 AP の購入と設定については、Banana Pi BPI-R3 AP を設定するをご覧ください。
(省略可)シールド ボックスがない場合は、JTP-SR101 シールド ボックスをおすすめします。以下の情報を使用してこのボックスを購入します。
Dong Guan Zheng Sheng Electronics Technology Co., LTD
Bohui Industrial Park, Panlong Road, Liaobu Town, Dongguan City, Guangdong Province, China
連絡先: Forest Pan
メール: forest.pan@jtpmak.cn
電話(中国): +86 18676993556
DUT と AP をホストに接続し、RF シールド ボックスに配置します。DUT と AP は 10 cm 以上離す必要があります。図 2 は、この構成を示しています。

図 2. シールド ボックス内の DUT と AP。
SSH を使用して、ホストから AP にアクセスできることを確認します。
測距精度テストをセットアップする
測距精度テストをセットアップするには:
2 台の Android のテスト対象デバイス(DUT)を 1 m 離して、同じ高さに配置します。このとき、デバイスの背面が互いに向き合うようにします。図 3 は、この向きを示しています。

図 3. デバイスの向き。
USB ケーブルで両方のデバイスをデスクトップ マシンに接続します。
2 台のデバイスによる標準テストをセットアップする
デバイス 2 台のデフォルトのセットアップ方法:
2 台の Android のテスト対象デバイス(DUT)を約 20 cm 離して配置します。
強く推奨: 両方のデバイスをシールド ボックスに入れます。シールド ボックスを使用すると、テストの安定性が向上し、テストの失敗をデバッグしやすくなります。
テレコム テストの場合、各 DUT に SIM カードとモバイル信号が必要です。DUT がシールドボックス内にある場合、モバイル信号をボックスに結合する必要があります。それ以外の場合は、デバイスをシールド ボックスから取り出します。
(省略可)Wi-Fi デバッグを行う場合は、OTA スニファをセットアップします。
CDM テストをセットアップする
test_permissions_sync テストケースは、テストが実行されるデバイスのビルドタイプに応じて動作が異なります。OEM がデバッグ可能(userdebug または eng)ビルドとデバッグ不可(user)ビルドの両方をテストし、両方のテストに合格することが重要です。
免除
権限同期 API の実装に関する CDD 項目では、安全なチャネルを介してデバイス間でデータを正常に転送できることのみが求められます。セキュア チャネルの実装は CDD 準拠の要件ではないため、このテストはデバッグ不可(ユーザー)ビルドではスキップできます。ただし、CDM 権限同期機能のサポートをオプトアウトする場合に限ります。
テストは、デバッグ可能なビルドで例外なく合格する必要があります。
デバッグ不可のビルドでテストするための前提条件
免除されていない場合は、次の前提条件を満たしていることを確認してください。
セキュア チャネルは、AVF(AttestationVerificationFramework)を使用してハードウェアの信頼性を検証します。両当事者によって生成された証明書には、システムに不正な変更が行われていないことを確認するための、当事者に関するいくつかの情報が含まれています。AVF は、検証プロセス中に次の状態を確認します。
デバイスがインターネットにアクセスできる
デバイスが確認付きブートを使用しており、ビルドがリリースキー(dev-key ではない)で署名されている
デバイスのブートローダーがロックされている。詳細については、ブートローダーのロックをご覧ください。
OS、キーブート、キーベンダーのパッチレベルが 12 か月以内である。1 年以上前のビルドは使用しないでください。
デバイス証明書は、ベンダーが承認したルート証明書のいずれかによって裏付けられています。
vendor_required_attestation_certificates.xmlリソース オーバーレイで信頼できるルート証明書を指定します。
ホストサイド テストを実行する
NFC テストなど、一部のマルチデバイス テストでは追加のセットアップが必要です。追加のセットアップが必要なテストの場合、各テストは個別に実行されます。追加の設定を必要としないテストの場合は、テストをグループで実行できます。
テスト ワークステーションで、CTS-V zip パッケージを解凍したディレクトリから
cts-v-hostコンソールを起動します。./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefedDUT の CTS-V アプリから [ホスト側テスト] をクリックします。図 4 は、CTS-V アプリのホスト側テストを示しています。
図 4. CTS-V アプリでのホスト側テスト。
ホスト側のマルチデバイス テスト モジュールのリストが表示されます。
CTS-V ホスト コンソールで、次のコマンドを使用して、標準の 2 デバイス設定を使用するマルチデバイス テストを実行します。
run cts-v-host-multidevice-default結果は、DUT の CTS-V アプリの各テスト モジュールの下に表示されます。緑色でマークされたテストは合格、赤色でマークされたテストは不合格です。
図 5 に、CtsCompanionDeviceManager テストの結果の例を示します。
図 5. CTS-V アプリでのホスト側マルチデバイス テストの結果。
CTS-V ホスト コンソールで、次のコマンドを使用してインタラクティブ テストを実行します。
run cts-v-host-interactive結果は、DUT の CTS-V アプリの各テスト モジュールの下に表示されます。緑色でマークされたテストは合格、赤色でマークされたテストは不合格です。
追加の設定が必要なテストごとに、次のコマンドを使用してテストを個別に実行します。
run cts-v-host -m test_module_nameたとえば、NFC テストを実行するには、次のコマンドを使用します。
run cts-v-host -m CtsNfcHceMultiDeviceTestCases結果は、DUT の CTS-V アプリの各テスト モジュールの下に表示されます。緑色でマークされたテストは合格、赤色でマークされたテストは不合格です。
Wi-Fi AP 接続テストを実行する
Wi-Fi AP 接続テストは、次の 2 つの方法で実行できます。
- オプション 1: CTS-V 用にセットアップした既存の Wi-Fi ネットワークを使用する。
- オプション 2: プログラマブル AP を設定する。
オプション 1: CTS-V 用に設定した既存の Wi-Fi ネットワークを使用する
既存の Wi-Fi ネットワークで Wi-Fi AP 接続テストを実行するには:
テストベッド構成ファイル(
WifiConnectionTestbed.yaml)を編集します。このファイルは、CTS 検証ツールが解凍されたディレクトリにあります。次に例を示します。./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlwifi_ssidフィールドとwifi_passwordフィールドの値を、Wi-Fi ネットワークの SSID とパスワードに変更します。次の例は、これらの設定の場所を示しています。TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' TestParams: use_programmable_ap: False wifi_ssid: WIFI-SSID wifi_password: WIFI-PASSWORDCTS-V ホスト コンソールで、次のコマンドを実行します。
run cts-v-host -m CtsWifiConnectionTests
オプション 2: プログラマブル AP で実行する
プログラム可能な AP で Wi-Fi AP 接続テストを実行するには:
テストベッド構成ファイル(
WifiConnectionTestbed.yaml)を編集します。このファイルは、CTS 検証ツールが解凍されたディレクトリにあります。次に例を示します。./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlローカル SSH 設定に基づいて、
hostnameの値を AP の IP アドレスに変更します。IP アドレスを特定するには、AP の IP アドレスを確認するをご覧ください。次の例は、hostname設定の場所を示しています。TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' # Specify settings for the AP. OpenWrtDevice: - hostname: AP-IP skip_init_reboot: True TestParams: use_programmable_ap: TrueCTS-V ホスト コンソールで、次のコマンドを実行します。
run cts-v-host -m CtsWifiConnectionTests
USB ホスト側テストを実行する
Android 17 には、Wi-Fi 経由で adb を実行する必要がある USB CTS-V ホスト側テストが含まれています。
一部の USB テストでは、CTS-V ホストを使用して、通常の CTS-V アプリではアクセスできない権限を持つ SystemAPI にアクセスする必要があります。これらのテストはアンテザリングであり、Wi-Fi 経由で adb を使用する必要があります。
DUT が UsbPort.java でポート パートナーの BC 1.2 タイプまたは USB 電源プロファイルのレポートをサポートしている場合は、次の Type-C アクセサリーが必要です。
- USB Type-C Power Delivery(PD)充電器
- USB バッテリー充電 1.2(BC 1.2)標準ダウンストリーム ポート(SDP)。これらのポートは、DUT に 500 mA または 900 mA を供給することに限定されており、通常は外部ハブの USB ポートにあります。
- USB BC 1.2 充電ダウンストリーム ポート(CDP)。これらのポートは、DUT とデータに 1.5 A の電流を供給できます。ノートパソコンやパソコンの Type-C ポートは CDP である可能性があります。
- USB BC 1.2 専用充電ポート(DCP)。これらのポートは、データなしで 1.5 A の電流を DUT に供給できます。このリストの USB Type-C PD 充電器は DCP である可能性があります。
Wi-Fi 経由で
adbを使用して DUT を接続します。セットアップについて詳しくは、Wi-Fi 経由でデバイスに接続するをご覧ください。すべての USB 接続からデバイスを物理的に取り外します。テストコマンドの実行時にデバイスが USB ホストまたはアクセサリーに接続されている場合、テストは失敗します。
次のテストコマンドを実行します。
run cts-v-host -m CtsUsbTypecTestCases
テストが完了すると、次の図に示すように、CTS-V アプリの [ホスト側テスト] に結果が表示されます。
図 6. CTS-V アプリでのホスト側 USB テスト。
図 7. ホスト側の USB CTS-V アプリの CtsUsbTypecTestCases スイート。
マルチデバイス テストのトラブルシューティング
このセクションでは、一般的な問題のトラブルシューティングについて説明します。
CtsTelecomTest 中に電話番号を取得できない
エラー メッセージ Failed to get phone number for <serial> が表示された場合は、次の手順を行います。
各 DUT に SIM カードが取り付けられていることを確認します。
エラーが解消されない場合は、SIM カードが自動番号取得に対応していない可能性があります。その場合は、コマンドで電話番号を明示的に指定する必要があります。
たとえば、DUT 1(シリアル
17011FDEE0002N、電話番号555-0000)と DUT 2(シリアルR3CN90YNAR、電話番号555-1111)の場合、run cts-v-hostコマンドに次の引数を追加します。--module-arg CtsTelecomTest:dut_serial:17011FDEE0002N \ --module-arg CtsTelecomTest:dut_phone_number:555-0000 \ --module-arg CtsTelecomTest:ref_phone_number:555-1111
CtsMultiDeviceGenericRangingAccuracyTests の実行中にサーバーから応答がない
次のエラー メッセージが表示された場合、特定のデバイスで OEM 固有のバックグラウンド プロセス管理によってテストアプリがフリーズまたは強制終了される可能性があります。
mobly.snippet.errors.ProtocolError: <AndroidDevice|Initiator> No response from server. Check the device logcat for crashes.
この問題を解決するには、バックグラウンド制限を無効にするか、次のパッケージを許可リストに登録します。
| パッケージ | 表示名 |
|---|---|
com.google.snippet.uwb |
CtsUwbSnippetApp |
com.google.snippet.ranging |
CtsRangingSnippetApp |
com.google.snippet.bluetooth |
CtsBluetoothMultiDeviceSnippetApp |
com.google.android.mobly.snippet.bundled |
androidx.multidex.MultDexApplication |
NFC テスト中に GetFirmwareVersion に応答がない問題を修正
マルチデバイス テストの実行中にメッセージ「verify_firmware_version RuntimeError: No response
for GetFirmwareVersion」が表示される場合、PN532 NFC ボードにアクセスできていません。
この問題を解決するには、ホスト上の PN532 NFC ボードが使用するシリアルパス(例: dev/ttyUSB1)を特定し、コンソールで --module-arg 引数を使用して手動で指定してください。
run cts-v-host -m CtsNfcHceMultiDeviceTestCases --module-arg CtsNfcHceMultiDeviceTestCases:pn532_serial_path:/dev/ttyUSB1
NFC テスト中のトランザクション失敗のエラー メッセージを解決する
すべての NFC テストケースでメッセージ「Transaction failed, check device logs for more
information.」が表示される場合は、DUT の NFC チップが PN532 を検出できていない可能性があります。
ホストに複数のデバイスを接続していて、PN532 を一部のデバイスにのみ配置している場合は、間違った DUT が選択されている可能性があります。詳しくは、NFC テストをセットアップするを参照してください。
この問題を解決するには、次のいずれかの方法をお試しください。
ホスト側のテストコマンドで、
-sフラグを使用して正しい DUT のシリアルを設定する。DUT 以外のすべてのデバイスについて、ホストとの接続を解除する。
CDM テストケース test_permissions_sync は無視されます
デバッグ不可のデバイスでテストを実行している場合は、免除されているかどうかを確認します。それ以外の場合は、両方のデバイスが前提条件を満たしていることを確認します。