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

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

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

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

  1. デスクトップ マシンが CTS のオペレーティング システム要件を満たしていることを確認します。
  2. デスクトップ ソフトウェアをインストールするの手順 2 と 5 に沿って、adb、AAPT2、Python がデスクトップに正しくインストールされていることを確認します。
  3. 2 台のテスト対象デバイス(DUT)を用意し、それぞれに CTS-V をセットアップします。

  4. NFC 以外のモジュールをテストする場合は、2 台のデバイスによる標準テストをセットアップするを参照してください。

  5. CDM モジュールをテストする場合は、2 台のデバイスによる標準セットアップに加えて、CDM テストをセットアップするの手順も実施します。

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

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

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

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

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 チップをテスト用ワーク ステーションに接続します。

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

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

免除

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

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

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

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

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

  • デバイスがインターネットにアクセスできる
  • デバイスが確認付きブートを使用し、ビルドが dev-key ではなく release-key で署名されている
  • デバイスのブートローダーがロックされている。詳細な手順については、ブートローダーをロックするをご覧ください。
  • 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] をクリックします。図 2 は、CTS 検証ツールアプリのホスト側テストを示しています。

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

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

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

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

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

    run cts-v-host -m test_module_name
    

    次に例を示します。

    run cts-v-host -m CtsCompanionDeviceManagerMultiDeviceTestCases
    

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

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

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

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

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

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 が無視される

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