設定 CTS

如要執行 CTS,請先備妥實體環境、桌上型電腦和 用於測試的 Android 裝置。

實際環境

藍牙 LE 信標

如果測試中的裝置 (DUT) 支援藍牙 LE,請至少放置三個 藍牙 LE 掃描測試距離裝置距離 5 公尺 (5 公尺) 內的藍牙 LE 信標。 這些信標不必經過設定或發出任何具體問題 包括 iBeacon、Eddystone,甚至是模擬 BLE 信標的裝置。

超寬頻

如果 DUT 支援超寬頻 (UWB),請使用另一部裝置 支援 UWB 時,位置必須夠接近且接近, 就會產生天線和無線電故障區域距離準確度測試 特定的位置和方向需求如需設定詳細資料,請參閱 UWB 需求。 UWB 測試必須手動執行,並在指令列中指定 相隔 1 公尺 如要進一步瞭解這項測試所需的資料分割,請參閱 本機資料分割

相機

執行相機 CTS 時,請使用正常照明條件搭配測試模式 圖表 (例如棋盤式圖)。如何根據 與 DUT 的最小對焦距離,確保不會太靠近 鏡頭。

將相機感應器對準光線充足的場景, 受測試的感應器數量,持續保持在所設的目標影格數上限 CONTROL_AE_TARGET_FPS_RANGE。 這項功能適用於 Google 回報的所有攝影機感應器 getCameraIdList敬上 測試反覆在列出的裝置上,並衡量成效 個別。

如果 DUT 支援外接攝影機 (例如 USB 網路攝影機),請插入外接鏡頭 相機。否則 CTS 測試會失敗。

GPS/GNSS

如果 DUT 支援全球定位系統/全域導航衛星 系統 (GPS/GNSS) 功能,為 DUT 提供適當的 GPS/GNSS 訊號 訊號等級用於收訊及計算 GPS 位置。GPS 部分必須是 符合 ICD-GPS-200C。否則,GPS/GNSS 訊號可以是任何類型 包括衛星模擬器,以及戶外訊號的 GPS/GNSS 重複器,或 您可以將 DUT 放在接近視窗的位置,以便直接接收 GPS/GNSS 訊號良好。

Wi-Fi 和 IPv6

CTS 測試需要支援 IPv4 和 IPv6 的 Wi-Fi 網路,且需有網際網路 支援 IPv4 和 IPv6 的可用 DNS 連線,支援 IP 多點傳送,且 將 DUT 視為獨立用戶端。 「隔離的用戶端」是指 DUT 沒有區隔的資源 在該子網路上查看廣播/多網路訊息這個 都可能發生在 Wi-Fi 存取點 (AP) 設定上,或是在電腦的裝置上執行 DUT 隔離子網路,不需連接其他裝置。

如果無法存取原生 IPv6 網路、IPv6 電信業者網路或 視 IPv6 而定,透過 VPN 通過部分測試,您可以使用 Wi-Fi 存取點並 IPv6 通道

如要傳遞 CTS,DUT 必須設定啟用 UPBROADCASTMULTICAST 旗標 Wi-Fi 介面。你必須為 Wi-Fi 介面指派 IPv4 和 IPv6 位址。 使用 adb shell ifconfig 檢查 Wi-Fi 介面屬性。

支援 Wi-Fi STA/STA 並行作業, 需要使用多個 Wi-Fi 網路 (至少 2 個)。為了通過 CTS 驗證,Wi-Fi 網路必須在 SSID 不同的頻帶上運作,或在 兩個不同的 BSSID 名稱相同的 SSID。

Wi-Fi 即時文字訊息

Android 包含 Wi-Fi RTT API - Wi-Fi 封包往返時間 (RTT)。 技術。這可讓裝置透過 1 到 2 公尺的精確度,大幅提高室內定位精確度。 以下兩部支援 Wi-Fi RTT 的裝置如下: Google WifiCompulab 的 Fitlet2 存取點 (將頻寬設為 40 MHz 和 5 GHz)。

存取點應已開機,但不需要網路連線。 存取點不一定要放在測試裝置旁邊,但建議 不超過 DUT 的 40 英尺通常只要一個存取點就夠了。

電腦設定

注意:CTS 支援 64 位元 Linux 電腦。Windows OS 不支援 CTS 或 MacOS

FFMPEG

在主體電腦上安裝 ffmpeg 5.1.3 版 (或更新版本) 套件。

升級主機機器

強烈建議您將 CTS 主機機器 RAM 升級至 128 GB,並將 HDD 升級至 256 GB。我們需要應對增加的 CTS 測試案例,以及吸收的 Java 堆積空間保留量增加。

ADB 與 AAPT2

