Để chạy CTS, trước tiên, hãy chuẩn bị môi trường thực tế, máy tính để bàn của bạn và thiết bị Android mà bạn đang dùng để kiểm thử.
Môi trường thực tế
Báo hiệu Bluetooth LE
Nếu thiết bị đang được thử nghiệm (DUT) hỗ trợ Bluetooth LE, hãy đặt ít nhất 3 Báo hiệu Bluetooth LE trong phạm vi 5 mét từ DUT để kiểm tra 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ỳ nội dung cụ thể nào và có thể bất kỳ loại nào, kể cả iBeacon, Eddystone hoặc thậm chí là 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), một thiết bị khác UWB hỗ trợ phải được đặt đủ gần và định hướng để không bị ă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 cụ thể về vị trí và hướng. Để biết thông tin chi tiết về cách thiết lập, hãy xem Yêu cầu về UWB. Kiểm thử UWB phải được chạy theo cách thủ công, trong đó chỉ định trên dòng lệnh các thiết bị cách nhau một mét. Để biết thông tin chi tiết về tính năng phân đoạn là yêu cầu bắt buộc đối với chương trình kiểm thử này, hãy xem 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 với mẫu thử biểu đồ (chẳng hạn như mẫu bàn cờ). Đặt biểu đồ mẫu kiểm thử theo với khoảng cách lấy nét tối thiểu của DUT để đảm bảo rằng khoảng cách không quá gần với ống kính.
Hướng cảm biến của camera vào một cảnh có đủ ánh sáng để cho phép
cảm biến đang được thử nghiệm để đạt được và duy trì ở khung hình mục tiêu tối đa đã định cấu hình
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 của camera do
getCameraIdList
vì 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ợ máy ảnh bên ngoài, chẳng hạn như webcam USB, hãy cắm một camera khi chạy CTS. Nếu không, bài kiểm thử CTS sẽ không thành công.
Hệ thống định vị toàn cầu (GPS)/GNSS (Hệ thống vệ tinh định vị toàn cầu)
Nếu DUT hỗ trợ hệ thống định vị toàn cầu/vệ tinh điều hướng chung hệ thống GPS (GPS/GNSS), cung cấp tín hiệu GPS/GNSS cho DUT ở vị trí phù hợp mức tín hiệu để thu tín hiệu và tính toán vị trí GPS. Phần GPS phải tương thích với 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 trình mô phỏng vệ tinh hoặc bộ lặp GPS/GNSS cho tín hiệu ngoài trời, hoặc bạn có thể đặt DUT đủ gần một cửa sổ để hệ thống có thể trực tiếp nhận được đủ tín hiệu GPS/GNSS.
Wi-Fi và IPv6
Kiểm thử CTS yêu cầu mạng Wi-Fi hỗ trợ IPv4 và IPv6, có kết nối Internet kết nối với DNS đang hoạt động cho IPv4 và IPv6, hỗ trợ phát đa hướng IP, và có thể coi DUT là một ứng dụng riêng biệt. Ứng dụng riêng biệt là cấu hình trong đó DUT không có chế độ hiển thị đối với các thông báo truyền tin/nhiều mạng trên mạng con đó. Chiến dịch này xảy ra với cấu hình điểm truy cập Wi-Fi (AP) hoặc khi chạy DUT trên mạng con tách biệt 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ố kiểm thử tuỳ thuộc vào IPv6, bạn có thể sử dụng điểm truy cập Wi-Fi và một đường hầm IPv6.
Để truyền CTS, DUT cần đặt cờ UP
, BROADCAST
và MULTICAST
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ợ Tính năng đồng thời Wi-Fi STA/STA phải có nhiều mạng Wi-Fi (ít nhất là 2). Để vượt qua CTS, Wi-Fi mạng 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 bao gồm API RTT cho Wi-Fi cho thời gian khứ hồi (RTT) của Wi-Fi chức năng. Nhờ vậy, các thiết bị có thể đo lường khoảng cách đến các điểm truy cập bằng độ 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ị đề xuất hỗ trợ tính năng Tin nhắn theo thời gian thực (RTT) của Wi-Fi là Google Wifi và Điểm truy cập Fitlet2 của Compulab (được đặt thành băng thông 40 MHz ở tần số 5 GHz).
Các điểm truy cập sẽ được bật nguồn nhưng không yêu cầu kết nối mạng. Điểm truy cập không cần nằm bên cạnh thiết bị thử nghiệm nhưng nên trong phạm vi 40 bộ tính từ DUT. Thông thường, chỉ cần một điểm truy cập là đủ.
Thiết lập máy tính
Thận trọng: CTS hỗ trợ 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 (trở lên) trên máy chủ.
Nâng cấp máy chủ
Bạn nên nâng cấp RAM máy chủ CTS lên 128GB và ổ cứng HDD lên 256GB. Điều này là cần thiết để đáp ứng số lượng tăng lên của các trường hợp kiểm thử CTS và tăng sự dành riêng không gian vùng nhớ khối xếp Java trong thương mại.
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ả hai Cầu gỡ lỗi Android (adb) và Công cụ đóng gói tài nguyên Android (AAPT2) và 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 phiên bản mới nhất xuống Công cụ nền tảng SDK Android và Bộ công cụ xây dựng SDK Android trên Android Studio Trình quản lý SDK hoặc từ trình quản lý sdk công cụ dòng lệnh.
Đả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 thư mục con có tên
android-sdk
trong thư mục gốc của bạn:
export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>
Bộ phát triển Java dành cho Ubuntu
Cài đặt phiên bản thích hợp của Java Development Kit (JDK).
- Đối với Android 11, hãy cài đặt OpenJDK11.
- Đối với Android 9 và Android 10: 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 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
Cài đặt
.
Bạn có thể xác minh việc 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 trong Tải Bộ kiểm tra tính tương thích xuống khớp với thiết bị của bạn Phiên bản Android 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 đa phương tiện CTS.
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ố Các tệp CTS liên quan đến dòng chính, thêm ít nhất 10 phút vào thời gian chạy, tuỳ vào tốc độ mạng của bạn.
Để tránh thời gian chạy CTS bổ sung này, bạn có thể tải 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 Mainline CTS 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 các bước để thiết lập hệ thống để phát hiện thiết bị của bạn.
Hạn mức bộ nhớ
Bạn có thể muốn tăng dung lượng bộ nhớ tối đa có sẵn trong quá trình chạy thử nghiệm trong cts-tradefed tập lệnh. Tham khảo ví dụ về 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à một thiết bị có bản dựng đã ký bằng khoá phát hành/người dùng. Thiết bị của bạn phải chạy một hình ảnh hệ thống dựa trên chế độ tương thích đã biết bản dựng người dùng (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 CTS phụ thuộc vào bản dựng mà thiết bị ban đầu vận chuyển cùng. Ví dụ: Những thiết bị ban đầu sử dụng các phiên bản cũ có thể không được đưa vào các yêu cầu hệ thống áp dụng cho thiết bị cung cấp kèm theo dịch vụ các bản dựng sau này.
Để 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
thuộc tính là cấp API đầu tiên mà thiết bị được ra mắt về mặt thương mại.
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 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ó trên cùng một thiết bị
nhóm. Nhà sản xuất thiết bị có thể tuỳ ý đặt cấp độ API của
sản phẩm lên ro.product.first_api_level
, do đó, các yêu cầu về việc 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
để thiết lập 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 đối với Android 9 trở lên
Đối với các thiết bị chạy Android 9 trở lên, hãy đặt
ro.product.first_api_level
thành một 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ị chạy trên Android 8.x trở xuống, hãy bỏ đặt (xoá)
Thuộc tính ro.product.first_api_level
cho bản dựng đầu tiên của sản phẩm. Cho
tất cả các bản dựng tiếp theo, hãy đặt ro.product.first_api_level
ở cấp độ API chính xác
giá trị. Nhờ đó, tài sản này có thể xác định chính xác một sản phẩm mới và
giữ lại thông tin về cấp độ API đầu tiên của sản phẩm. Nếu cờ là
Chưa đặt, Android sẽ chỉ định 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 tên là
Hàm APEX. Chạy bài kiểm thử CTS để quản lý APEX
Khi dùng API (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 sẽ xác minh việc triển khai CtsShimApex
.
yêu cầu về ro.apex.updatable
Nếu bạn đặt thuộc tính
ro.apex.updatable
thànhtrue
, thìCtsShimApex
sẽ bắt buộc đối với mọi 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 thiết lập thìCtsShimApex
không bắt buộc phải cài đặt trước trên thiết bị.
Quy trình kiểm thử xác thực shim APEX sẽ xác minh việc triển khai CtsShimApex
.
Cài đặt sẵn và tải trước CtsShim
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 dùng các ứng dụng này để
kiểm tra đặc quyền và quyền.
Nếu thiết bị không hỗ trợ quản lý gói APEX (tức 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, 2 ứng dụng tạo sẵn này phải
được cài đặt trước trong hệ thống một cách riêng biệt.
Nếu APEX được hỗ trợ, bạn phải đặt các bản cài đặt sẵn cho bản phát hành thích hợp là /system/apex/com.android.apex.cts.shim.apex
.
Nếu bạn dùng ứng dụng tạo sẵn thông thường, hãy CtsShim
và CtsShimPriv
cho
bản phát hành thích hợp phải được đặt là /system/app/CtsShimPrebuilt.apk
và
/system/priv-app/CtsShimPrivPrebuilt.apk
.
Bảng sau đây liệt kê các lượt cài đặt sẵn và tải trước có sẵn cho mỗi lượt chuyển đổi cấu trúc và phiên bản thiết bị.
Phiên bản thiết bị | Cài đặt trước (nếu hỗ trợ APEX) |
Tải sẵn | ||
---|---|---|---|---|
ARM | x86 | ARM | x86 | |
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 | bản phát hành android10 | android10-arm-CtsShim.apk | android10-x86-CtsShim.apk | |
Android 9, O và O-MR1 | Không có thời gian | Không có thời gian | arm-CtsShim.apk | x86-CtsShim.apk |
Để vượt qua quy trình 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 ứng dụng.
Chương trình phụ trợ mẫu
Android 9 ra mắt Open Mobile API. Đối với các thiết bị báo cáo nhiều thông báo phần tử bảo mật, CTS thêm các trường hợp kiểm thử để xác thực hành vi của dịch vụ Open Mobile API. Các trường hợp kiểm thử này yêu cầu cài đặt một lần 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. Chiến lược phát hành đĩa đơn Chương trình phụ trợ mẫu eSE và Chương trình phụ trợ mẫu SIM có thể được tìm thấy trong AOSP (Dự án nguồn mở Android).
Xem bài viết Kiểm tra CTS cho phần tử bảo mật để thông tin chi tiết hơn về các trường hợp kiểm tra Open Mobile API và kiểm thử Kiểm soát quyền truy cập trường hợp.
Yêu cầu về dung lượng lưu trữ
Các bài kiểm tra về độ nghiêm trọng của nội dung nghe nhìn CTS yêu cầu phải chứa các đoạn video trên bộ nhớ ngoài
(/sdcard
). Hầu hết các đoạn video đều lấy từ
Big Buck Bunny là bản quyền
do Binder Foundation thực hiện theo
Giấy phép Creative Commons Ghi công 3.0.
Dung lượng bắt buộc phụ thuộc vào độ phân giải phát lại video tối đa được hỗ trợ bởi thiết bị. Xem phần 5 trong Tài liệu Định nghĩa về khả năng tương thích với Android cho 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 tối đa của video:
- 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 được nhúng đều cần phải kết nối với một màn hình.
Nếu thiết bị có khe cắm thẻ nhớ, hãy cắm thẻ SD trống. Dùng thẻ SD thẻ hỗ trợ bus tốc độ siêu cao (UHS) có dung lượng SDHC hoặc SDXC hoặc một thiết bị có tốc độ ít nhất là cấp 10 trở lên để đảm bảo có thể vượt qua CTS (Bộ kiểm tra tính tương thích)
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 có trường số riêng được điền sẵn. Đối với các thiết bị chạy Android 12 hoặc cao hơn, tất cả các thẻ SIM phải hỗ trợ lưu trữ quay số viết tắt số (ADN). Thẻ GSM và USIM có tệp chuyên dụng cho viễn thông (DFViễn thông) đá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ó nhà mạng CTS đáp ứng các yêu cầu được quy đị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 và đặt lại > Dữ liệu gốc đặt lại.
Đặt ngôn ngữ của thiết bị thành tiếng Anh (Hoa Kỳ): Settings > Ngôn ngữ & đầu vào > Ngôn ngữ.
Nếu thiết bị hỗ trợ tuỳ chỉnh phông chữ mặc định, hãy đặt chế độ mặc định Bộ phông chữ
sans-serif
thànhRoboto
(bộ phông chữsans-serif
mặc định dùng trong các bản dựng AOSP).Bật cài đặt vị trí nếu có GPS hoặc Wi-Fi/mạng di động tính năng trên thiết bị: Cài đặt > Vị trí > Đang bật.
Kết nối với mạng Wi-Fi hỗ trợ IPv6, có thể coi DUT là khách hàng tách biệt (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 > Khoá màn hình > Không có.
Bật tính năng Gỡ lỗi qua USB trên thiết bị: Cài đặt > Tuỳ chọn cho nhà phát triển > Gỡ lỗi qua USB.
Đặt thời gian thành định dạng 12 giờ: Cài đặt > Ngày & thời gian > Sử dụng chế độ 24 giờ định dạng > Đang tắt.
Đặt thiết bị ở chế độ không khoá màn hình: Cài đặt > Tuỳ chọn cho nhà phát triển > Tỉnh giấc > Đang bật.
Trong chỉ Android 5.x và 4.4.x, hãy đặt 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 > Đang bật.
Trong Android 4.2 trở lên, tắt tính năng xác minh ứng dụng USB: Cài đặt > Tuỳ chọn cho nhà phát triển > Xác minh ứng dụng qua USB > Đang 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 > Đang bật.
Khởi chạy trình duyệt và đóng 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 dùng để kiểm tra thiết bị bằng USB cáp.
Trước khi chạy CTS, hãy đặt Roboto2 làm phông chữ Sans Serif bằng cách sử dụng một người dùng chế độ cài đặt thành phần tương tác dễ tiếp cận (không bị ẩn).
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 kiểm thử khả năng hỗ trợ tiếp cận với:
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ị của bạn để chạy 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ị, bật hai thiết bị
android.deviceadmin.cts.CtsDeviceAdminReceiver*
Google Workspace. Đảm bảo rằngandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
và các mục khác các quản trị viên thiết bị được tải trước khác vẫn bị tắt.
Sao chép các tệp đa phương tiện CTS vào thiết bị như sau:
- Di chuyển (
cd
) đến đường dẫn nơi tải tệp đa phương tiện 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 đoạn video ở độ phân giải 720x480, hãy chạy mã:
./copy_media.sh 720x480
Nếu bạn không chắc 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 nối tiếp (
-s
) của một thiết bị cụ thể. Ví dụ: để sao chép lên 720x480 đến thiết bị có nối tiếp 1234567, hãy chạy:./copy_media.sh 720x480 -s 1234567
- Di chuyển (