CTS 検証ツールのマルチデバイス テストを実行する

このページには、Android 16 QPR2 以降向けの Better Together CTS 検証ツール(CTS-V)テストの使用手順が記載されています。

ホスト側のマルチデバイス テストをセットアップする

このセクションでは、マルチデバイス テストをセットアップする方法について説明します。

  1. デスクトップ マシンが CTS のオペレーティング システム要件を満たしていることを確認します。
  2. デスクトップ ソフトウェアをインストールするの手順 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 パッケージをインストールします。
  3. 2 台のテスト対象デバイス(DUT)を用意し、それぞれに CTS-V をセットアップします。

  4. テストタイプのセットアップ セクションに移動します。

    テストがこのリストにない場合は、2 台のデバイスによる標準テストをセットアップするに進みます。

NFC テストをセットアップする

NFC テストでは、DUT 1 台と PN532 NFC チップ 1 個を使用します。

NFC テストをセットアップするには:

  1. PN532 NFC チップを購入します。All-In-One PN532 をおすすめします。
  2. DUT で設定アプリに移動します。

  3. NFC を有効にする。

  4. NFC チップを配置する。

    • スマートフォンの場合、DUT の NFC リーダーを図 1 に示すように配置します。

      NFC チップの位置

      図 1. NFC チップの位置

    • その他のデバイスの場合は、チップをデバイスの NFC アンテナの隣に配置します。

  5. USB ケーブルを使用して、PN532 NFC チップをテスト用ワーク ステーションに接続します。

省略可: Wi-Fi AP 接続テストを設定する

Wi-Fi アクセス ポイント(AP)接続テスト(CtsWifiConnectionTests)では、DUT と AP 間の接続をテストします。これらのテストを実行することを強くおすすめしますが、CTS-V Android 16 16 QPR2 では必須ではありません。

これらのテストには、DUT と OpenWrt Banana Pi R3 AP が必要です。

Wi-Fi AP 接続テストをセットアップするには:

  1. この表に記載されている Banana Pi R3 AP とアクセサリを購入します。

    アイテム 数量
    Banana Pi BPI-R3 ルーターボード(MediaTek MT7986 チップ設計、Wi-Fi 6、2G DDR RAM、8G eMMC フラッシュ搭載)に類似した BPi-R3 ボード 1
    BPi-R3 アルミケース(BPI-R3 Iron ケースと同様) 1
    BPi-R3 アルミ製ヒートシンク(冷却ファン)(ファン付き BPI-R3 アルミ製ヒートシンクと同様) 1
    ケーブル付きの 2 GHz と 5 GHz のアンテナ(BPI ショップの 5DB アンテナに類似) 8
    12 V/2 A DC 電源と同様の電源アダプター 1

    購入するには、Banana Pi BPI-R3 ページの Easy to buy セクションをご覧ください。

  2. アクセス ポイントを設定します。アクセス ポイントのセットアップについては、Banana Pi BPI-R3 AP をセットアップするをご覧ください。

  3. 省略可: シールド ボックスをお持ちでない場合は、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

  4. DUT と AP をホストに接続し、RF シールド ボックスに入れます。DUT と AP の間隔は 10 cm 以上にする必要があります。図 2 は、この構成を示しています。

    シールド ボックス内の DUT と AP

    図 2. シールド ボックス内の DUT と AP。

  5. SSH を使用して、ホストから AP にアクセスできることを確認します。

2 台のデバイスによる標準テストをセットアップする

デバイス 2 台のデフォルトのセットアップ方法:

  1. 2 台の Android のテスト対象デバイス(DUT)を約 20 cm 離して配置します。
  2. クリーンな環境をセットアップするために、デバイスを 2 台ともシールド ボックスに入れます。

  3. 省略可: Wi-Fi デバッグを行う場合は、OTA スニファをセットアップします。

CDM テストをセットアップする

test_permissions_sync() テストケースは、テストが実行されるデバイスのビルドタイプに応じて動作が異なります。デバッグ可能(userdebug または eng)ビルドとデバッグ不可(user)ビルドの両方を OEM がテストし、両方でテストに合格することが重要です。

免除

権限同期 API 実装の CDD 条項では、安全なチャネルを介してデバイス間でデータを正常に転送できることのみが求められています。セキュア チャネルの実装は CDD 準拠の要件ではないため、このテストはデバッグ不可(ユーザー)ビルドではスキップできますが、CDM 権限同期機能のサポートをオプトアウトする場合に限ります。

テストは、デバッグ可能なビルドで例外なく合格する必要があります。

デバッグ不可ビルドでテストするための前提条件