執行 CTS 之前,請確認您已安裝最新版本的 兩者皆是 Android Debug Bridge (ADB)Android 資產封裝工具 (AAPT2) 並且將這些工具的位置新增至機器的系統路徑。

如要安裝 ADB 和 AAPT2,請下載最新版本的 Android SDK 平台工具Android SDK 建構工具 從 Android Studio 的 SDK Manager 或從 sdkmanager 指令列工具

確認 adbaapt2 位於系統路徑。以下指令 假設您已將套件封存下載至名為 android-sdk 位於主目錄中:

export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>

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 相關規定

Python 支援的設定

按照以下操作說明,為您的平台安裝「virtualenv」: 安裝 操作說明。

您可以叫用 virtualenv -h 來驗證安裝是否成功。

CTS 檔案

下載並開啟 CTS 套件: 下載 Compatibility Test Suite 「我的裝置相符」Android 版本以及所有應用程式二進位檔介面 (ABI)。

下載並開啟最新版本的 CTS 媒體檔案

下載與 Mainline 相關的 CTS 檔案 (選擇性)

當您首次執行 CTS 版本時,CTS 會動態下載 與主系列相關的 CTS 檔案,執行時間至少為 10 分鐘。 會因網路速度而異

如要避免這段額外 CTS 執行時間,可以下載與 Mainline 相關的 CTS 檔案,再執行 CTS 版本,請遵循下列步驟操作:

  1. 請執行以下指令,在裝置上取得 Android API 級別:

    adb shell getprop ro.build.version.sdk
    
  2. 按照 download_mcts.sh 指令碼中的指示操作 下載 Mainline CTS 檔案。

    視網路速度而定,下載作業至少需要 10 分鐘。

裝置偵測

按照步驟操作: 設定讓系統偵測裝置

記憶體限制

您可能會想要提高 以 cts-tradefed 指令碼請參閱 CL 範例 瞭解詳情

Android 裝置設定

使用者版本

相容裝置是指使用者/發布金鑰已簽署版本的裝置。 您的裝置應執行根據已知相容的系統映像檔 代號、標記和版本號碼

第一個 API 級別建構屬性

部分 CTS 要求,取決於裝置原先的版本 出貨資訊。舉例來說,如果裝置原本就直接出貨 裝置可能會從適用於搭載 Android 作業系統的裝置中移除的系統需求 後續的建構作業

如要將這些資訊提供給 CTS,裝置製造商可 已定義建構時間屬性 ro.product.first_api_level。這項屬性的值 屬性是裝置用於商業啟動的第一個 API 級別。

裝置製造商可重複使用通用的基礎實作 或在同一裝置上升級現有產品 群組。裝置製造商可選擇設定現有物件的 API 級別 產品升級至 ro.product.first_api_level,才能達成升級要求 都適用於 CTS 和 Treble/VTS

裝置製造商可以在自家PRODUCT_SHIPPING_API_LEVEL device.mk 檔案來設定這個屬性,如以下範例所示:

# PRODUCT_SHIPPING_API_LEVEL sets ro.product.first_api_level to indicate
# the first api level that the device has been commercially launched on.
PRODUCT_SHIPPING_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_INT 指派給 ro.product.first_api_level

CTS 輔助程式套件

Android 10 以上版本包含名為 APEX。執行 CTS 測試以用於 APEX 管理 API (例如更新至新版本或回報有效的 APEX) 在 /system 分區中預先安裝 CtsShimApex 套件。

APEX 輔助程式驗證測試會驗證 CtsShimApex 的實作結果。

ro.apex.updatable 需求

  • 如果 ro.apex.updatable 屬性設為 trueCtsShimApex 就會 以及支援 APEX 套件管理服務的所有裝置。

  • 如果缺少 ro.apex.updatable 屬性或未設定,CtsShimApex 無須預先安裝在裝置上。

APEX 輔助程式驗證測試會驗證 CtsShimApex 的實作結果。

預先安裝及預先載入 CtsShim

從 Android 11 開始,CtsShimApex 包含兩個 預先建構的應用程式 建構原始碼), 且除了資訊清單以外,不含任何程式碼華視能不能使用這些應用程式 測試權限和權限

如果裝置不支援 APEX 套件管理服務 (即 缺少 ro.apex.updatable 屬性或未設定),或者裝置 但無論使用的是 10 以下版本,兩個預先建構的應用程式都必須 必須另外預先安裝在系統中。

如果系統支援 APEX,就必須以 /system/apex/com.android.apex.cts.shim.apex 的形式安裝適當的版本。

如果使用一般預先建構的應用程式,CtsShimCtsShimPriv 適用於 適當的發布版本必須以 /system/app/CtsShimPrebuilt.apk 的形式發布 /system/priv-app/CtsShimPrivPrebuilt.apk

