Để chạy CTS, trước tiên, hãy chuẩn bị môi trường thực, máy tính và thiết bị Android bạn đang dùng để kiểm thử.
Môi trường thực tế
Beacon Bluetooth LE
Nếu thiết bị đang được kiểm thử (DUT) hỗ trợ Bluetooth LE, hãy đặt ít nhất 3 beacon Bluetooth LE trong phạm vi 5 mét của DUT để kiểm thử tính năng quét Bluetooth LE. Các beacon đó không cần được định cấu hình hoặc phát ra bất kỳ tín hiệu cụ thể nào và có thể là bất kỳ loại nào, kể cả iBeacon, Eddystone hay thậm chí là các thiết bị mô phỏng beacon BLE.
Băng tần siêu rộng
Nếu DUT hỗ trợ băng tần siêu rộng (UWB), thì một thiết bị khác hỗ trợ UWB phải được đặt đủ gần và hướng để không có vùng chết của ăng-ten và sóng vô tuyến. Đối với các thử nghiệm độ chính xác về khoảng cách, bạn cần có vị trí và hướng cụ thể. Để biết thông tin chi tiết về cách thiết lập, hãy xem Yêu cầu về UWB. Bạn phải chạy kiểm thử UWB theo cách thủ công, chỉ định trên dòng lệnh hai thiết bị cách nhau một mét. Để biết thông tin chi tiết về việc phân đoạn bắt buộc cho kiểm thử này, hãy xem phần Phân đoạn cục bộ.
Camera
Khi chạy CTS của camera, hãy sử dụng điều kiện ánh sáng bình thường kèm theo biểu đồ mẫu kiểm thử (chẳng hạn như mẫu bàn cờ). Đặt biểu đồ mẫu kiểm thử theo khoảng cách lấy nét tối thiểu của DUT để đảm bảo biểu đồ không quá gần với ống kính.
Hướng các cảm biến của máy ảnh đến một cảnh có đủ ánh sáng để cho phép các cảm biến đang kiểm thử tiếp cận và duy trì ở tốc độ khung hình mục tiêu tối đa đã định cấu hình trên mỗi giây (FPS) như 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 của máy ảnh do getCameraIdList
báo cáo vì kiểm thử lặp lại trên các thiết bị trong danh sách và đo lường hiệu suất riêng lẻ.
Nếu DUT hỗ trợ máy ảnh bên ngoài, chẳng hạn như webcam USB, hãy cắm máy ảnh bên ngoài khi chạy CTS. Nếu không, các bài kiểm thử CTS sẽ không thành công.
GPS/GNSS
Nếu DUT hỗ trợ tính năng của hệ thống định vị toàn cầu/hệ thống vệ tinh điều hướng toàn cục (GPS/GNSS), hãy cung cấp tín hiệu GPS/GNSS cho DUT ở cấp 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. Nếu không, tín hiệu GPS/GNSS có thể là bất kỳ loại nào, bao gồm cả trình 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ổ để có thể trực tiếp nhận đủ 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ợ truyền IP đa địa chỉ và có thể coi DUT là một ứng dụng riêng biệt. Máy khách tách biệt là một cấu hình mà DUT không có quyền truy cập vào thông báo truyền tin/nhiều 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ột mạng con riêng biệt mà không có thiết bị nào khác được kết nối.
Nếu 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ố bài kiểm thử tuỳ 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 đặt cờ UP
, BROADCAST
và MULTICAST
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 các 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 Đồng thời, cần phải 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.
Tin nhắn theo thời gian thực (RTT) của Wi-Fi
Android cung cấp API RTT của Wi-Fi cho tính năng thời gian trọn vòng (RTT) của Wi-Fi. Điều này cho phép các thiết bị đo lường khoảng cách đến điểm truy cập với độ chính xác từ 1 đến 2 mét, giúp tăng đáng kể độ chính xác của vị trí trong nhà. Hai thiết bị được đề xuất hỗ trợ Wi-Fi RTT là Google Wifi và điểm truy cập fitlet2 của Compulab (đặt băng thông thành 40 MHz ở 5 GHz).
Các điểm truy cập phải được bật nguồn nhưng không cần kết nối mạng. Các điểm truy cập không cần phải nằm bên cạnh thiết bị kiểm thử nhưng bạn nên đặt trong phạm vi 12 m của thiết bị kiểm thử (DUT). Thông thường, bạn chỉ cần một điểm truy cập.
Thiết lập máy tính để bàn
Thận trọng: CTS hỗ trợ máy Linux 64 bit. CTS không được hỗ trợ trên Windows OS hoặc MacOS.
FFMPEG
Cài đặt gói ffmpeg phiên bản 5.1.3 (trở lên) trên máy chủ lưu trữ.
Yêu cầu đối với máy chủ lưu trữ
Yêu cầu tối thiểu đối với máy chủ CTS là RAM 32 GiB và dung lượng ổ đĩa 256 GiB. Điều này là cần thiết để đáp ứng số lượng trường hợp kiểm thử CTS tăng lên và tăng mức đặt trước không gian vùng nhớ khối xếp Java trong Tradefed.
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 mới nhất của cả Cầu gỡ lỗi Android (adb) và Công cụ đóng gói tài nguyên Android (AAPT2), đồng thời thêm vị trí của các công cụ đó vào đường dẫn hệ thống của máy.
Để cài đặt ADB và AAPT2, hãy tải Bộ công cụ nền tảng SDK Android và Bộ công cụ xây dựng SDK Android mới nhất xuống 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 adb
và aapt2
nằm trong đường dẫn hệ thống của bạn. Lệnh sau đây giả định rằng bạn đã tải các tệp lưu trữ gói xuống một thư mục con có tên là android-sdk
trong thư mục gốc:
export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>
Bộ phát triển Java cho Ubuntu
Cài đặt phiên bản thích hợp của Bộ 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 thông tin chi tiết, hãy xem các yêu cầu đối với 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 CTS
Tải xuống và mở các gói CTS từ phần Tải xuống bộ kiểm thử khả năng tương thích khớp với phiên bản Android của thiết bị và tất 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 các tệp nội dung nghe nhìnCTS.
Tải các tệp CTS liên quan đến Mainline xuống (không bắt buộc)
Khi bạn chạy phiên bản CTS lần đầu tiên, CTS sẽ tự động tải một số tệp CTS liên quan đến Mainline xuống, điều này sẽ làm tăng thời gian chạy thêm ít nhất 10 phút, tuỳ thuộc vào tốc độ mạng của bạn.
Để tránh thời gian chạy CTS tăng thêm này, bạn có thể tải các tệp CTS liên quan đến Mainline xuống trước khi chạy phiên bản CTS bằng cách làm theo các hướng dẫn sau:
Lấy cấp độ API Android trên thiết bị bằng cách chạy:
adb shell getprop ro.build.version.sdk
Làm theo hướng dẫn trong tập lệnh
download_mcts.sh
để tải các tệp CTS chính xuống.Quá trình tải xuống sẽ mất ít nhất 10 phút, tuỳ thuộc vào tốc độ mạng của bạn.
Phát hiện thiết bị
Làm theo bước để thiết lập hệ thống nhằm phát hiện thiết bị của bạn.
Giới hạn bộ nhớ
Bạn nên tăng bộ nhớ tối đa có sẵn trong quá trình chạy kiểm thử trong tập lệnh cts-tradefed. Hãy tham khảo CL mẫu để biết thêm thông tin.
Thiết lập thiết bị Android
Bản dựng do người dùng tạo
Thiết bị tương thích được xác định là thiết bị có bản dựng được người dùng/khoá phát hành ký. 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 (Android 4.0 trở lên) từ Tên mã, Thẻ và Số bản dựng.
Thuộc tính bản dựng cấp độ API đầu tiên
Một số yêu cầu nhất định của CTS phụ thuộc vào bản dựng mà thiết bị ban đầu được vận chuyển. Ví dụ: các thiết bị ban đầu được vận chuyển với các bản dựng 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ị được vận chuyển với các bản dựng mới hơn.
Để 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 thời gian 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 ra mắt công khai.
Nhà sản xuất thiết bị có thể sử dụng lại phương thức triển khai cơ bản phổ biến để ra mắt một sản phẩm mới dưới dạng bản nâng cấp của một 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ể tuỳ ý đặ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
để đặ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 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 một giá trị hợp lệ trong phần Tên mã, thẻ và số bản dựng.
Cấp độ API đầu tiên cho Android 8.x trở xuống
Đối với các thiết bị chạy Android 8.x trở xuống, hãy huỷ thiết lập (xoá) 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ờ này chưa được đặt, Android sẽ gán Build.VERSION.SDK_INT
cho ro.product.first_api_level
.
Gói shim CTS
Android 10 trở lên có một định dạng gói có tên là APEX. Để chạy các kiểm thử 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 trước gói CtsShimApex
trên phân vùng /system
.
Quy trình kiểm thử xác thực shim APEX xác minh việc triển khai CtsShimApex
.
Yêu cầu về ro.apex.updatable
Nếu thuộc tính
ro.apex.updatable
được đặt thànhtrue
, thìCtsShimApex
là bắt buộc đối với tất cả thiết bị hỗ trợ tính năng quản lý gói APEX.Nếu thuộc tính
ro.apex.updatable
bị thiếu hoặc không được đặt, thì bạn không bắt buộc phải cài đặt trướcCtsShimApex
trên thiết bị.
Quy trình kiểm thử xác thực shim APEX xác minh việc triển khai CtsShimApex
.
CtsShim cài đặt trước và tải trước
Kể từ Android 11, CtsShimApex
chứa hai ứng dụng tạo sẵn (được tạo từ nguồn bản dựng) không chứa mã nào ngoại trừ tệp kê khai. CTS sử dụng các ứng dụng này để kiểm thử các đặc quyền và quyền.
Nếu thiết bị không hỗ trợ tính năng quản lý gói APEX (tức là thuộc tính ro.apex.updatable
bị thiếu hoặc không được đặt) hoặc nếu thiết bị đang chạy phiên bản 10 trở xuống, thì hai ứng dụng tạo sẵn phải được cài đặt sẵn trong hệ thống riêng biệt.
Nếu APEX được hỗ trợ, thì các bản cài đặt trước cho bản phát hành thích hợp phải được đặt là /system/apex/com.android.apex.cts.shim.apex
.
Nếu sử dụng các ứng dụng tạo sẵn thông thường, bạn phải đặt CtsShim
và CtsShimPriv
cho bản phát hành thích hợp lần lượt là /system/app/CtsShimPrebuilt.apk
và /system/priv-app/CtsShimPrivPrebuilt.apk
.
Bảng sau đây liệt kê các ứng dụng cài đặt trước và tải trước có sẵn cho từng phiên bản và cấu trúc thiết bị.
Phiên bản thiết bị | Cài đặt trước (nếu APEX được hỗ trợ) |
Tải sẵn | ||
---|---|---|---|---|
ARM | x86 | ARM | x86 | |
Android 15 | android15-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 và O-MR1 | Không áp dụng | Không áp dụng | arm-CtsShim.apk | x86-CtsShim.apk |
Để vượt qua các bài kiểm thử, hãy tải trước cá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 các ứng dụng.
Trình đơn con mẫu
Android 9 đã ra mắt Open Mobile API. Đối với các thiết bị báo cáo nhiều phần tử bảo mật, CTS sẽ thêm các trường hợp kiểm thử để xác thực hành vi của các API Di động mở. Các trường hợp kiểm thử này yêu cầu cài đặt một lần một chương trình phụ trợ mẫu vào Phần tử bảo mật (eSE) được nhúng của DUT hoặc vào thẻ SIM mà DUT sử dụng. Bạn có thể tìm thấy trình đơn con mẫu eSE và trình đơn con mẫu SIM trong AOSP.
Hãy xem phần Kiểm thử 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 thử API di động mở và các trường hợp kiểm thử Kiểm soát truy cập.
Yêu cầu về bộ nhớ
Các bài kiểm thử căng thẳng về nội dung nghe nhìn của CTS yêu cầu các đoạn video phải nằm trên bộ nhớ ngoài (/sdcard
). Hầu hết các đoạn video đều lấy từ Big Buck Bunny, thuộc bản quyền của Blender Foundation theo giấy phép Creative Commons Attribution 3.0.
Dung lượng cần thiết phụ thuộc vào độ phân giải phát video tối đa mà thiết bị hỗ trợ. Hãy xem phần 5 trong tài liệu Định nghĩa về khả năng tương thích của Android để biết phiên bản nền tảng của các độ phân giải bắt buộc.
Dưới đây là các yêu cầu về bộ nhớ theo độ phân giải phát video tối đa:
- 480x360: 98 MB
- 720x480: 193 MB
- 1280x720: 606 MB
- 1920x1080: 1863 MB
Màn hình và bộ nhớ
- Mọi thiết bị không có màn hình tích hợp đều cần được kết nối với màn hình.
Nếu thiết bị có khe cắm thẻ nhớ, hãy cắm một thẻ SD trống. Sử dụng thẻ SD hỗ trợ bus tốc độ cực cao (UHS) có dung lượng SDHC hoặc SDXC hoặc thẻ có tốc độ tối thiểu là lớp 10 trở lên để đảm bảo 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. Nếu thiết bị hỗ trợ SMS, thì mỗi thẻ SIM phải điền sẵn trường số riêng. Đối với các thiết bị chạy Android 12 trở lên, tất cả thẻ SIM phải hỗ trợ lưu trữ số điện thoại rút gọn (ADN). Thẻ GSM và USIM có tệp dành riêng cho viễn thông (DFTelecom) đáp ứng yêu cầu này.
UICC dành cho nhà phát triển
Để chạy các bài kiểm thử API nhà mạng CTS, thiết bị cần dùng SIM có các đặc quyền của nhà mạng CTS, đáp ứng những yêu cầu nêu trong phần Chuẩn bị UICC.
Cấu hình thiết bị Android
Đặt lại dữ liệu về trạng thái ban đầu cho thiết bị: Cài đặt > Sao lưu và đặt lại > Đặt lại dữ liệu về trạng thái ban đầu.
Đặt ngôn ngữ của thiết bị thành tiếng Anh (Hoa Kỳ): Cài đặt > Ngôn ngữ và phương thức nhập > Ngôn ngữ.
Nếu thiết bị hỗ trợ tuỳ chỉnh phông chữ mặc định, hãy đặt bộ phông chữ
sans-serif
mặc định thànhRoboto
(bộ phông chữsans-serif
mặc định được dùng trong các bản dựng AOSP).Bật chế độ cài đặt vị trí nếu thiết bị có tính năng GPS hoặc Wi-Fi/mạng di động: Cài đặt > Vị trí > Bật.
Kết nối với một mạng Wi-Fi hỗ trợ IPv6, có thể coi DUT là một ứng dụng khách biệt lập (xem Môi trường thực tế ở trên) và có kết nối Internet: Cài đặt > Wi-Fi.
Đảm bảo bạn không đặt hình mở khoá hoặc mật khẩu khoá trên thiết bị: Cài đặt > Bảo mật > Phương thức khoá màn hình > Không có.
Bật tính năng Gỡ lỗi qua USB trên thiết bị: Settings > Developer options > USB debugging (Cài đặt > Tuỳ chọn cho nhà phát triển > Gỡ lỗi qua USB).
Đặt giờ theo định dạng 12 giờ: Cài đặt > Ngày và giờ > Sử dụng định dạng 24 giờ > Tắt.
Đặt thiết bị ở trạng thái thức: Cài đặt > Tuỳ chọn cho nhà phát triển > Ở trạng thái thức > bật.
Chỉ dành cho Android 5.x và 4.4.x, hãy thiết lập thiết bị để cho phép vị trí mô phỏng: Cài đặt > Tuỳ chọn cho nhà phát triển > Cho phép vị trí mô phỏng > Bật.
Trên Android 4.2 trở lên, hãy tắt tính năng xác minh ứng dụng qua USB: Cài đặt > Tuỳ chọn cho nhà phát triển > Xác minh ứng dụng qua USB > Tắt.
Trong Android 13 trở lên, hãy đặt thiết bị ở chế độ cho phép modem mô phỏng: Cài đặt > Tuỳ chọn cho nhà phát triển > Cho phép modem mô phỏng > Bật.
Chạy trình duyệt và đóng mọi màn hình khởi động/thiết lập.
Kết nối máy tính sẽ dùng để kiểm tra thiết bị bằng cáp USB.
Trước khi chạy CTS, hãy đặt Roboto2 làm phông chữ sans-serif bằng cách sử dụng chế độ cài đặt khả năng tiếp cận (không ẩn) mà người dùng có thể truy cập.
Cài đặt tệp
Cài đặt và định cấu hình các ứng dụng trợ giúp trên thiết bị.
Thiết lập thiết bị theo phiên bản CTS (Bộ kiểm tra tính tương thích):
CTS phiên bản 2.1 R2 đến 4.2 R4: Thiết lập thiết bị (hoặc trình mô phỏng) để chạy các bài kiểm thử hỗ trợ tiếp cận bằng:
adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
Trên thiết bị, hãy bật tính năng uỷ quyền: Cài đặt > Hỗ trợ tiếp cận > Hỗ trợ tiếp cận > Uỷ quyền dịch vụ hỗ trợ tiếp cận.
CTS phiên bản 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ị để chạy kiểm thử quản trị thiết bị bằng cách sử dụng:adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`
Trong phần 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ằngandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
và mọi quản trị viên thiết bị được tải trước khác vẫn bị vô hiệu hoá.
Sao chép các tệp đa phương tiện CTS vào thiết bị như sau:
- Chuyển đến (
cd
) đường dẫn nơi tải tệp phương tiện xuống và giải nén. Thay đổi quyền của tệp:
chmod u+x copy_media.sh
Sao chép các tệp cần thiết:
Để sao chép các đoạn video có độ phân giải tối đa là 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 tuỳ chọn số sê-ri (
-s
) của một thiết bị cụ thể vào cuối. Ví dụ: để sao chép lên đến 720x480 vào thiết bị có số sê-ri 1234567, hãy chạy:./copy_media.sh 720x480 -s 1234567
- Chuyển đến (