Thiết lập CTS

Để chạy CTS, trước tiên hãy chuẩn bị môi trường vật lý, máy tính để bàn và thiết bị Android bạn đang sử dụng để thử nghiệm.

Môi trường vật lý

Đèn hiệu Bluetooth LE

Nếu thiết bị được kiểm tra (DUT) hỗ trợ Bluetooth LE, hãy đặt ít nhất ba đèn hiệu Bluetooth LE trong phạm vi 5 mét tính từ DUT để kiểm tra quét Bluetooth LE. Những đèn hiệu đó không cần phải được định cấu hình hoặc phát ra bất kỳ loại đèn hiệu cụ thể nào và có thể là bất kỳ loại nào, bao gồm iBeacon, Eddystone hoặc thậm chí các thiết bị mô phỏng đèn hiệu BLE.

Băng thông siêu rộng

Nếu DUT hỗ trợ băng thông siêu rộng (UWB), một thiết bị khác hỗ trợ UWB phải được đặt đủ gần và được định hướng để không có ăng-ten và vùng chết vô tuyến. Đối với các bài kiểm tra độ chính xác về khoảng cách, có những nhu cầu định vị và định hướng cụ thể. Để biết chi tiết thiết lập, hãy xem các yêu cầu của UWB . Kiểm tra UWB phải được chạy thủ công, chỉ định trên dòng lệnh hai thiết bị cách nhau một mét. Để biết chi tiết về sharding cần thiết cho thử nghiệm này, hãy xem Local sharding .

Máy ảnh

Khi chạy CTS của camera, hãy sử dụng điều kiện ánh sáng bình thường với biểu đồ mẫu thử nghiệm (chẳng hạn như mẫu bàn cờ). Đặt biểu đồ mẫu thử nghiệm theo khoảng cách lấy nét tối thiểu của DUT để đảm bảo rằng nó không quá gần ống kính.

Hướng cảm biến máy ảnh vào một cảnh có đủ ánh sáng để cho phép cảm biến được thử nghiệm tiếp cận và duy trì ở tốc độ khung hình mục tiêu được định cấu hình tối đa trên giây (FPS) như được chỉ định trong CONTROL_AE_TARGET_FPS_RANGE . Điều này áp dụng cho tất cả các cảm biến máy ảnh được báo cáo bởi getCameraIdList khi thử nghiệm lặp lại trên các thiết bị được liệt kê và đo lường hiệu suất riêng lẻ.

Nếu DUT hỗ trợ camera bên ngoài, chẳng hạn như webcam USB, hãy cắm camera bên ngoài khi chạy CTS. Nếu không, các bài kiểm tra CTS sẽ thất bại.

GPS/GNSS

Nếu DUT hỗ trợ tính năng hệ thống định vị toàn cầu/hệ thống vệ tinh dẫn đường toàn cầu (GPS/GNSS), hãy cung cấp tín hiệu GPS/GNSS cho DUT ở mức tín hiệu phù hợp để thu và tính toán vị trí GPS. Phần GPS phải tuân thủ ICD-GPS-200C. Mặt khác, tín hiệu GPS/GNSS có thể thuộc bất kỳ loại nào, bao gồm bộ mô phỏng vệ tinh hoặc bộ lặp GPS/GNSS của tín hiệu ngoài trời hoặc bạn có thể đặt DUT đủ gần cửa sổ để nó có thể nhận trực tiếp đủ tín hiệu GPS/GNSS.

Wi-Fi và IPv6

Các thử nghiệm CTS yêu cầu mạng Wi-Fi hỗ trợ IPv4 và IPv6, có kết nối Internet với DNS hoạt động cho IPv4 và IPv6, hỗ trợ phát đa hướng IP và có thể coi DUT như một máy khách biệt lập. Máy khách bị cô lập là một cấu hình trong đó DUT không có khả năng hiển thị các tin nhắn quảng bá/đa mạng trên mạng con đó. Điều này xảy ra với cấu hình điểm truy cập Wi-Fi (AP) hoặc bằng cách chạy DUT trên mạng con bị cô lập mà không có thiết bị nào khác được kết nối.

Nếu bạn không có quyền truy cập vào mạng IPv6 gốc, mạng của nhà cung cấp dịch vụ IPv6 hoặc VPN để vượt qua một số thử nghiệm tùy thuộc vào IPv6, bạn có thể sử dụng điểm truy cập Wi-Fi và đường hầm IPv6.

