Để 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ị đang được kiểm tra (DUT) hỗ trợ Bluetooth LE, hãy đặt ít nhất ba đèn hiệu Bluetooth LE trong vòng 5 mét từ DUT để kiểm tra quét Bluetooth LE. Các báo 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í các thiết bị mô phỏng báo hiệu BLE.
Máy ảnh
Khi chạy máy ảnh CTS, 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ác cảm biến máy ảnh vào cảnh có đủ ánh sáng để cho phép các cảm biến đang thử nghiệm tiếp cận và duy trì ở 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 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 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 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 để tiếp nhận 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ể 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ể trực tiếp nhận đủ tín hiệu GPS / GNSS.
Wi-Fi và IPv6
Các bài kiểm tra 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ột máy khách biệt lập là một cấu hình mà DUT không có khả nă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 riêng biệt mà không 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 mang IPv6 hoặc VPN để vượt qua một số bài kiểm tra 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 đặt cờ UP
, BROADCAST
và MULTICAST
trên giao diện Wi-Fi. Giao diện Wi-Fi cần được gán địa chỉ IPv4 và IPv6. Kiểm tra thuộc tính giao diện Wi-Fi với adb shell ifconfig
.
Wi-Fi RTT
Android bao gồm API Wi-Fi RTT cho khả năng Wi-Fi khứ hồi theo thời gian (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, 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 cạnh thiết bị thử nghiệm nhưng được khuyến nghị cách DUT trong vòng 40 feet. Một điểm truy cập thường là đủ.
Thiết lập máy tính để bàn
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ả Android Debug Bridge (adb) và Android Asset Packaging Tool (AAPT) và thêm vị trí của các công cụ đó vào đường dẫn hệ thống của máy tính của bạn.
Để cài đặt ADB, hãy tải xuống gói Công cụ SDK Android cho hệ điều hành của bạn, mở nó và làm theo hướng dẫn trong tệp README đi kèm. Để biết thông tin khắc phục sự cố, hãy xem Cài đặt công cụ SDK độc lập .
Đả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 đã mở kho lưu trữ gói trong thư mục chính của mình:
export PATH=$PATH:$HOME/android-sdk-linux/build-tools/version
Bộ phát triển Java dành 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 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 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ừ Bộ phần mềm kiểm tra khả năng tương thích Tải xuống phù hợp với phiên bản Android trên thiết bị của bạn và tất cả các giao diện nhị phân của ứ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 có sẵn trong quá trình chạy thử nghiệm trong tập lệnh cts-tradfed . Tham khảo ví dụ CL để biết thêm thông tin.
Thiết lập thiết bị Android
Người dùng xây dựng
Thiết bị tương thích được định nghĩa là 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 chạy hình ảnh hệ thống dựa trên phiên bản 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 xây dựng cấp API đầu tiên
Các 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 xuất xưởng 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ị xuất xưởng 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 khởi chạy thương mại.
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 để tung ra một sản phẩm mới như một 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ị. Các nhà sản xuất thiết bị có thể tùy chọn đặt cấp API của sản phẩm hiện có 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.
Các 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ư được hiển thị 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 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 hủy đặ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 chêm CTS
Android 10 trở lên bao gồm định dạng gói được gọi là APEX . Để chạy các bài kiểm tra CTS cho các 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 một /system
.
Kiểm tra xác nhận miếng đệm APEX xác minh việc triển khai CtsShimApex
.
yêu cầu 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ả 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, thìCtsShimApex
không bắt buộc phải được cài đặt sẵn trên thiết bị.
Kiểm tra xác nhận miếng đệm APEX xác minh việc triển khai CtsShimApex
.
CtsShim
cài đặt sẵn và tải trước
Bắt đầu với Android 11, CtsShimApex
chứa hai ứng dụng dựng sẵn (được tạo 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 hạn.
Nếu thiết bị không hỗ trợ quản lý gói APEX (có nghĩa 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, hai ứng dụng được tạo sẵn phải được cài đặt sẵn trong hệ thống riêng biệt.
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 12 | android12-arm-release trong /system/apex/com.android.apex.cts.shim.apex | android12-x86-phát hành trong /system/apex/com.android.apex.cts.shim.apex | android12-arm-CtsShim.apk theo /system/app/CtsShimPrebuilt.apk android12-arm-CtsShimPriv.apk | android12-x86-CtsShim.apk theo /system/app/CtsShimPrebuilt.apk android12-x86-CtsShimPriv.apk |
Android 11 | android11-arm-release trong /system/apex/com.android.apex.cts.shim.apex | android11-x86-phát hành trong /system/apex/com.android.apex.cts.shim.apex | android11-arm-CtsShim.apk theo /system/app/CtsShimPrebuilt.apk android11-arm-CtsShimPriv.apk | android11-x86-CtsShim.apk theo /system/app/CtsShimPrebuilt.apk android11-x86-CtsShimPriv.apk |
Android 10 | android10-phát hành trong /system/apex/com.android.apex.cts.shim.apex | android10-arm-CtsShim.apk theo /system/app/CtsShimPrebuilt.apk android10-arm-CtsShimPriv.apk | android10-x86-CtsShim.apk theo /system/app/CtsShimPrebuilt.apk android10-x86-CtsShimPriv.apk | |
Android 9, O và O-MR1 | N / A | N / A | arm-CtsShim.apk theo /system/app/CtsShimPrebuilt.apk arm-CtsShimPriv.apk | x86-CtsShim.apk theo /system/app/CtsShimPrebuilt.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.
Applet 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 phần tử an toàn, CTS thêm các trường hợp thử nghiệm để xác thực hành vi của các 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 được nhúng (eSE) của DUT hoặc vào thẻ SIM được DUT sử dụng. Bạn có thể tìm thấy applet mẫu eSE và applet mẫu SIM trong AOSP.
Xem CTS Test for Secure Element để biết thêm thông tin chi tiết về các trường hợp thử nghiệm API di động mở và các trường hợp thử nghiệm Kiểm soát truy cập.
Yêu cầu lưu trữ
Các bài kiểm tra ứng suất phương tiện CTS yêu cầu các video clip phải ở trên bộ nhớ ngoài ( /sdcard
). Hầu hết các clip là của Big Buck Bunny , được đăng ký 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 mà thiết bị hỗ trợ. 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 lưu trữ theo độ phân giải phát lại video tối đa:
- 480x360: 98 MB
- 720x480: 193 MB
- 1280x720: 606 MB
- 1920x1080: 1863 MB
Màn hình và bộ nhớ
- 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) 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 nó có thể vượt qua CTS.
Nếu thiết bị có các khe cắm thẻ SIM, hãy cắm một thẻ SIM đã kích hoạt vào mỗi khe. Nếu thiết bị hỗ trợ SMS, mỗi thẻ SIM phải được điền trường số riêng. Đối với các thiết bị chạy Android 12 trở lên, tất cả các thẻ SIM phải có hỗ trợ lưu trữ các 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.
Lập trình viên UICC
Để chạy các bài kiểm tra 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
Đặt lại dữ liệu ban đầu cho thiết bị: Cài đặt> Sao lưu & đặt lại> Đặt lại dữ liệu ban đầu.
Đặt ngôn ngữ thiết bị của bạn 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ợ 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 như một ứng dụng khách biệt lập (xem Môi trường thực ở trên) và có kết nối internet: Cài đặt> Wi-Fi .
Đả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ó .
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 ở đị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ị ở chế độ thức: 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 modem giả: Cài đặt> Tùy chọn nhà phát triển> Cho phép Modem giả> Bật .
Khởi chạy trình duyệt và loại bỏ bất kỳ màn hình khởi động / thiết lập nào.
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) của người dùng.
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ị 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 mô phỏng) để chạy kiểm tra khả năng tiếp cận với:
adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
Trên thiết bị, hãy bật ủy quyền: Cài đặt> Trợ năng> Trợ năng> Dịch vụ ủy quyền.
Phiên bản CTS 6.x hoặc thấp hơn: Trên 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 kiểm tra 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ằngandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
và bất kỳ quản trị viên thiết bị tải sẵn 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 mà các tệp phương tiện được tải xuống và giải nén. Thay đổi quyền đối với tệp:
chmod u+x copy_media.sh
Sao chép các tệp cần thiết:
Để sao chép các clip có độ phân giải lên đến 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 đến 720x480 vào thiết bị có sê-ri 1234567, hãy chạy:./copy_media.sh 720x480 -s 1234567
- Điều hướng (