Thiết lập CTS

Để 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, BROADCASTMULTICAST 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Đ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)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 AndroidBộ 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 adbaapt2 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:

  1. Lấy cấp độ API Android trên thiết bị bằng cách chạy:

    adb shell getprop ro.build.version.sdk
    
  2. 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ành true, 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 CtsShimCtsShimPriv cho bản phát hành thích hợp phải được đặt là /system/app/CtsShimPrebuilt.apk/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-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

Android 13 android13-arm-release android13-x86-release android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

Android 12 android12-arm-release android12-x86-release android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Android 11 android11-arm-release android11-x86-release android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Android 10 bản phát hành android10 android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

Android 9, O và O-MR1 Không có thời gian Không có thời gian arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.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 eSEChươ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

  1. Đặ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.

  2. Đặ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ữ.

  3. 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ành Roboto (bộ phông chữ sans-serif mặc định dùng trong các bản dựng AOSP).

  4. 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.

  5. 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.

  6. Đả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ó.

  7. 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.

  8. Đặ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.

  9. Đặ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.

  10. 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.

  11. 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.

  12. 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.

  13. 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.

  14. 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.

  15. 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ị.

  1. 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ằng android.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.

  2. Sao chép các tệp đa phương tiện CTS vào thiết bị như sau:

    1. 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.
    2. Thay đổi quyền đối với tệp: chmod u+x copy_media.sh

    3. 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