Để 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ỳ thứ gì cụ thể và có thể là bất kỳ loại nào, bao gồm iBeacon, Eddystone hoặc thậm chí là các thiết bị mô phỏng đèn hiệu BLE.
máy ảnh
Khi chạy CTS máy ảnh, hãy sử dụng điều kiện ánh sáng bình thường với biểu đồ mẫu kiểm tra (chẳng hạn như mẫu bàn cờ). Đặt biểu đồ mẫu thử 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ác cảm biến của máy ảnh vào một cảnh có đủ ánh sáng để cho phép các cảm biến đang thử nghiệm đạt được và duy trì ở các khung hình mục tiêu được định cấu hình tối đa mỗi 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 do getCameraIdList
báo cáo 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. Mặt khác, các bài kiểm tra CTS 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 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 tương thích với 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 tín hiệu ngoài trời GPS/GNSS hoặc bạn có thể đặt DUT đủ gần cửa sổ để nó 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ợ phát đa hướng IP và có thể coi DUT là một máy khách biệt lập. Máy khách bị cô lập là cấu hình trong đó DUT không hiển thị các thông báo 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ó các thiết bị 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ố bài kiểm tra tùy thuộc vào IPv6, thì 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ờ UP
, BROADCAST
và MULTICAST
được đặt trên giao diện Wi-Fi. Giao diện Wi-Fi cần gán địa chỉ IPv4 và IPv6. Kiểm tra thuộc tính giao diện Wi-Fi bằng adb shell ifconfig
.
Wi-Fi RTT
Android bao gồm API Wi-Fi RTT cho khả năng Wi-Fi round trip time (RTT) . Điều này cho phép các thiết bị đo khoảng cách của chúng tới các đ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 (được đặt thành băng thông 40 MHz ở 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ị kiểm tra nhưng nên ở trong phạm vi 40 feet tính từ DUT. Một điểm truy cập thường là đủ.
Thiết lập 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ĐH 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ủ
Rất nên nâng cấp RAM của 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 trường hợp kiểm tra CTS tăng lên và tăng dự trữ không gian heap Java trong giao dịch.
ADB và AAPT
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) và Công cụ đóng gói tài sản Android (AAPT) và thêm vị trí của những công cụ đó vào đường dẫn hệ thống của máy.
Để cài đặt ADB và AAPT, hãy tải xuống Công cụ nền tảng SDK Android và Cô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 adb
và aapt
nằm trong đường dẫn hệ thống của bạn. Lệnh sau giả định rằng bạn đã tải gói lưu trữ xuống thư mục con có tên android-sdk
trong thư mục chính của mình:
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ộ kiểm tra tương thích Tải xuống 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ị
Làm theo bước để 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 khả dụng 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
Một thiết bị tương thích được định nghĩa là một thiết bị có bản dựng được ký bởi người dùng/khóa phát hành. Thiết bị của bạn phải đang 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ị ban đầu được vận chuyển cùng với. Ví dụ: các thiết bị ban đầu đi kèm với các bản dựng trước đó 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 với các bản dựng sau.
Để cung cấp thông tin này cho CTS, các 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 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 phổ biến để 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ị. Các nhà sản xuất thiết bị có thể tùy ý đặt cấp độ API của sản phẩm hiện tại thành ro.product.first_api_level
, để các yêu cầu nâng cấp được áp dụng 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ư minh họa 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 giá trị hợp lệ từ Tên mã, Thẻ và Số bản dựng .
Cấp API đầu tiên dành cho Android 8.x trở xuống
Đối với các thiết bị khởi 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 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ẽ chỉ định Build.VERSION.SDK_INT
cho ro.product.first_api_level
.
gói shim 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 trước gói CtsShimApex
trên phân vùng /system
.
Thử nghiệm xác thực tấm chêm APEX xác minh việc triển khai CtsShimApex
.
ro.apex.updatable yêu cầu
Nếu thuộc tính
ro.apex.updatable
được đặt thànhtrue
,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 không được đặt,CtsShimApex
không bắt buộc phải được cài đặt sẵn trên thiết bị.
Thử nghiệm xác thực tấm chêm APEX xác minh việc triển khai CtsShimApex
.
Cài đặt trước và tải trước CtsShim
Bắt đầu với Android 11, CtsShimApex
chứa hai ứng dụng dựng sẵn (được tạo từ nguồn bản 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 hạ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ì hai ứng dụng dựng sẵn phải được cài đặt sẵn trong hệ thống một cách 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 là /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, CtsShim
và CtsShimPriv
cho bản phát hành thích hợp phải được đặt lần lượt là /system/app/CtsShimPrebuilt.apk
và /system/priv-app/CtsShimPrivPrebuilt.apk
.
Bảng sau đây liệt kê các bản cài đặt sẵn 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 sẵn (nếu APEX được hỗ trợ) | tải trước | ||
---|---|---|---|---|
CÁNH TAY | x86 | CÁNH TAY | x86 | |
Android 13 | android13-arm-phát hành | android13-x86-phát hành | android13-arm-CtsShim.apk | android13-x86-CtsShim.apk |
Android 12 | android12-arm-phát hành | android12-x86-phát hành | android12-arm-CtsShim.apk | android12-x86-CtsShim.apk |
Android 11 | android11-arm-phát hành | android11-x86-phát hành | android11-arm-CtsShim.apk | android11-x86-CtsShim.apk |
Android 10 | android10-phát hành | 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 tra, hãy tải trước ứng dụng vào thư mục thích hợp trên ảnh hệ thống mà không cần ký lại ứng dụng.
Applet mẫu
Android 9 đã giới thiệu Open Mobile APIs. Đối với các thiết bị báo cáo nhiều yếu tố bảo mật, CTS sẽ thêm các trường hợp thử nghiệm để xác thực hành vi của Open Mobile APIs. Các trường hợp thử nghiệm này yêu cầu cài đặt một lần applet mẫu vào Phần tử bảo mật nhúng (eSE) của DUT hoặc vào thẻ SIM mà DUT sử dụng. Có thể tìm thấy applet mẫu eSE và applet 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 Open Mobile API 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 phương tiện 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 là từ Big Buck Bunny , được giữ bản quyền bởi 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 lại video tối đa được thiết bị hỗ trợ. Xem phần 5 trong tài liệu Định nghĩa 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 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: 1863 MB
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 thiết bị có khe cắm thẻ nhớ, hãy cắm 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 nhất là loại 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 với 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 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
Khôi phục cài đặt gốc cho thiết bị: Cài đặt > Sao lưu & đặt lại > Đặt lại về dữ liệu gốc .
Đặt ngôn ngữ của thiết bị sang tiếng Anh ( United States ): Cài đặt > Ngôn ngữ & phương thức nhập > Ngôn ngữ .
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ànhRoboto
(họ phông chữsans-serif
mặc định được sử dụng trong các bản dựng AOSP).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 .
Kết nối với mạng Wi-Fi hỗ trợ IPv6, có thể coi DUT là máy khách biệt lập (xem Môi trường vật lý ở trên) và có kết nối internet: Cài đặt > Wi-Fi .
Đảm bảo rằng không có kiểu 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ó .
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 .
Đặt thời gian thành định dạng 12 giờ: Cài đặt > Ngày & giờ > Sử dụng định dạng 24 giờ > Tắt .
Đặt thiết bị luôn tỉnh táo: Cài đặt > Tùy chọn nhà phát triển > Luôn tỉnh táo > Bật .
Chỉ trong Android 5.x và 4.4.x , hãy đặt thiết bị để cho phép vị trí giả: Cài đặt > Tùy chọn nhà phát triển > Cho phép vị trí giả > Bật .
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 .
Trong Android 13 trở lên , hãy đặt thiết bị để cho phép môđem mô phỏng: Cài đặt > Tùy chọn nhà phát triển > Cho phép Môđem mô phỏng > Bật .
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.
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.
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 ẩn) mà người dùng có thể truy cập.
tập tin cài đặt
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ị của bạn theo phiên bản CTS của bạn:
CTS phiên bản 2.1 R2 đến 4.2 R4: Thiết lập thiết bị của bạn (hoặc trình giả lập) để 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 > Dịch vụ trợ năng ủy quyền .
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ị , bật hai quản trị viên thiết bị
android.deviceadmin.cts.CtsDeviceAdminReceiver*
. Đảm bảo rằngandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
và bất kỳ quản trị viên thiết bị được tải trước nào khác vẫn bị vô hiệu hóa.
Sao chép các tệp phương tiện CTS vào thiết bị như sau:
- Điều hướng (
cd
) đến đường dẫn nơi tệp phương tiện được tải xuống và giải nén. Thay đổi quyền của tệp:
chmod u+x copy_media.sh
Copy các file cần thiết:
Để sao chép các clip có độ phân giải lên tớ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 tối đa 720x480 vào thiết bị có sê-ri 1234567, hãy chạy:./copy_media.sh 720x480 -s 1234567
- Điều hướng (