設置 CTS

要運行 CTS,首先要準備好物理環境、台式機和用於測試的 Android 設備。

物理環境

藍牙 LE 信標

如果被測設備 (DUT) 支持低功耗藍牙,則在被測設備 5 米範圍內放置至少三個低功耗藍牙信標以進行低功耗藍牙掃描測試。這些信標不需要配置或發出任何特定的東西,可以是任何類型的,包括 iBeacon、Eddystone,甚至是模擬 BLE 信標的設備。

相機

運行相機 CTS 時,請使用帶有測試圖案圖表(例如棋盤圖案)的正常照明條件。根據 DUT 的最小焦距放置測試圖案圖表,以確保它不會太靠近鏡頭。

將相機指向傳感器到具有足夠的照明場景,以允許被測傳感器達到並保持在作為在規定的最大配置的目標幀每秒(FPS) CONTROL_AE_TARGET_FPS_RANGE 。這適用於通過報告的所有相機傳感器getCameraIdList作為測試遍歷單獨列出的設備和措施的表現。

如果 DUT 支持外部攝像頭,例如 USB 網絡攝像頭,請在運行 CTS 時插入外部攝像頭。否則,CTS 測試將失敗。

全球定位系統/全球導航衛星系統

如果 DUT 支持全球定位系統/全球導航衛星系統 (GPS/GNSS) 功能,請以合適的信號電平向 DUT 提供 GPS/GNSS 信號以進行接收和 GPS 位置計算。 GPS 部分必須符合 ICD-GPS-200C。否則,GPS/GNSS 信號可以是任何類型的,包括衛星模擬器或室外信號的 GPS/GNSS 中繼器,或者您可以將 DUT 放置在足夠靠近窗戶的地方,以便它可以直接接收足夠的 GPS/GNSS 信號。

Wi-Fi 和 IPv6

CTS 測試需要支持 IPv6 的 Wi-Fi 網絡,具有互聯網連接,並且可以將 DUT 視為隔離的客戶端。隔離客戶端是指 DUT 無法查看該子網上的廣播/多網絡消息的配置。這發生在 Wi-Fi AP 配置或在隔離的子網上運行 DUT 而沒有連接其他設備的情況下。

如果您無法訪問本機 IPv6 網絡、IPv6 運營商網絡或 VPN 以通過某些取決於 IPv6 的測試,則可以使用 Wi-Fi 接入點和 IPv6 隧道。請參閱維基百科的IPv6隧道代理的列表

Wi-Fi RTT

Android包括在的Wi-Fi RTT API無線網絡連接往返時間(RTT)的能力。這允許設備以 1 到 2 米的精度測量它們到接入點的距離,從而顯著提高室內定位精度。支持Wi-Fi RTT推薦兩個設備是谷歌無線上網Compulab的fitlet2接入點(在5GHz設置為40 MHz帶寬)。

接入點應該通電,但不需要網絡連接。接入點不需要靠近測試設備,但建議在 DUT 的 40 英尺範圍內。一個接入點通常就足夠了。

台式機設置

亞行和AAPT

運行CTS之前,請確保你已經安裝了近兩個版本的Android調試橋(ADB)Android的資產打包工具(AAPT)和加入的那些工具的位置到你的機器的系統路徑。

要安裝ADB,下載Android的SDK工具包為您的操作系統,打開它,並按照其中的README文件中的指導。有關故障排除信息,請參閱安裝獨立式SDK工具

確保adbaapt是在你的系統路徑。以下命令假定您已在主目錄中打開包存檔:

export PATH=$PATH:$HOME/android-sdk-linux/build-tools/version

適用於 Ubuntu 的 Java 開發工具包

安裝了正確版本的Java Development Kit(JDK) 。

  • 對於 Android 11,請安裝 OpenJDK11。
  • 對於 Android 9 和 Android 10,請安裝 OpenJDK9。
  • 對於 Android 7.0、7.1、8.0 和 8.1,請安裝 OpenJDK8。

有關詳細信息,請參閱JDK的要求

CTS 文件

下載並打開從CTS包兼容性測試套件下載匹配您設備的Android版本和所有的應用程序二進制接口(ABI的),你的設備支持。

下載並打開最新版本的CTS媒體文件

設備檢測

按照步驟設置你的系統檢測到您的設備

