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 は、検証プロセス中に次の状態を確認します。

  • デバイスがインターネットに接続されている
  • デバイスが確認付きブートを使用しており、ビルドがデベロッパーキーではなくリリースキーで署名されていること
  • デバイスのブートローダーがロックされている。詳細な手順については、ブートローダーのロックをご覧ください。
  • 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 コンソールで次のコマンドを実行します。注: CTS Verifier アプリでホスト側のモジュールをタップしても、個々のテストケースのリストは表示されません。テストケースの結果は、ホストでのモジュールの実行後、自動的に UI に表示されます。

  5. xTS コンソールで、次のコマンドを実行します。

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

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