前の免除条項で免除されていない場合は、次の前提条件を満たしていることを確認してください。

セキュア チャネルは AVF(AttestationVerificationFramework)を使用してハードウェアの信頼性を検証します。両当事者によって生成された証明書には、システムで不正な変更が行われていないことを確認するための、当事者自身に関する情報がいくつか含まれています。AVF は、検証プロセス中に次の状態を確認します。

  • デバイスがインターネットにアクセスできる
  • デバイスが確認付きブートを使用しており、ビルドが開発キーではなくリリースキーで署名されている
  • デバイスのブートローダーがロックされている。詳細な手順については、ブートローダーをロックするをご覧ください。
  • OS、キーブート、キーベンダーのパッチレベルが 12 か月以内である。1 年以上前のビルドは使用しない
  • デバイスの証明書は、ベンダーが承認したルート証明書のいずれかによってバックアップされています。信頼できるルート証明書を vendor_required_attestation_certificates.xml リソース オーバーレイで指定します。

ホスト側のマルチデバイス テストを実行する(AOSP 16 以降)

CTS Verifier 16 ではホスト側でのマルチデバイス テストに対応するようになりました。こうしたテストは、デバイス側でテストを手動で操作する代わりに、ホスト側で自動スクリプトを使用して実行できます。各テストが完了するたびに、結果が自動的に DUT にアップロードされ、CTS 検証ツールアプリに表示されます。

このセクションでは、ホスト側でマルチデバイス テストを実行する方法について説明します。

マルチデバイス テストを実行する

マルチデバイス テストを行うには:

  1. テスト ワークステーションで、CTS-V zip パッケージを解凍したディレクトリから cts-v-host コンソールを起動します。

    ./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefed
    
  2. DUT の CTS 検証ツールアプリから [Host-side Tests] をクリックします。図 3 は、CTS 検証ツールアプリのホスト側テストを示しています。

    CTS 検証ツールアプリでのホスト側マルチデバイス テスト

    図 3. CTS 検証ツールアプリでのホスト側マルチデバイス テスト。

    テストホスト側のマルチデバイス テスト モジュールのリストが表示されます。

  3. 実行するテスト モジュール名を特定します。たとえば、CompanionDeviceManager モジュールは、CtsCompanionDeviceManagerMultiDeviceTestCases としてリストされます。

  4. cts-v-host コンソールで、次のコマンドを実行します。

    run cts-v-host -m test_module_name
    

    次に例を示します。

    run cts-v-host -m CtsCompanionDeviceManagerMultiDeviceTestCases
    

    xTS コンソールがテストの実行を終了すると、結果が CTS 検証ツールアプリに表示されます。緑色でマークされたテストは合格です。赤色でマークされたテストは不合格です。図 4 に、CtsCompanionDeviceManager テストの結果の例を示します。

    CTS 検証ツールアプリでのホスト側マルチデバイス テストの結果

    図 4. CTS 検証ツールアプリでのホスト側マルチデバイス テストの結果。

省略可: Wi-Fi AP 接続テストを実行する

Wi-Fi AP 接続テストを実行する手順は次のとおりです。

  1. テストベッド構成ファイル(WifiConnectionTestbed.yaml)を編集します。このファイルは、CTS-Verifier が解凍されたディレクトリにあります。

    ./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml
    
  2. ローカル SSH 設定に基づいて、hostname フィールドの値を AP の IP アドレスに変更します。IP アドレスを確認するには、AP の IP アドレスを確認するをご覧ください。

    次の例は、WifiConnectionTestbed.yaml ファイル内の hostname フィールドの場所を示しています。

    TestBeds:
    - Name: WifiConnectionTestbed
      Controllers:
        # Specify settings for the AP.
        OpenWrtDevice:
        - hostname: AP-IP
          skip_init_reboot: True
    
  3. cts-v-host コンソールで、次のコマンドを実行します。

    run everything -m CtsWifiConnectionTests
    

マルチデバイス テストのトラブルシューティング

このセクションでは、起こりうる問題に対するトラブルシューティングを説明します。

NFC テスト中に GetFirmwareVersion に応答がない問題を修正

マルチデバイス テストの実行中にメッセージ「verify_firmware_version RuntimeError: No response for GetFirmwareVersion」が表示される場合、PN532 NFC ボードにアクセスできていません。

この問題を解決するには、ホスト上の PN532 ボードが使用するシリアルパス(例: 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 が無視される

デバッグできないデバイスでテストを実行している場合は、免除されているかどうかを確認してください。そうでない場合は、両方のデバイスが前提条件を満たしていることを確認します。