Wi-Fi Direct

Chiến lược phát hành đĩa đơn Wi-Fi Direct (còn gọi là Wi-Fi P2P) cho phép các thiết bị hỗ trợ khám phá và kết nối trực tiếp với nhau bằng giao thức Wi-Fi Direct mà không cần truy cập Internet hoặc mạng di động. Chiến dịch này được xây dựng dựa trên Liên minh Wi-Fi (WFA) Thông số kỹ thuật của Wi-Fi Direct cho phép chia sẻ dữ liệu thông lượng cao giữa các thiết bị và ứng dụng đáng tin cậy không được kết nối mạng.

Ví dụ và nguồn

Để sử dụng tính năng này, nhà sản xuất thiết bị phải triển khai Wi-Fi Giao diện HAL của nhà cung cấp và Suppli CHO.

Trong Android 13, giao diện Supplipli sử dụng AIDL cho định nghĩa HAL. Ngang bằng Android 14 trở lên, giao diện Lớp trừu tượng phần cứng (HAL) của nhà cung cấp sử dụng AIDL. Trong Android 12 trở xuống, Suppli CHO và Giao diện HAL của nhà cung cấp được xác định bằng HIDL.

Các bề mặt HAL Wi-Fi sau đây là bắt buộc để sử dụng Wi-Fi Direct tính năng:

  • hardware/interfaces/wifi/aidl hoặc hardware/interfaces/wifi/1.3 trở lên
  • hardware/interfaces/wifi/supplicant/aidl hoặc hardware/interfaces/wifi/supplicant/1.2 trở lên

Triển khai

Nhà sản xuất thiết bị cần cung cấp cả khung và hỗ trợ HAL/phần mềm cơ sở:

  • Khung:
    • Mã AOSP (Dự án nguồn mở Android)
    • Bật Wi-Fi Direct: Yêu cầu cờ tính năng
  • Hỗ trợ HAL cho Wi-Fi Direct (P2P) (ngụ ý rằng hỗ trợ chương trình cơ sở)

Để triển khai tính năng này, các nhà sản xuất thiết bị triển khai Wi-Fi HIDL hoặc AIDL giao diện và bật cờ tính năng cho Wi-Fi Direct. Nằm ở device.mk trong device/<oem>/<device>, hãy sửa đổi biến môi trường PRODUCT_COPY_FILES để bao gồm hỗ trợ cho tính năng Wi-Fi Direct:

```
PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml
```

Tất cả các yêu cầu khác để hỗ trợ Wi-Fi Direct đều có trong AOSP.

Sắp xếp ngẫu nhiên MAC

Android yêu cầu địa chỉ thiết bịgiao diện Wi-Fi Direct được chọn ngẫu nhiên. Các địa chỉ này phải khác với địa chỉ MAC thực sự của thiết bị và phải đáp ứng các yêu cầu sau:

  • Địa chỉ thiết bị Wi-Fi Direct phải được sắp xếp ngẫu nhiên khi tạo giao diện nếu có không có nhóm cố định nào được lưu; nếu không, địa chỉ thiết bị phải tiếp tục sử dụng địa chỉ MAC đã tạo.
  • Địa chỉ giao diện Wi-Fi Direct (còn gọi là địa chỉ nhóm) phải được chọn ngẫu nhiên mỗi khi thiết lập kết nối.

Sắp xếp ngẫu nhiên địa chỉ MAC của Wi-Fi Direct được triển khai trong 'wpa_suppli CHO và được kiểm soát theo 2 cấu hình, p2p_device_random_mac_addrp2p_interface_random_mac_addr.

Để bật tính năng này, nhà sản xuất thiết bị phải:

  • Triển khai Wi-Fi Suppli CHO ISupplicantP2pIface::setMacRandomization API. Tuỳ thuộc vào giao diện được triển khai, như sau:
    • hardware/interface/wifi/supplicant/1.2 cho HIDL
    • hardware/interface/wifi/supplicant/aidl cho AIDL
  • Đặt config_wifi_p2p_mac_randomization_supported thành "true" trong một thiết bị lớp phủ.

Xác nhận kết quả

Android cung cấp một tập hợp các bài kiểm thử đơn vị, các kiểm tra Bộ kiểm tra tính tương thích (CTS) và Kiểm tra Trình xác minh CTS để xác thực Wi-Fi Tính năng trực tiếp. Bạn cũng có thể kiểm tra Wi-Fi Direct bằng Bộ thử nghiệm dành cho nhà cung cấp (VTS).

Kiểm thử đơn vị

Xác minh gói Wi-Fi Direct bằng các quy trình kiểm tra sau đây.

Kiểm thử dịch vụ:

atest com.android.server.wifi.p2p

Thử nghiệm dành cho người quản lý:

atest android.net.wifi.p2p

Các bài kiểm tra Bộ kiểm tra tính tương thích (CTS)

Sử dụng thử nghiệm CTS để xác thực tính năng Wi-Fi Direct. CTS phát hiện khi tính năng được bật và tự động bao gồm các thử nghiệm liên quan.

Để kích hoạt thử nghiệm CTS, hãy chạy:

% atest android.net.wifi.p2p.cts

Thử nghiệm Trình xác minh CTS

Các thử nghiệm của Trình xác minh CTS xác thực hành vi Wi-Fi Direct bằng cách sử dụng hai thiết bị: thử nghiệm và một thiết bị phổ biến. Để chạy thử nghiệm, hãy mở Trình xác minh CTS và hãy chuyển đến phần có tiêu đề Kiểm tra Wi-Fi Direct.