Để vượt qua CTS, DUT cần có các cờ UP , BROADCASTMULTICAST được đặt trên giao diện Wi-Fi. Giao diện Wi-Fi cần được chỉ định địa chỉ IPv4 và IPv6. Kiểm tra thuộc tính giao diện Wi-Fi bằng adb shell ifconfig .

Đối với các thiết bị hỗ trợ Wi-Fi STA/STA Concurrency , cần có nhiều mạng Wi-Fi (ít nhất là 2). Để vượt qua CTS, mạng Wi-Fi phải chạy trên các băng tần khác nhau với các SSID khác nhau hoặc trên cùng một SSID với các BSSID khác nhau.

Wi-Fi RTT

Android bao gồm API Wi-Fi RTT cho khả năng Wi-Fi khứ hồi (RTT) . Điều này cho phép các thiết bị đo khoảng cách đến các điểm truy cập với độ chính xác từ 1 đến 2 mét, tăng đáng kể độ chính xác của vị trí trong nhà. Hai thiết bị được khuyên dùng hỗ trợ Wi-Fi RTT là Google Wifiđiểm truy cập fitlet2 của Compulab (được đặt ở băng thông 40 MHz ở tần số 5 GHz).

Các điểm truy cập phải được cấp nguồn nhưng không yêu cầu kết nối mạng. Các điểm truy cập không cần phải ở bên cạnh thiết bị xét nghiệm nhưng nên cách DUT trong vòng 40 feet. Một điểm truy cập thường là đủ.

Cài đặt máy tính để bàn

Thận trọng : CTS hỗ trợ các máy Linux 64-bit. CTS không được hỗ trợ trên hệ điều hành Windows hoặc MacOS.

FFMPEG

Cài đặt gói ffmpeg phiên bản 5.1.3 (hoặc mới hơn) trên máy chủ.

Nâng cấp máy chủ

Chúng tôi khuyên bạn nên nâng cấp RAM máy chủ CTS lên 128GB và ổ cứng HDD lên 256GB. Nó được yêu cầu để đáp ứng số lượng các trường hợp thử nghiệm CTS ngày càng tăng và sự gia tăng việc dành chỗ vùng heap Java trong giao dịch.

ADB và AAPT2

Trước khi chạy CTS, hãy đảm bảo rằng bạn đã cài đặt các phiên bản gần đây của cả Cầu gỡ lỗi Android (adb)Công cụ đóng gói tài sản Android (AAPT2) và thêm vị trí của các công cụ đó vào đường dẫn hệ thống trên máy của bạn.

Để cài đặt ADB và AAPT2, hãy tải xuống Công cụ nền tảng SDK AndroidCông cụ xây dựng SDK Android mới nhất từ ​​Trình quản lý SDK của Android Studio hoặc từ công cụ dòng lệnh sdkmanager .

Đảm bảo rằng adbaapt2 nằm trong đường dẫn hệ thống của bạn. Lệnh sau giả định rằng bạn đã tải kho lưu trữ gói xuống thư mục con có tên android-sdk trong thư mục chính của bạn:

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

Bộ công cụ phát triển Java cho Ubuntu

Cài đặt phiên bản thích hợp của Bộ công cụ phát triển Java (JDK) .

  • Đối với Android 11, hãy cài đặt OpenJDK11.
  • Đối với Android 9 và Android 10, hãy cài đặt OpenJDK9.
  • Đối với Android 7.0, 7.1, 8.0 và 8.1, hãy cài đặt OpenJDK8.

Để biết chi tiết, hãy xem các yêu cầu của JDK .

Thiết lập để hỗ trợ Python

Cài đặt virtualenv cho nền tảng của bạn bằng cách làm theo hướng dẫn Cài đặt .

Bạn có thể xác minh rằng quá trình cài đặt thành công bằng cách gọi virtualenv -h .

tập tin CTS

Tải xuống và mở các gói CTS từ Bản tải xuống của Bộ kiểm tra tương thích phù hợp với phiên bản Android của thiết bị của bạn và tất cả các giao diện nhị phân ứng dụng (ABI) mà thiết bị của bạn hỗ trợ.

Tải xuống và mở phiên bản mới nhất của tệp phương tiện CTS .

Phát hiện thiết bị

Thực hiện theo bước này để thiết lập hệ thống phát hiện thiết bị của bạn .

Giới hạn bộ nhớ

Bạn có thể muốn tăng bộ nhớ tối đa có sẵn trong quá trình chạy thử trong tập lệnh cts-tradefed . Tham khảo ví dụ CL để biết thêm thông tin.