內存限制

您可能要增加可用的最大內存試運行期間,在CTS-tradfed腳本。參見例如CL以獲取更多信息。

安卓設備設置

用戶構建

兼容設備被定義為具有用戶/發布密鑰簽名版本的設備。您的設備應該運行基於已知的系統映像從兼容用戶版本(Android 4.0以上版本)版代號,標籤和版本號

第一個 API 級別構建屬性

某些 CTS 要求取決於設備最初隨附的版本。例如,最初帶有早期版本的設備可能被排除在適用於帶有較晚版本的設備的系統要求之外。

為了提供給CTS此信息,設備製造商可以定義構建時財產ro.product.first_api_level 。此屬性的值是設備商業發佈時使用的第一個 API 級別。

設備製造商可以重用通用的底層實現來推出新產品作為同一設備組中現有產品的升級。該設備製造商可以任意地設定在現有產品的API級ro.product.first_api_level ,以便升級要求被施加為CTS和高音/ VTS。

設備製造商可以添加PRODUCT_PROPERTY_OVERRIDES到他們device.mk文件來設置該屬性,如顯示在下面的例子:

#ro.product.first_api_level indicates the first api level that the device has
been commercially launched on.
PRODUCT_PROPERTY_OVERRIDES +=\
ro.product.first_api_level=21

Android 9 或更高版本的第一個 API 級別

對於與Android 9或更高版本推出的設備中,設置ro.product.first_api_level屬性從有效值版代號,標籤和版本號

Android 8.x 或更低版本的第一個 API 級別

在Android 8.x中或更低,未設置(刪除)所啟動的設備ro.product.first_api_level屬性對產品的第一版本。對於所有的後續版本,集ro.product.first_api_level正確的API電平值。這允許該屬性正確識別新產品並保留有關產品第一個 API 級別的信息。如果標誌沒有設置,Android的分配Build.VERSION.SDK_INTro.product.first_api_level

CTS 墊片包

機器人10或更高包括稱為包格式APEX 。要運行APEX管理API CTS測試(如更新到新版本或報告活動的頂點),你必須預裝一個CtsShimApex上包/system分區。

APEX的墊片驗證測試驗證的實施CtsShimApex

ro.apex.updatable要求

  • 如果ro.apex.updatable屬性設置為trueCtsShimApex需要支持APEX包管理所有設備。

  • 如果ro.apex.updatable財產丟失或沒有設置, CtsShimApex不需要設備上預裝。

APEX的墊片驗證測試驗證的實施CtsShimApex

CtsShim預安裝和預加載

與Android 11起, CtsShimApex包含兩個預置的應用程序(從建成構建源),不包含除清單的任何代碼。 CTS 使用這些應用程序來測試特權和權限。

如果設備不支持APEX包管理(也就是ro.apex.updatable財產丟失或沒有設置),或者如果設備運行的是10版或更低,這兩個預置的應用程序必須在預先安裝系統分開。

設備版本預裝
(如果支持 APEX)
預載
手臂x86手臂x86
安卓 12 android12-arm-release
/system/apex/com.android.apex.cts.shim.apex
android12-x86-release
/system/apex/com.android.apex.cts.shim.apex
android12-arm-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

android12-arm-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

android12-x86-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

android12-x86-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

安卓 11 android11-arm-release
/system/apex/com.android.apex.cts.shim.apex
android11-x86-release
/system/apex/com.android.apex.cts.shim.apex
android11-arm-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

android11-arm-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

android11-x86-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

android11-x86-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

安卓 10 android10-release
/system/apex/com.android.apex.cts.shim.apex
android10-arm-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

android10-arm-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

android10-x86-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

android10-x86-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

Android 9、O 和 O-MR1不適用不適用arm-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

arm-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

x86-CtsShim.apk
/system/app/CtsShimPrebuilt.apk

x86-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk

要通過測試,請將應用程序預加載到系統映像上的相應目錄中,而無需重新簽署應用程序。

示例小程序

Android 9 引入了開放移動 API。對於報告多個安全元素的設備,CTS 添加了測試用例來驗證 Open Mobile API 的行為。這些測試用例需要將示例小程序一次性安裝到 DUT 的嵌入式安全元件 (eSE) 或 DUT 使用的 SIM 卡中。該ESE示例appletSIM示例小程序可以在AOSP找到。

