CTS 自動テストを実行する前に、物理環境を準備し、ワークステーションのセットアップとテスト対象デバイスの構成を行います。
物理環境のセットアップ
一部の CTS テストでは、DUT の付近にセットアップされた外部デバイスを使用する必要があります。物理環境をセットアップする手順は次のとおりです。
(省略可)DUT が Bluetooth LE をサポートしている場合、Bluetooth LE スキャンテスト用に少なくとも 3 台の Bluetooth LE ビーコンを DUT の 5 m 以内に設置します。以下の点にもご注意ください。
- ビーコンは設定も特定の出力も不要です。
- iBeacon や Eddystone、BLE ビーコンをシミュレートするデバイスなど、どんな種類のものでも構いません。
シーン(壁や天井など)の前方に、DUT の最小焦点距離と同程度離してスマートフォンを置きます。以下の点にもご注意ください。
- シーンは照明を十分に明るくして、テスト対象のセンサーが
CONTROL_AE_TARGET_FPS_RANGE
で指定された最大設定目標 FPS(1 秒あたりのフレーム数)に到達し、それを維持できるようにします。 - このセットアップは、
getCameraIdList
で取得したカメラセンサーのすべてに適用されます。リストアップされたデバイスを順にテストし、個別に性能を測定するためです。 - DUT が USB ウェブカメラなどの外部カメラをサポートしている場合は、CTS の実行時に外部カメラを接続します。そうしないと、CTS テストは失敗します。
- シーンは照明を十分に明るくして、テスト対象のセンサーが
(省略可)DUT がグローバル ポジショニング システム(GPS)などの全球測位衛星システム(GNSS)をサポートしている場合は、DUT に、受信と位置計算に適した信号レベルの GNSS 信号を与える必要があります。以下の点にもご注意ください。
- GPS は ICD-GPS-200C に準拠している必要があります。
- GNSS の信号は、衛星シミュレータや屋外信号の中継器など、どんな種類のものでも構いません。
- DUT は、衛星から十分な GNSS 信号を直接受信できるように窓に近い場所に置いて構いません。
Wi-Fi ネットワークが IPv4 と IPv6 に対応していて、IPv4 と IPv6 の DNS を使用するインターネットに接続され、IP マルチキャストをサポートしており、DUT を隔離されたクライアントとして扱うことができることを確認します。
IPv6 テストが成功するために必要なネットワーク(ネイティブ IPv6 ネットワーク、IPv6 携帯通信会社ネットワーク、または VPN)にアクセスできない場合は、Wi-Fi AP と IPv6 トンネルを使用します。
DUT の
UP
、BROADCAST
、MULTICAST
のフラグを Wi-Fi インターフェースに設定します。Wi-Fi インターフェースには IPv4 アドレスと IPv6 アドレスを割り当てます。 Wi-Fi インターフェースのプロパティを確認するには、
adb shell ifconfig
を実行します。(省略可)DUT が Wi-Fi STA または STA の同時実行をサポートしている場合は、Wi-Fi ネットワークを少なくとも 2 つ設定します。これらの Wi-Fi ネットワークの帯域幅とその SSID は異なっている必要があります。または、SSID が同じ場合は BSSID が異なっている必要があります。
(省略可)DUT が Wi-Fi ラウンドトリップ時間(RTT)をサポートしている場合は、Wi-Fi RTT 対応のデバイスをセットアップします。
- Wi-Fi RTT 対応デバイスを DUT から 12 メートル以内に置きます。
- Wi-Fi RTT 対応デバイスの電源を入れます。
Wi-Fi RTT 対応の推奨デバイスは 2 種類あります。Google Wifi、および Compulab の fitlet2 アクセス ポイントです(5 GHz 帯、帯域幅 40 MHz に設定)。
デスクトップ マシンのセットアップ
CTS 自動テストを実行する前に、デスクトップ マシンがハードウェアとオペレーティング システムの要件を満たしていること、および適切なソフトウェアがインストールされていることを確認します。詳しくは以下の各セクションをご覧ください。
ハードウェア要件を確認する
CTS デスクトップ マシンは、以下のハードウェア要件を満たす必要があります。
64 ビット x86 システム
256 GB 以上のディスク空き容量(CTS テストケースの増加と Tradefed で確保される Java ヒープ領域の増加に対応するために必要)
32 GB 以上の RAM
オペレーティング システムの要件を確認する
開発マシンは、GNU C ライブラリ(glibc)2.17 以降を実装した 64 ビットの Linux ディストリビューションを搭載している必要があります。
デスクトップ ソフトウェアをインストールする
CTS 用の適切なデスクトップ ソフトウェアをインストールするには:
最新バージョンの Android Debug Bridge(adb)と Android Asset Packaging Tool(AAPT2)をインストールし、これらのツールの場所をマシンのシステムパスに追加します。
- SDK Manager に関するドキュメントの冒頭に記載されている手順に沿って、
sdkmanager
コマンドライン ツールをインストールします。コマンドライン ツールをダウンロードするためのリンクは、Android Studio ダウンロード ページ下部にある「コマンドライン ツールのみ」セクションにあります。 - 新しくインストールした
sdkmanager
の場所を追加するためにシステムパスを更新します。 sdkmanager
を使用して、最新のplatform-tools
パッケージとbuild-tools
パッケージをインストールします。これらのパッケージには adb と AAPT2 が含まれています。パッケージのインストール方法については、パッケージをインストールするをご覧ください。- 新しくインストールした adb ツールと AAPT2 ツールの場所を追加するためにパスを更新します。
- adb と AAPT2 がパスにあることを確認します。
- SDK Manager に関するドキュメントの冒頭に記載されている手順に沿って、
適切なバージョンの Java 開発キット(JDK)をインストールします。
- Android 11 以降の場合は、JDK 11 をインストールします。
- Android 10 以前の場合は、CTS を設定する(AOSP 10 以前)をご覧ください。
(省略可)Android 13 以降の場合は、virtualenv をインストールします。virtualenv ツールは、マルチデバイス テストに必要です。
Python がインストールされていることを確認するため、
python3
を入力します。Python のバージョンと日付が表示されれば、Python は正しくインストールされています。デバイスの Android バージョンとデバイスでサポートされているすべてのアプリケーション バイナリ インターフェース(ABI)に一致する CTS パッケージを互換性テストスイートのダウンロードからダウンロードして開きます。
最新バージョンの CTS メディア ファイルをダウンロードして開きます。 このメディア ファイルには、Big Buck Bunny の動画クリップが含まれています。その著作権は Blender Foundation にあり、クリエイティブ・コモンズ表示 3.0 ライセンスのもとで提供されています。
(省略可)CTS を初めて実行するときに、Mainline に関連するいくつかの CTS ファイルが動的にダウンロードされます。ネットワークの速度によっては、このダウンロードにより CTS の実行時間が 10 分以上長くなります。
CTS の実行時間が長くならないようにするには、Mainline に関連する CTS ファイルを先にダウンロードしてから CTS バージョンを実行します。Mainline に関連する CTS ファイルをダウンロードする方法については、Mainline に関連する CTS ファイルのダウンロードをご覧ください。
DUT の準備
デスクトップ マシンのセットアップが終わったら、DUT のセットアップと構成を行う必要があります。
DUT をセットアップする
DUT をセットアップするには:
DUT で、コードネーム、タグ、ビルド番号から互換性があるとわかるユーザービルド(Android 4.0 以降)をベースとしたシステム イメージが実行されていること、および
user
ビルド バリアントが使用されていることを確認します。ビルド バリアントについて詳しくは、ターゲットを選択するをご覧ください。DUT が Android 13 以降を搭載している場合は、ビルドの
ro.product.first_api_level
が、そのデバイス発売時の API レベルに設定されていることを確認します。この値を設定するには、device.mk
ファイルに次の変更を加えます。PRODUCT_SHIPPING_API_LEVEL := 21
CTS の要件には、デバイスの最初の出荷時に搭載したビルドによって異なるものがあります。たとえば、最初の出荷時に以前のビルドを搭載したデバイスは、その後のビルドを搭載したデバイスに適用されるシステム要件から除外される場合があります。有効な API レベルの値については、コードネーム、タグ、ビルド番号をご覧ください。
ro.product.first_api_level
について詳しくは、ベンダー API レベルをご覧ください。Android 10 以前の場合は、CTS を設定する(AOSP 10 以前)をご覧ください。
デバイスで APEX パッケージの管理がサポートされている場合:
- デバイスの Android バージョンとハードウェア アーキテクチャに該当する APEX shim パッケージをダウンロードします。shim パッケージの表の左側 2 列に、ダウンロードするパッケージへのリンクが記載されています。
- ダウンロードしたパッケージを
/system/apex
にコピーします。 - ファイルの名前を
com.android.apex.cts.shim.apex
に変更します。
デバイスで APEX パッケージの管理がサポートされていない場合:
- デバイスの Android バージョンとハードウェア アーキテクチャに該当する APEX shim パッケージをダウンロードします。shim パッケージの表の右側 2 列に、ダウンロードするパッケージへのリンクが記載されています。
CtsShim.apk
を/system/app/
にコピーします。CtsShim.apk
の名前をCtsShimPrebuilt.apk
に変更します。CtsShimPriv.apk
を/system/priv-app/
にコピーします。CtsShimPriv.apk
の名前をCtsShimPrivPrebuilt.apk
に変更します。
デバイスにセキュア エレメントが複数ある場合:
google-cardlet.cap
をダウンロードします。- ダウンロードしたファイルを
/data/uicc/cardlets/
にコピーします。
デバイスにセキュア エレメントが複数ある場合は、サンプル アプレットを、DUT の組み込みセキュア エレメント(eSE)または DUT で使用する SIM カードにインストールします。詳しくは、セキュア エレメントの CTS テストをご覧ください。
デバイスにディスプレイが搭載されていない場合は、ディスプレイを接続します。
デバイスにメモリカード スロットがある場合は、空の SD カードを挿入します。 CTS に確実に合格できるように、SDHC または SDXC の容量で、UHS バス対応であるか、スピードクラス 10 以上の SD カードを使用してください。
デバイスに SIM カードスロットがある場合は、アクティベーション済みの SIM カードをスロットに挿入します。デバイスが SMS に対応している場合、各 SIM カードに固有の番号フィールドが設定されている必要があります。Android 12 以降を搭載したデバイスの場合、すべての SIM カードが短縮番号(ADN)の保存に対応している必要があります。通信専用ファイル(DFTelecom)を使用する GSM カードと USIM カードはこの要件を満たしています。
デバイスの SIM が、UICC の準備で指定されている要件を満たす、CTS キャリアの権限を持っていることを確認します。
DUT を構成する
次の手順に沿って、CTS で使用する DUT を構成します。
DUT での手順:
デバイスを出荷時設定にリセットします。
デバイスの言語を英語(米国)に設定します。
デバイスがデフォルトのフォントのカスタマイズをサポートしている場合は、デフォルトの Sans Serif フォント ファミリーを Roboto に設定します。
デバイスに GPS または Wi-Fi / モバイル ネットワークの機能がある場合は、位置情報の設定をオンにします。
IPv6 対応で、DUT を隔離されたクライアントとして扱うことができ、インターネットに接続している Wi-Fi ネットワークに接続します。隔離されたクライアントについて詳しくは、物理環境のセットアップをご覧ください。
ロックパターンまたはパスワードが設定されていないことを確認します。
USB デバッグを有効にします。
[設定] > [デバイス情報] に移動して [ビルド番号] を 7 回タップします。システム設定のカテゴリ内に [開発者向けオプション] が表示されます。
[USB デバッグ] をタップします。
Android 10 以前のデバイスで USB デバッグを有効にするには、CTS を設定する(AOSP 10 以前)をご覧ください。
時刻を 12 時間形式に変更します。
[開発者向けオプション] > [スリープモードにしない] を有効にします。
USB アプリの確認を無効にします。
[開発者向けオプション] に移動します。
[USB 経由のアプリを確認] をタップします。
Android 13 以降の場合は、疑似モデムを有効にします。
[開発者向けオプション] に移動します。
[疑似モデムの許可] をタップします。
この設定は、特定のテレフォニー テストで必須です。
デスクトップ マシンでの手順:
ブラウザを開き、起動画面や設定画面を閉じます。
USB ケーブルを使用して DUT をデスクトップ マシンに接続します。
このパソコンからのデバッグを許可する RSA キーを受け入れるかどうかを尋ねるメッセージが表示された場合は、[USB デバッグを許可] をクリックします。
ユーザーがアクセス可能なアフォーダンス(非表示でない)設定を使用して Roboto2 を Sans Serif フォントとして設定します。
CTS メディア ファイルを DUT にコピーします。
- メディア ファイルをダウンロード、展開したパスに移動(
cd
)します。 次のように、ファイルの権限を変更します。
chmod u+x copy_media.sh
ファイルをコピーします。
解像度が 720x480 以下のクリップをコピーするには、次のコマンドを実行します。
./copy_media.sh 720x480
最高の解像度がわからない場合は、次のコマンドですべてのファイルをコピーします。
./copy_media.sh all
複数の DUT がある場合は、特定のデバイスのシリアル オプション(
-s
)を最後に追加します。たとえば、720x480 以下をシリアル 1234567 のデバイスにコピーするには、次のコマンドを実行します。./copy_media.sh 720x480 -s 1234567
- メディア ファイルをダウンロード、展開したパスに移動(
Mainline に関連する CTS ファイルのダウンロード
Mainline に関連する CTS ファイルをダウンロードするには:
次のコマンドを実行して、デバイスの Android API レベルを取得します。
adb shell getprop ro.build.version.sdk
download_mcts.sh
スクリプトの手順に沿って、Mainline CTS ファイルをダウンロードします。ネットワークの速度によっては、ダウンロードに 10 分以上かかることがあります。
Shim パッケージ
次の表は、デバイスのバージョンとアーキテクチャごとに利用可能なパッケージの一覧です。
デバイスのバージョン | パッケージ(APEX がサポートされている場合) | パッケージ(APEX がサポートされていない場合) | ||
---|---|---|---|---|
ARM | x86 | ARM | x86 | |
Android 15 |
15-arm-release
|
android15-x86-release
|
android15-arm-CtsShim.apk
|
android15-x86-CtsShim.apk
|
Android 14 |
android14-arm-release
|
android14-x86-release
|
android14-arm-CtsShim.apk
|
android14-x86-CtsShim.apk
|
Android 13 |
android13-arm-release
|
android13-x86-release
|
android13-arm-CtsShim.apk
|
android13-x86-CtsShim.apk
|
Android 12 |
android12-arm-release
|
android12-x86-release
|
android12-arm-CtsShim.apk
|
android12-x86-CtsShim.apk
|
Android 11 |
android11-arm-release
|
android11-x86-release
|
android11-arm-CtsShim.apk
|
android11-x86-CtsShim.apk
|
Android 10 |
android10-release
|
android10-arm-CtsShim.apk
|
android10-x86-CtsShim.apk
|
|
Android 9、O、O-MR1 | なし | なし |
arm-CtsShim.apk
|
x86-CtsShim.apk
|
次のステップ
このドキュメントを読み終わったら、CTS 自動テストを実行するをご覧ください。