Thiết lập thiết bị Android

Bản dựng của người dùng

Thiết bị tương thích được định nghĩa là thiết bị có bản dựng có chữ ký của người dùng/khóa phát hành. Thiết bị của bạn phải chạy hình ảnh hệ thống dựa trên bản dựng người dùng tương thích đã biết (Android 4.0 trở lên) từ Tên mã, Thẻ và Số bản dựng .

Thuộc tính xây dựng cấp API đầu tiên

Một số yêu cầu CTS nhất định phụ thuộc vào bản dựng mà thiết bị được vận chuyển ban đầu. Ví dụ: các thiết bị ban đầu được cung cấp với phiên bản cũ hơn có thể bị loại trừ khỏi các yêu cầu hệ thống áp dụng cho các thiết bị đi kèm phiên bản sau.

Để cung cấp thông tin này cho CTS, nhà sản xuất thiết bị có thể đã xác định thuộc tính tại thời điểm xây dựng ro.product.first_api_level . Giá trị của thuộc tính này là cấp độ API đầu tiên mà thiết bị được tung ra thị trường.

Các nhà sản xuất thiết bị có thể sử dụng lại cách triển khai cơ bản chung để ra mắt sản phẩm mới dưới dạng bản nâng cấp của sản phẩm hiện có trong cùng một nhóm thiết bị. Nhà sản xuất thiết bị có thể tùy ý đặt cấp độ API của sản phẩm hiện có thành ro.product.first_api_level để áp dụng các yêu cầu nâng cấp cho CTS và Treble/VTS.

Nhà sản xuất thiết bị có thể xác định PRODUCT_SHIPPING_API_LEVEL trong tệp device.mk của họ để đặt thuộc tính này, như trong ví dụ sau:

# 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

Cấp API đầu tiên dành cho Android 9 trở lên

Đối với các thiết bị chạy Android 9 trở lên, hãy đặt thuộc tính ro.product.first_api_level thành giá trị hợp lệ từ Codenames, Tags và Build Numbers .

Cấp API đầu tiên dành cho Android 8.x trở xuống

Đối với các thiết bị chạy trên Android 8.x trở xuống, hãy bỏ đặt (xóa) thuộc tính ro.product.first_api_level cho bản dựng đầu tiên của sản phẩm. Đối với tất cả các bản dựng tiếp theo, hãy đặt ro.product.first_api_level thành giá trị cấp API chính xác. Điều này cho phép thuộc tính xác định chính xác một sản phẩm mới và lưu giữ thông tin về cấp độ API đầu tiên của sản phẩm. Nếu cờ không được đặt, Android sẽ gán Build.VERSION.SDK_INT cho ro.product.first_api_level .

Gói miếng chêm CTS

Android 10 trở lên bao gồm định dạng gói có tên APEX . Để chạy thử nghiệm CTS cho API quản lý APEX (chẳng hạn như cập nhật lên phiên bản mới hoặc báo cáo các APEX đang hoạt động), bạn phải cài đặt sẵn gói CtsShimApex trên phân vùng /system .

Kiểm tra xác thực miếng chêm APEX xác minh việc triển khai CtsShimApex .

yêu cầu ro.apex.updatetable

  • Nếu thuộc tính ro.apex.updatable được đặt thành true thì CtsShimApex là bắt buộc đối với tất cả các thiết bị hỗ trợ quản lý gói APEX.

  • Nếu thuộc tính ro.apex.updatable bị thiếu hoặc chưa được đặt thì không cần phải cài đặt sẵn CtsShimApex trên thiết bị.

Kiểm tra xác thực miếng chêm APEX xác minh việc triển khai CtsShimApex .

Cài đặt sẵn và tải trước CtsShim

Bắt đầu từ Android 11, CtsShimApex chứa hai ứng dụng dựng sẵn (được xây dựng từ nguồn xây dựng ), không chứa bất kỳ mã nào ngoại trừ tệp kê khai. CTS sử dụng các ứng dụng này để kiểm tra các đặc quyền và quyền.

Nếu thiết bị không hỗ trợ quản lý gói APEX (nghĩa là thuộc tính ro.apex.updatable bị thiếu hoặc chưa được đặt) hoặc nếu thiết bị đang chạy phiên bản 10 trở xuống thì phải cài đặt sẵn hai ứng dụng dựng sẵn trong hệ thống riêng biệt.

Nếu APEX được hỗ trợ, các bản cài đặt sẵn cho bản phát hành thích hợp phải được đặt ở dạng /system/apex/com.android.apex.cts.shim.apex .