CTS試驗的安全元素對開放移動API測試案例和訪問控制測試案例更詳細的信息。

存儲要求

該CTS媒體強調測試需要視頻剪輯是對外部存儲( /sdcard )。多數夾子都是從大巴克兔子,這是由Blender基金會下的版權保護知識共享署名3.0許可

所需空間取決於設備支持的最大視頻播放分辨率。請參閱第5的Android的兼容性定義文件的要求決議的平台版本。

以下是最大視頻播放分辨率的存儲要求:

  • 480x360:98 MB
  • 720x480:193 MB
  • 1280x720:606 MB
  • 1920x1080:1863 MB

屏幕和存儲

  • 任何沒有嵌入式屏幕的設備都需要連接到屏幕。
  • 如果設備有存儲卡插槽,請插入空的 SD 卡。使用支持超高速 (UHS) 總線的 SD 卡,具有 SDHC 或 SDXC 容量或至少速度等級 10 或更高的 SD 卡,以確保它可以通過 CTS。

  • 如果設備有 SIM 卡插槽,請將激活的 SIM 卡插入每個插槽。如果設備支持 SMS,則每張 SIM 卡都必須填充自己的號碼字段。對於運行 Android 12 或更高版本的設備,所有 SIM 卡都必須支持存儲縮位撥號 (ADN)。 GSM和USIM卡與電信專用文件(DF電信)滿足這個要求。

開發者 UICC

要運行CTS載體API測試,設備需要使用SIM卡CTS載體權限符合規定的要求準備UICC

安卓設備配置

  1. 工廠數據重置設備:設置>備份和復位>恢復出廠設置

  2. 將設備設置的語言為英語(美國):設置>語言和輸入法>語言

  3. 如果設備支持自定義默認字體,默認設置sans-serif字體系列Roboto (默認sans-serif的AOSP建立使用字體系列)。

  4. 打開位置設置,如果有設備上的GPS或Wi-Fi /蜂窩網絡功能:設置>位置>開

  5. 連接至Wi-Fi網絡支持IPv6,可以治療所述DUT作為分離的客戶端(參見物理環境以上),並且具有連接到互聯網:設置>無線網絡連接

  6. 確保沒有鎖定模式或密碼在設備上設置:設置>安全>屏幕鎖定>無

  7. 設置>開發者選項> USB調試:您的設備上啟用USB調試

  8. 將時間設置為12小時格式:設置>日期和時間>使用24小時格式>關閉

  9. 設置設備保持清醒:設置>開發者選項>保持喚醒>開

  10. Android5.x和4.4.x到只,將設備設置為允許模擬地點:設置>開發者選項>允許模擬位置>開

  11. Android 4.2或更高版本,關閉USB應用驗證:設置>開發者選項>驗證應用在USB>關閉

  12. 啟動瀏覽器並關閉任何啟動/設置屏幕。

  13. 使用 USB 電纜連接將用於測試設備的台式機。

文件安裝

在設備上安裝和配置助手應用程序。

  1. 根據您的 CTS 版本設置您的設備:

    • CTS版本2.1 R2通過4.2 R4:設置您的設備(或仿真器)與運行無障礙測試: abd install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      在設備上,啟用委派:設置>無障礙>無障礙>委派輔助服務

    • CTS版本6.x或降低:在設備上那些聲明android.software.device_admin ,設置您的設備使用運行裝置給藥試驗: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      設置>安全>選擇設備管理器,使兩個android.deviceadmin.cts.CtsDeviceAdminReceiver*設備管理員。確保android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver和任何其他預壓件管理員保持禁用。

  2. 將 CTS 媒體文件複製到設備,如下所示:

    1. 導航( cd ),可在媒體文件下載並解壓路徑。
    2. 更改文件權限: chmod u+x copy_media.sh

    3. 複製必要的文件:

      • 要復制分辨率高達 720x480 的剪輯,請運行:

        ./copy_media.sh 720x480
        
      • 如果您不確定最大分辨率,請複制所有文件:

        ./copy_media.sh all
        
      • 如果有下ADB多個設備,添加串行選項( -s特定設備)到最後。例如,要將最多 720x480 複製到串行為 1234567 的設備,請運行:

        ./copy_media.sh 720x480 -s 1234567