下表列出各個 裝置的版本和架構

裝置版本 預先安裝
(如果支援 APEX)
預先載入
ARM x86 ARM x86
Android 14 android14-arm-release android14-x86 版本 android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

Android 13 android13-arm-release android13-x86 版本 android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

Android 12 android12-arm-release android12-x86 版本 android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Android 11 android11-arm-release android11-x86-release android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Android 10 android10 版本 android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

Android 9、O 和 O-MR1 arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

如要通過測試,請將應用程式預先載入至 不必重新簽署應用程式的系統映像檔

範例小工具

Android 9 推出了 Open Mobile API。適用於會回報多部裝置的裝置 安全元件,CTS 會加入測試案例,以驗證 Open Mobile 的行為 相互整合這些測試案例需要您安裝一個範例小工具, DUT 的嵌入式安全元件 (eSE) 或 鄧白氏環球編碼 eSE 範例小工具SIM 卡範例小工具 歡迎前往 Android 開放原始碼計畫

請參閱「適用於安全元件的 CTS 測試」 進一步瞭解 Open Mobile API 測試案例和存取權控管測試 用途

儲存空間需求

CTS 媒體壓力測試需要將影片片段置於外部儲存空間 (/sdcard)。大部分的剪輯片段來自 受著作權保護的 Big Buck Bunny Blender Foundation 的 創用 CC 姓名標示 3.0 授權

所需空間取決於 裝置。請參閱 Android 相容性定義說明文件 所需解析度的平台版本。

以下是各影片播放解析度的最大儲存空間需求:

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

螢幕和儲存空間

  • 凡是沒有內嵌螢幕的裝置,都必須連線至 。
  • 如果裝置有記憶卡插槽,請插入空的 SD 卡。使用 SD 標準畫質 支援具備 SDHC 或 SDXC 容量的超高速 (UHS) 匯流排, 速度等級至少為 10 以上的 Pod CTS。

  • 如果裝置有 SIM 卡插槽,請將已啟用的 SIM 卡插入每個插槽。 如果裝置支援簡訊功能,每張 SIM 卡都必須有專屬的號碼欄位 。搭載 Android 12 或 如果是高點,所有 SIM 卡都必須支援儲存縮寫撥號功能。 數字 (ADN)。附電信專用檔案的 GSM 和 USIM 卡 (DFTelecom) 符合這項規定。

開發人員 UICC

如要執行 CTS 電信業者 API 測試,裝置必須使用搭載 CTS 電信業者的 SIM 卡 符合 準備 UICC

Android 裝置設定

  1. 將裝置恢復原廠設定:[設定] >備份與重設 >原廠資料 重設

  2. 將裝置的語言設為英文 (美國):設定 > 語言與輸入 >語言:

  3. 如果裝置支援自訂預設字型,請設定預設值 將 sans-serif 字型系列變更為 Roboto (預設的 sans-serif 字型系列) 用於 Android 開放原始碼計畫版本中)。

  4. 如果有 GPS 或 Wi-Fi/行動網路,請開啟位置資訊設定 裝置上的功能:[設定] >位置 >已開啟

  5. 連線至支援 IPv6 的 Wi-Fi 網路,即可將 DUT 視為 獨立的用戶端 (請參閱上方的實體環境)。 並連上網際網路:[設定] >Wi-Fi

  6. 確認裝置未設定鎖定圖案或密碼: 設定 >安全性 >螢幕鎖定 >無

  7. 在裝置上啟用 USB 偵錯設定 >開發人員選項 > USB 偵錯。

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

  9. 將裝置設定為保持喚醒狀態:設定 >開發人員選項 >保持醒來 > 已開啟

  10. 僅適用於 Android 5.x 和 4.4.x 的裝置,將裝置設定為允許模擬位置資訊: 設定 >開發人員選項 >允許模擬位置 >已開啟

  11. Android 4.2 以上版本中,關閉 USB 應用程式驗證功能:設定 > 開發人員選項 >透過 USB 驗證應用程式 >關閉

  12. Android 13 以上版本中,將裝置設定為允許模擬數據機: 設定 >開發人員選項 >允許模擬數據機 >已開啟

  13. 啟動瀏覽器並關閉任何啟動/設定畫面。

  14. 連接要透過 USB 測試裝置的電腦 網路。

  15. 執行 CTS 前,請透過使用者將 Roboto2 設為 Sans Serif 字型 無障礙預設用途 (未隱藏) 設定

檔案安裝

在裝置上安裝及設定輔助應用程式。

  1. 根據 CTS 版本設定裝置:

    • CTS 2.1 R2 至 4.2 R4 版本:設定裝置 (或模擬器) 使用下列指令執行無障礙功能測試: adb 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