Nếu sử dụng các ứng dụng dựng sẵn thông thường, CtsShimCtsShimPriv cho bản phát hành thích hợp phải được đặt lần lượt là /system/app/CtsShimPrebuilt.apk/system/priv-app/CtsShimPrivPrebuilt.apk .

Bảng sau liệt kê các bản cài đặt sẵn và bản tải trước có sẵn cho từng phiên bản và kiến ​​trúc thiết bị.

Phiên bản thiết bị Cài đặt sẵn
(nếu APEX được hỗ trợ)
Tải trước
CÁNH TAY x86 CÁNH TAY x86
Android 14 android14-arm-phát hành phát hành android14-x86 android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

Android 13 android13-arm-phát hành phát hành android13-x86 android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

Android 12 android12-arm-phát hành phát hành android12-x86 android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Android 11 android11-arm-phát hành phát hành android11-x86 android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Android 10 phát hành android10 android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

Android 9, O và O-MR1 không áp dụng không áp dụng arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

Để vượt qua các bài kiểm tra, hãy tải trước ứng dụng vào các thư mục thích hợp trên hình ảnh hệ thống mà không cần ký lại ứng dụng.

Ứng dụng mẫu

Android 9 đã giới thiệu API di động mở. Đối với các thiết bị báo cáo nhiều thành phần bảo mật, CTS sẽ thêm các trường hợp thử nghiệm để xác thực hoạt động của API di động mở. Các trường hợp thử nghiệm này yêu cầu cài đặt một lần một applet mẫu vào Phần tử bảo mật (eSE) được nhúng của DUT hoặc vào thẻ SIM được DUT sử dụng. Có thể tìm thấy applet mẫu eSEapplet mẫu SIM trong AOSP.

Xem Kiểm tra CTS cho phần tử bảo mật để biết thêm thông tin chi tiết về các trường hợp kiểm tra API di động mở và các trường hợp kiểm tra Kiểm soát truy cập.

Yêu cầu lưu trữ

Các bài kiểm tra căng thẳng về phương tiện truyền thông CTS yêu cầu các video clip phải nằm trên bộ nhớ ngoài ( /sdcard ). Hầu hết các clip đều đến từ Big Buck Bunny , được Blender Foundation giữ bản quyền theo giấy phép Creative Commons Ghi công 3.0 .

Dung lượng cần thiết tùy thuộc vào độ phân giải phát lại video tối đa được thiết bị hỗ trợ. Xem phần 5 trong tài liệu Định nghĩa tương thích với Android để biết phiên bản nền tảng của các độ phân giải được yêu cầu.

Dưới đây là các yêu cầu về dung lượng lưu trữ theo độ phân giải phát lại video tối đa:

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

Màn hình và lưu trữ

  • Bất kỳ thiết bị nào không có màn hình nhúng đều cần được kết nối với màn hình.
  • Nếu máy có khe cắm thẻ nhớ thì cắm thẻ SD trống vào. Sử dụng thẻ SD hỗ trợ bus tốc độ cực cao (UHS) với dung lượng SDHC hoặc SDXC hoặc thẻ có tốc độ ít nhất là cấp 10 trở lên để đảm bảo rằng thẻ có thể vượt qua CTS.

  • Nếu thiết bị có khe cắm thẻ SIM, hãy cắm thẻ SIM đã kích hoạt vào từng khe cắm. Nếu thiết bị hỗ trợ SMS, mỗi thẻ SIM phải có trường số riêng được điền. Đối với các thiết bị chạy Android 12 trở lên, tất cả các thẻ SIM phải hỗ trợ lưu trữ số quay số viết tắt (ADN). Thẻ GSM và USIM có tệp dành riêng cho viễn thông (DF Telecom ) đáp ứng yêu cầu này.

Nhà phát triển UICC

Để chạy thử nghiệm API của nhà cung cấp dịch vụ CTS, thiết bị cần sử dụng SIM có đặc quyền của nhà cung cấp dịch vụ CTS đáp ứng các yêu cầu được chỉ định trong Chuẩn bị UICC .

