Trang này chứa hướng dẫn thiết lập và chạy các bài kiểm thử Android 16 QPR2 và Android 17 phía máy chủ của Trình xác minh CTS (CTS-V). Có 2 loại kiểm thử phía máy chủ lưu trữ: kiểm thử trên nhiều thiết bị (ra mắt trước Android 17) và kiểm thử tương tác (mới đối với Android 17):
- Kiểm thử trên nhiều thiết bị là các bài kiểm thử hoàn toàn tự động.
- Kiểm thử tương tác là kiểm thử bán tự động, yêu cầu bạn thực hiện một số bước thủ công trên thiết bị đang kiểm thử (DUT).
Ngoài các kiểm thử tương tác mới, chúng tôi đã chuyển đổi độ chính xác của phạm vi đo thủ công và các kiểm thử viễn thông thành kiểm thử nhiều thiết bị phía máy chủ, đồng thời các kiểm thử kết nối Wi-Fi hiện là bắt buộc.
Thiết lập các kiểm thử phía máy chủ lưu trữ
Hãy làm theo các bước sau để thiết lập các kiểm thử phía máy chủ (các kiểm thử trên nhiều thiết bị yêu cầu thiết lập bổ sung):
- Xác minh rằng máy tính của bạn đáp ứng các yêu cầu về hệ điều hành đối với CTS.
- Làm theo bước 2 và 5 của phần Cài đặt phần mềm máy tính để cài đặt và xác minh rằng adb, AAPT2 và Python đã được cài đặt đúng cách trên máy tính của bạn.
- Python phiên bản 3.11 trở lên. Để xác định phiên bản Python, hãy chạy
python3 --version. Nếu phiên bản thấp hơn 3.11, hãy cài đặt bản phát hành Python chính thức mới nhất. Để biết thêm thông tin, hãy xem phần Tải xuống củapython.org. - Một số kiểm thử yêu cầu máy chủ lưu trữ phải có mô-đun Python
venv. Trên các hệ thống Debian và Ubuntu, mô-đun này có thể không được cài đặt theo mặc định. Để xác định xem phiên bản Python của bạn có mô-đunvenvhay không, hãy chạypython3 -m venv venv. Nếu lệnh này không thành công, bạn sẽ thấy một thông báo lỗi. Làm theo lời nhắc để cài đặt góipython3.x-venv.
- Python phiên bản 3.11 trở lên. Để xác định phiên bản Python, hãy chạy
Nếu bạn chỉ chạy các kiểm thử tương tác phía máy chủ lưu trữ, hãy chuyển sang phần Chạy kiểm thử phía máy chủ lưu trữ. Tuy nhiên, nếu bạn muốn chạy kiểm thử trên nhiều thiết bị, hãy chuyển sang phần Thiết lập kiểm thử trên nhiều thiết bị phía máy chủ lưu trữ.
Thiết lập các kiểm thử trên nhiều thiết bị phía máy chủ lưu trữ
Hãy làm theo các bước sau để thiết lập các kiểm thử trên nhiều thiết bị ở phía máy chủ lưu trữ:
- Xác minh rằng máy tính của bạn đáp ứng các yêu cầu về hệ điều hành đối với CTS.
Làm theo bước 2 và 5 của phần Cài đặt phần mềm máy tính để cài đặt và xác minh rằng adb, AAPT2 và Python đã được cài đặt đúng cách trên máy tính của bạn.
- Python phiên bản 3.11 trở lên. Để xác định phiên bản Python, hãy chạy
python3 --version. Nếu phiên bản thấp hơn 3.11, hãy cài đặt bản phát hành Python chính thức mới nhất. Để biết thêm thông tin, hãy xem phần Tải xuống củapython.org. - Một số kiểm thử yêu cầu máy chủ lưu trữ phải có mô-đun Python
venv. Trên các hệ thống Debian và Ubuntu, mô-đun này có thể không được cài đặt theo mặc định. Để xác định xem phiên bản Python của bạn có mô-đunvenvhay không, hãy chạypython3 -m venv venv. Nếu lệnh này không thành công, bạn sẽ thấy một thông báo lỗi. Làm theo lời nhắc để cài đặt góipython3.x-venv.
- Python phiên bản 3.11 trở lên. Để xác định phiên bản Python, hãy chạy
Chuẩn bị 2 DUT phù hợp, mỗi DUT đều được thiết lập CTS-V.
- Để biết thông tin về cách thiết lập DUT, hãy xem bài viết Thiết lập DUT.
- Để biết hướng dẫn về cách thiết lập CTS-V, hãy xem phần Thiết lập.
Chuyển đến phần thiết lập cho loại kiểm thử của bạn:
- Đối với các kiểm thử NFC, hãy xem phần Thiết lập kiểm thử NFC.
- Đối với các bài kiểm thử kết nối AP Wi-Fi, hãy chuyển đến phần Thiết lập các bài kiểm thử kết nối AP Wi-Fi.
- Để biết các bài kiểm thử độ chính xác của tính năng đo khoảng cách, hãy xem phần Thiết lập các bài kiểm thử độ chính xác của tính năng đo khoảng cách.
- Để kiểm thử mô-đun CDM, hãy chuyển đến phần Thiết lập các kiểm thử tiêu chuẩn trên 2 thiết bị rồi chuyển đến phần Thiết lập các kiểm thử CDM.
Nếu kiểm thử của bạn không có trong danh sách này, hãy chuyển sang phần Thiết lập các kiểm thử tiêu chuẩn trên hai thiết bị.
Thiết lập kiểm thử NFC
Các bài kiểm thử NFC sử dụng một DUT và một chip NFC PN532.
Cách thiết lập các kiểm thử NFC:
- Mua một chip NFC PN532. Bạn nên dùng PN532 đa năng.
- Trên DUT, hãy chuyển đến ứng dụng Cài đặt.
- Bật NFC.
Đặt chip NFC:
Đối với điện thoại, hãy đặt đầu đọc NFC của DUT như minh hoạ trong Hình 1:

Hình 1. Vị trí của chip NFC.
Đối với các loại thiết bị khác, hãy đặt thẻ bên cạnh anten NFC của thiết bị.
Gắn chip NFC PN532 vào máy trạm kiểm thử bằng cáp USB.
Thiết lập các kiểm thử kết nối AP Wi-Fi
Các bài kiểm tra kết nối điểm truy cập Wi-Fi (AP) (CtsWifiConnectionTests) kiểm tra khả năng kết nối giữa DUT và AP. Bạn có thể thiết lập các thử nghiệm này theo 2 cách sau:
- Cách 1: Sử dụng mạng Wi-Fi hiện có mà bạn đã thiết lập cho CTS-V.
- Cách 2: Thiết lập một điểm truy cập (AP) có thể lập trình.
Đối với Android 17, bạn nên chọn phương án 2, nhưng không bắt buộc. Hai phần sau đây giải thích từng lựa chọn.
Cách 1: Sử dụng mạng Wi-Fi hiện có mà bạn đã thiết lập cho CTS-V
Lựa chọn 1 yêu cầu phải có một DUT Android trong phạm vi phủ sóng của mạng Wi-Fi. Nếu DUT nằm trong hộp chắn và không kết nối được với mạng Wi-Fi, hãy tháo DUT ra khỏi hộp chắn.
Cách 2: Thiết lập một AP có thể lập trình
Cách thiết lập một AP có thể lập trình cho các thử nghiệm kết nối Wi-Fi:
Mua và thiết lập Banana Pi R3 AP. Để biết thông tin về cách mua và thiết lập Banana Pi R3 AP, hãy xem phần Thiết lập Banana Pi BPI-R3 AP.
Không bắt buộc: Nếu không có hộp che chắn, bạn nên dùng hộp che chắn JTP-SR101. Mua hộp này bằng thông tin sau:
Dong Guan Zheng Sheng Electronics Technology Co., LTD
Bohui Industrial Park, Panlong Road, Liaobu Town, Dongguan City, Guangdong Province, Trung Quốc
Người liên hệ: Forest Pan
Email: forest.pan@jtpmak.cn
Điện thoại (Trung Quốc): +86 18676993556Kết nối DUT và AP với máy chủ, sau đó đặt vào hộp chắn sóng vô tuyến. DUT và AP phải cách nhau ít nhất 10 cm. Hình 2 cho thấy cấu hình này:

Hình 2. DUT và AP trong hộp chắn.
Sử dụng SSH để xác minh rằng máy chủ có thể truy cập vào AP.
Thiết lập các bài kiểm thử độ chính xác của phạm vi
Cách thiết lập các bài kiểm tra độ chính xác của phạm vi:
Đặt 2 DUT Android giống nhau cách nhau 1 mét, ở cùng độ cao, có đường ngắm thẳng và mặt sau của mỗi thiết bị hướng vào nhau. Hình 3 cho thấy hướng này:

Hình 3. Hướng của thiết bị.
Kết nối cả hai thiết bị với máy tính qua cáp USB.
Thiết lập các bài kiểm thử tiêu chuẩn trên 2 thiết bị
Đối với chế độ thiết lập mặc định cho 2 thiết bị:
- Đặt hai DUT Android giống nhau cách nhau khoảng 20 cm.
Nên dùng: Đặt cả hai thiết bị vào hộp chắn. Hộp khiên giúp cải thiện độ ổn định của quy trình kiểm thử và giúp gỡ lỗi dễ dàng hơn khi quy trình kiểm thử gặp lỗi.
Đối với các bài kiểm thử viễn thông, mỗi DUT phải có thẻ SIM và tín hiệu di động. Nếu DUT nằm trong hộp chắn, tín hiệu di động phải được ghép vào hộp. Nếu không, hãy di chuyển các thiết bị ra khỏi hộp chắn.
Không bắt buộc: Thiết lập một trình theo dõi OTA để gỡ lỗi Wi-Fi.
Thiết lập các kiểm thử CDM
Trường hợp kiểm thử test_permissions_sync() có hành vi khác nhau tuỳ thuộc vào loại bản dựng của các thiết bị mà trên đó quá trình kiểm thử được thực thi. Điều quan trọng là nhà sản xuất thiết bị gốc phải kiểm thử cả bản dựng có thể gỡ lỗi (userdebug hoặc eng) và bản dựng không thể gỡ lỗi (user) và các kiểm thử phải vượt qua cho cả hai bản dựng.
Miễn
Điều khoản CDD cho việc triển khai API đồng bộ hoá quyền chỉ yêu cầu API này có thể chuyển dữ liệu thành công giữa các thiết bị qua một kênh bảo mật. Vì việc triển khai kênh bảo mật không phải là yêu cầu tuân thủ CDD, nên bạn có thể bỏ qua kiểm thử này trên các bản dựng không gỡ lỗi (người dùng), nhưng chỉ khi bạn muốn chọn không hỗ trợ tính năng đồng bộ hoá quyền CDM.
Các kiểm thử phải vượt qua các bản dựng có thể gỡ lỗi mà không có ngoại lệ.
Điều kiện tiên quyết để kiểm thử trên các bản dựng không thể gỡ lỗi
Nếu bạn không được miễn, hãy xác minh rằng bạn đáp ứng các điều kiện tiên quyết sau.
Kênh bảo mật sử dụng AVF (AttestationVerificationFramework) để xác minh độ tin cậy của phần cứng. Chứng thực do cả hai bên tạo ra đều chứa một số thông tin về chính họ để xác minh rằng không có bất kỳ thay đổi trái phép nào trong hệ thống của họ. AVF kiểm tra các trạng thái sau đây trong quy trình xác minh:
- Thiết bị có quyền truy cập Internet
- Thiết bị sử dụng quy trình khởi động đã xác minh và bản dựng phải được ký bằng khoá phát hành, chứ không phải khoá phát triển
- Trình tải khởi động của thiết bị đã bị khoá. Để biết hướng dẫn chi tiết, hãy xem phần khoá trình tải khởi động
- Hệ điều hành, chế độ khởi động khoá và các bản vá của nhà cung cấp khoá đều được cập nhật trong vòng 12 tháng. Đừng sử dụng bản dựng cũ hơn một năm
- Quy trình chứng thực thiết bị được hỗ trợ bằng một trong các chứng chỉ gốc do nhà cung cấp phê duyệt. Chỉ định chứng chỉ gốc đáng tin cậy trong lớp phủ tài nguyên
vendor_required_attestation_certificates.xml.
Chạy kiểm thử phía máy chủ lưu trữ
Một số quy trình kiểm thử trên nhiều thiết bị (chẳng hạn như kiểm thử NFC) yêu cầu bạn thiết lập thêm. Đối với những kiểm thử yêu cầu thiết lập bổ sung, mỗi kiểm thử sẽ chạy riêng biệt. Đối với những kiểm thử không yêu cầu thiết lập thêm, bạn có thể chạy các kiểm thử trong một nhóm.
Trên máy trạm kiểm thử, hãy chạy bảng điều khiển
cts-v-hosttừ thư mục nơi gói zip CTS-V được giải nén:./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefedTrong ứng dụng CTS-V trên DUT, hãy nhấp vào Host-side Tests (Kiểm thử phía máy chủ). Hình 4 cho thấy các bài kiểm thử phía máy chủ lưu trữ trong ứng dụng CTS-V:
Hình 4. Các bài kiểm thử phía máy chủ lưu trữ trong ứng dụng CTS-V.
Một danh sách các mô-đun kiểm thử nhiều thiết bị phía máy chủ kiểm thử sẽ xuất hiện.
Trong bảng điều khiển máy chủ CTS-V, hãy dùng lệnh sau để chạy các kiểm thử trên nhiều thiết bị bằng chế độ thiết lập tiêu chuẩn gồm 2 thiết bị:
run cts-v-host-multidevice-defaultKết quả sẽ xuất hiện trong mỗi mô-đun kiểm thử trong ứng dụng CTS-V trên DUT. Các kiểm thử được đánh dấu màu xanh lục là đã vượt qua, các kiểm thử được đánh dấu màu đỏ là không vượt qua.
Hình 5 minh hoạ ví dụ về kết quả cho các kiểm thử CtsCompanionDeviceManager:
Hình 5. Kết quả kiểm thử nhiều thiết bị phía máy chủ trong ứng dụng CTS-V.
Trong bảng điều khiển máy chủ CTS-V, hãy dùng lệnh sau để chạy các kiểm thử tương tác:
run cts-v-host-interactiveKết quả sẽ xuất hiện trong mỗi mô-đun kiểm thử trong ứng dụng CTS-V trên DUT. Các kiểm thử được đánh dấu màu xanh lục là đã vượt qua, các kiểm thử được đánh dấu màu đỏ là không vượt qua.
Đối với mỗi kiểm thử yêu cầu thiết lập bổ sung, hãy chạy kiểm thử riêng bằng lệnh sau:
run cts-v-host -m test_module_nameVí dụ: để chạy các kiểm thử NFC, hãy dùng lệnh sau:
run cts-v-host -m CtsNfcHceMultiDeviceTestCasesKết quả sẽ xuất hiện trong mỗi mô-đun kiểm thử trong ứng dụng CTS-V trên DUT. Các kiểm thử được đánh dấu màu xanh lục là đã vượt qua, các kiểm thử được đánh dấu màu đỏ là không vượt qua.
Chạy thử nghiệm kết nối AP Wi-Fi
Bạn có thể chạy các quy trình kiểm thử kết nối AP Wi-Fi theo 2 cách sau:
- Cách 1: Sử dụng mạng Wi-Fi hiện có mà bạn đã thiết lập cho CTS-V.
- Cách 2: Thiết lập một AP có thể lập trình.
Cách 1: Sử dụng mạng Wi-Fi hiện có mà bạn đã thiết lập cho CTS-V
Cách chạy các kiểm thử kết nối Wi-Fi AP trên một mạng Wi-Fi hiện có:
Chỉnh sửa tệp cấu hình testbed (
WifiConnectionTestbed.yaml). Tệp này nằm trong thư mục nơi CTS-Verifier được giải nén. Ví dụ:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlThay đổi giá trị của các trường
wifi_ssidvàwifi_passwordthành SSID và mật khẩu của mạng Wi-Fi. Ví dụ sau đây cho thấy vị trí của các chế độ cài đặt này:TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' TestParams: use_programmable_ap: False wifi_ssid: WIFI-SSID wifi_password: WIFI-PASSWORDTrong bảng điều khiển máy chủ CTS-V, hãy chạy lệnh sau:
run cts-v-host -m CtsWifiConnectionTests
Cách 2: Chạy với AP có thể lập trình
Cách chạy các kiểm thử kết nối AP Wi-Fi trên một AP có thể lập trình:
Chỉnh sửa tệp cấu hình testbed (
WifiConnectionTestbed.yaml). Tệp này nằm trong thư mục nơi CTS-Verifier được giải nén. Ví dụ:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlThay đổi giá trị của
hostnamethành địa chỉ IP của AP, dựa trên chế độ cài đặt SSH cục bộ của bạn. Để xác định địa chỉ IP, hãy xem phần Tìm địa chỉ IP của điểm truy cập. Ví dụ sau đây cho thấy vị trí của chế độ cài đặthostname:TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' # Specify settings for the AP. OpenWrtDevice: - hostname: AP-IP skip_init_reboot: True TestParams: use_programmable_ap: TrueTrong bảng điều khiển máy chủ CTS-V, hãy chạy lệnh sau:
run cts-v-host -m CtsWifiConnectionTests
Chạy kiểm thử phía máy chủ USB
Android 17 bao gồm các bài kiểm thử phía máy chủ CTS-V qua USB. Các bài kiểm thử này yêu cầu adb chạy qua Wi-Fi.
Một số kiểm thử USB yêu cầu sử dụng máy chủ CTS-V để truy cập vào SystemAPI có các quyền mà ứng dụng CTS-V thông thường không thể truy cập. Các kiểm thử này không bị ràng buộc và yêu cầu sử dụng adb qua Wi-Fi.
Bạn cần có các phụ kiện Type-C sau đây nếu DUT hỗ trợ báo cáo loại BC 1.2 của đối tác cổng hoặc hồ sơ nguồn USB trong UsbPort.java:
- Bộ sạc USB Type-C Power Delivery (PD)
- Một cổng xuôi dòng (SDP) theo tiêu chuẩn sạc pin qua USB 1.2 (BC 1.2). Các cổng này chỉ cung cấp 500 mA hoặc 900 mA cho DUT và thường có trên các cổng USB của các bộ chia tín hiệu bên ngoài.
- Một cổng sạc hạ lưu USB BC 1.2 (CDP). Các cổng này có thể cung cấp 1,5 A dòng điện cho DUT và dữ liệu. Cổng Type-C trên máy tính xách tay hoặc máy tính thường là CDP.
- Một cổng sạc chuyên dụng (DCP) USB BC 1.2. Các cổng này có thể cung cấp dòng điện 1,5 A cho DUT mà không có dữ liệu. Bộ sạc USB Type-C PD trong danh sách này có thể là một DCP.
Kết nối DUT bằng
adbqua Wi-Fi. Để biết thông tin chi tiết về cách thiết lập, hãy xem phần Kết nối với một thiết bị qua Wi-Fi.Tháo thiết bị khỏi tất cả các cổng kết nối USB. Thử nghiệm sẽ thất bại nếu thiết bị được gắn vào bất kỳ máy chủ lưu trữ hoặc phụ kiện USB nào khi lệnh kiểm thử được chạy.
Chạy lệnh kiểm thử sau:
run cts-v-host -m CtsUsbTypecTestCases
Sau khi kiểm thử, kết quả sẽ xuất hiện trong ứng dụng CTS-V trong phần Kiểm thử phía máy chủ như minh hoạ trong các hình sau:
Hình 6. Các bài kiểm thử USB phía máy chủ trong ứng dụng CTS-V.
Hình 7. Bộ CtsUsbTypecTestCases trong ứng dụng USB CTS-V phía máy chủ.
Khắc phục sự cố trong các kiểm thử trên nhiều thiết bị
Phần này giúp bạn khắc phục các vấn đề thường gặp.
Không lấy được số điện thoại trong CtsTelecomTest
Nếu bạn nhận được thông báo lỗi Failed to get phone number for <serial>, hãy làm theo các bước sau:
Xác minh rằng mỗi DUT đều đã lắp thẻ SIM.
Nếu lỗi vẫn tiếp diễn, thì có thể thẻ SIM không hỗ trợ tính năng tự động truy xuất số. Trong trường hợp đó, bạn phải cung cấp rõ ràng số điện thoại trong lệnh.
Ví dụ: đối với DUT 1 (số sê-ri
17011FDEE0002N, số điện thoại555-0000) và DUT 2 (số sê-riR3CN90YNAR, số điện thoại555-1111), hãy thêm các đối số sau vào lệnhrun cts-v-host:--module-arg CtsTelecomTest:dut_serial:17011FDEE0002N \ --module-arg CtsTelecomTest:dut_phone_number:555-0000 \ --module-arg CtsTelecomTest:ref_phone_number:555-1111
Không có phản hồi từ máy chủ trong CtsMultiDeviceGenericRangingAccuracyTests
Nếu bạn nhận được thông báo lỗi sau, ứng dụng kiểm thử có thể bị đóng băng hoặc bị huỷ do quy trình quản lý quy trình nền dành riêng cho OEM trên một số thiết bị:
mobly.snippet.errors.ProtocolError: <AndroidDevice|Initiator> No response from server. Check the device logcat for crashes.
Để giải quyết vấn đề này, hãy tắt các hạn chế trong nền hoặc đưa các gói sau vào danh sách cho phép:
| Gói | Tên hiển thị |
|---|---|
com.google.snippet.uwb |
CtsUwbSnippetApp |
com.google.snippet.ranging |
CtsRangingSnippetApp |
com.google.snippet.bluetooth |
CtsBluetoothMultiDeviceSnippetApp |
com.google.android.mobly.snippet.bundled |
androidx.multidex.MultDexApplication |
Khắc phục lỗi Không có phản hồi cho GetFirmwareVersion trong các bài kiểm thử NFC
Nếu bạn nhận được thông báo verify_firmware_version RuntimeError: No response
for GetFirmwareVersion trong khi chạy các kiểm thử trên nhiều thiết bị, thì các kiểm thử không thể truy cập vào bảng NFC PN532.
Để khắc phục vấn đề này, hãy xác định đường dẫn nối tiếp mà bảng PN532 NFC sử dụng trên máy chủ của bạn, chẳng hạn như dev/ttyUSB1, sau đó chỉ định đường dẫn đó theo cách thủ công bằng cách sử dụng đối số --module-arg trong bảng điều khiển:
run cts-v-host -m CtsNfcHceMultiDeviceTestCases --module-arg CtsNfcHceMultiDeviceTestCases:pn532_serial_path:/dev/ttyUSB1
Khắc phục thông báo lỗi Giao dịch không thành công trong quá trình kiểm thử NFC
Nếu bạn nhận được thông báo Transaction failed, check device logs for more
information. cho tất cả các trường hợp kiểm thử NFC, thì có thể là do chip NFC của DUT không phát hiện được PN532.
Nếu bạn có nhiều thiết bị kết nối với máy chủ lưu trữ và một số thiết bị không có PN532 đặt ở trên cùng, thì có thể bạn đã chọn sai DUT. Để biết thêm thông tin, hãy xem bài viết Thiết lập các kiểm thử NFC.
Để khắc phục vấn đề này, hãy làm theo một trong những cách sau:
Đặt số sê-ri DUT chính xác trong lệnh kiểm thử phía máy chủ lưu trữ bằng cách sử dụng cờ
-s.Ngắt kết nối tất cả các thiết bị không phải DUT khỏi máy chủ lưu trữ.
Trường hợp kiểm thử CDM test_permissions_sync bị bỏ qua
Nếu bạn đang chạy thử nghiệm trên các thiết bị không thể gỡ lỗi, hãy xem bạn có được miễn trừ hay không. Nếu không, hãy xác minh rằng cả hai thiết bị đều đáp ứng các điều kiện tiên quyết.