Android 10 ra mắt tính năng hỗ trợ giao thức Wi-Fi Easy Connect, còn gọi là giao thức cấp phép thiết bị (DPP). Wi-Fi Easy Connect là một tính năng do Wi-Fi Alliance (WFA) giới thiệu để thay thế cho Wi-Fi Protected Setup (WPS). WPS không còn được dùng nữa trong Android 9.
Wi-Fi Easy Connect cung cấp một phương thức đơn giản và an toàn để:
- Kết nối thiết bị Wi-Fi trên bo mạch (bao gồm cả thiết bị không có màn hình) với mạng mà không cần nhập mật khẩu.
- Tham gia mạng Wi-Fi mà không cần biết hoặc nhập mật khẩu.
Quá trình khởi động và xác thực được định cấu hình bằng URI (được thu nạp bằng cách quét mã QR (bằng máy ảnh)) hoặc được định cấu hình ngoài băng tần, ví dụ: sử dụng BLE hoặc NFC.
Wi-Fi Easy Connect sử dụng kênh mã hoá để gửi thông tin xác thực Wi-Fi giữa các thiết bị và vì các khung thao tác công khai được sử dụng nên các thiết bị có thể sử dụng các điểm truy cập hiện có.
Android 10 chỉ hỗ trợ Wi-Fi Easy Connect ở chế độ trình khởi tạo (không hỗ trợ chế độ trình phản hồi). Các chế độ hoạt động sau đây được hỗ trợ:
- Trình định cấu hình của trình khởi tạo: Gửi thông tin xác thực mạng đến một thiết bị mới bằng cách quét mã QR của thiết bị đó.
- Người khởi tạo – Người đăng ký: Tham gia một mạng bằng cách quét mã QR của mạng đó.
Android 10 hỗ trợ giao thức khoá được chia sẻ trước (PSK) cho WPA2 và giao thức xác thực đồng thời các giá trị bằng nhau (SAE) cho WPA3.
Wi-Fi Easy Connect chỉ được hỗ trợ ở chế độ máy khách (không hỗ trợ chế độ SoftAP).
Triển khai
Để hỗ trợ tính năng Wi-Fi Easy Connect, hãy triển khai giao diện supplicant được cung cấp trong Dự án nguồn mở Android (AOSP). Tuỳ thuộc vào giao diện đã triển khai, phần này nằm ở:
hardware/interfaces/wifi/supplicant/1.2/
hoặc phiên bản mới hơn cho HIDLhardware/interfaces/wifi/supplicant/aidl/
cho AIDL
Những thành phần sau đây là bắt buộc để hỗ trợ DPP:
Các bản vá nhân Linux để hỗ trợ DPP:
- cfg80211
- nl80211
wpa_supplicant
hỗ trợ DPPTrình điều khiển Wi-Fi hỗ trợ DPP
Phần mềm cơ sở Wi-Fi hỗ trợ DPP
Các API công khai có sẵn trong Android 10 để các ứng dụng sử dụng:
WifiManager#isEasyConnectSupported
: Truy vấn khung để xác định xem thiết bị có hỗ trợ Wi-Fi Easy Connect hay không.Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
: Cho phép các ứng dụng tích hợp tính năng Kết nối Wi-Fi dễ dàng vào quy trình giới thiệu/thiết lập.
Bật Wi-Fi Easy Connect
Để bật tính năng Wi-Fi Easy Connect trong khung Android, hãy đưa tuỳ chọn biên dịch CONFIG_DPP
vào tệp cấu hình wpa_supplicant
, android.config
:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
Xác nhận kết quả
Để kiểm thử cách triển khai, hãy chạy các chương trình kiểm thử sau.
Kiểm thử đơn vị
Chạy DppManagerTest
để xác minh hành vi của cờ chức năng cho DPP.
atest DppManagerTest
Kiểm thử VTS
Nếu giao diện HIDL được triển khai, hãy chạy VtsHalWifiSupplicantV1_2TargetTest
để kiểm thử hành vi của supplicant HAL v1.2.
Nếu giao diện AIDL được triển khai, hãy chạy VtsHalWifiSupplicantStaIfaceTargetTest
để kiểm thử hành vi của HAL của ứng dụng yêu cầu.