Cấu hình thiết bị Android

  1. Khôi phục dữ liệu gốc cho thiết bị: Cài đặt > Sao lưu & đặt lại > Đặt lại dữ liệu gốc .

  2. Đặt ngôn ngữ thiết bị của bạn sang tiếng Anh ( Hoa Kỳ ): Cài đặt > Ngôn ngữ & phương thức nhập > Ngôn ngữ .

  3. Nếu thiết bị hỗ trợ tùy chỉnh phông chữ mặc định, hãy đặt họ phông chữ sans-serif mặc định thành Roboto (họ phông chữ sans-serif mặc định được sử dụng trong các bản dựng AOSP).

  4. Bật cài đặt vị trí nếu có tính năng GPS hoặc Wi-Fi/mạng di động trên thiết bị: Cài đặt > Vị trí > Bật .

  5. Kết nối với mạng Wi-Fi hỗ trợ IPv6, có thể coi DUT như một máy khách bị cô lập (xem Môi trường vật lý ở trên) và có kết nối internet: Cài đặt > Wi-Fi .

  6. Đảm bảo rằng không có hình khóa hoặc mật khẩu nào được đặt trên thiết bị: Cài đặt > Bảo mật > Khóa màn hình > Không có .

  7. Bật gỡ lỗi USB trên thiết bị của bạn: Cài đặt > Tùy chọn nhà phát triển > Gỡ lỗi USB .

  8. Đặt thời gian ở định dạng 12 giờ: Cài đặt > Ngày & giờ > Sử dụng định dạng 24 giờ > Tắt .

  9. Đặt thiết bị ở chế độ luôn bật: Cài đặt > Tùy chọn nhà phát triển > Luôn bật > Bật .

  10. Chỉ trong Android 5.x và 4.4.x , hãy đặt thiết bị để cho phép các vị trí mô phỏng: Cài đặt > Tùy chọn nhà phát triển > Cho phép vị trí mô phỏng > Bật .

  11. Trong Android 4.2 trở lên , hãy tắt xác minh ứng dụng USB: Cài đặt > Tùy chọn nhà phát triển > Xác minh ứng dụng qua USB > Tắt .

  12. Trong Android 13 trở lên , hãy đặt thiết bị để cho phép modem mô phỏng: Cài đặt > Tùy chọn nhà phát triển > Cho phép Modem mô phỏng > Bật .

  13. Khởi chạy trình duyệt và loại bỏ mọi màn hình khởi động/thiết lập.

  14. Kết nối máy tính để bàn sẽ được sử dụng để kiểm tra thiết bị bằng cáp USB.

  15. Trước khi chạy CTS, hãy đặt Roboto2 làm phông chữ sans-serif bằng cách sử dụng cài đặt khả năng chi trả (không bị ẩn) có thể truy cập của người dùng.

Cài đặt tập tin

Cài đặt và định cấu hình các ứng dụng trợ giúp trên thiết bị.

  1. Thiết lập thiết bị của bạn theo phiên bản CTS của bạn:

    • Phiên bản CTS 2.1 R2 đến 4.2 R4: Thiết lập thiết bị (hoặc trình mô phỏng) của bạn để chạy kiểm tra khả năng truy cập với: adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      Trên thiết bị, bật ủy quyền: Cài đặt > Trợ năng > Trợ năng > Ủy quyền dịch vụ trợ năng .

    • Phiên bản CTS 6.x trở xuống: Trên các thiết bị khai báo android.software.device_admin , hãy thiết lập thiết bị của bạn để chạy thử nghiệm quản trị thiết bị bằng cách sử dụng: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      Trong Cài đặt > Bảo mật > Chọn quản trị viên thiết bị , hãy bật hai quản trị viên thiết bị android.deviceadmin.cts.CtsDeviceAdminReceiver* . Đảm bảo rằng android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver và mọi quản trị viên thiết bị được tải sẵn khác vẫn bị vô hiệu hóa.

  2. Sao chép các tập tin media CTS vào thiết bị như sau:

    1. Điều hướng ( cd ) đến đường dẫn nơi các tệp phương tiện được tải xuống và giải nén.
    2. Thay đổi quyền của tệp: chmod u+x copy_media.sh

    3. Sao chép các tập tin cần thiết:

      • Để sao chép clip có độ phân giải 720x480, hãy chạy:

        ./copy_media.sh 720x480
        
      • Nếu bạn không chắc chắn về độ phân giải tối đa, hãy sao chép tất cả các tệp:

        ./copy_media.sh all
        
      • Nếu có nhiều thiết bị trong adb, hãy thêm tùy chọn nối tiếp ( -s ) của một thiết bị cụ thể vào cuối. Ví dụ: để sao chép lên tới 720x480 vào thiết bị có sê-ri 1234567, hãy chạy:

        ./copy_media.sh 720x480 -s 1234567