Android 10 hỗ trợ giao thức Wi-Fi Easy Connect, còn được gọi là giao thức cung cấp thiết bị (DPP). Wi-Fi Easy Connect được Wi-Fi Alliance (WFA) giới thiệu để thay thế cho Thiết lập Wi-Fi được bảo vệ (WPS). WPS không còn được dùng 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 các thiết bị Wi-Fi (kể 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.
- Kết nối với 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 một URI, được thu thập bằng cách quét mã QR (bằng camera) hoặc được định cấu hình ngoài băng tần, chẳng hạn như bằng BLE hoặc NFC.
Wi-Fi Easy Connect sử dụng một kênh được mã hoá để gửi thông tin đăng nhập Wi-Fi giữa các thiết bị. Vì các thiết bị sử dụng khung hành động công khai, nên các thiết bị có thể dùng các điểm truy cập hiện có.
Android 10 chỉ hỗ trợ Wi-Fi Easy Connect ở chế độ khởi tạo (không hỗ trợ chế độ phản hồi). Các chế độ hoạt động sau đây được hỗ trợ:
- Thiết bị khởi tạo – Thiết bị định cấu hình: Gửi thông tin đăng nhập 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ạ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ủa các thiết bị ngang hàng (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ó trong Dự án nguồn mở Android (AOSP). Tuỳ thuộc vào giao diện đã được triển khai, điều 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
Bạn phải đáp ứng những yêu cầu sau để hỗ trợ DPP:
Các bản vá nhân Linux để hỗ trợ DPP:
- cfg80211
- nl80211
wpa_supplicant
có hỗ trợ DPPTrình điều khiển Wi-Fi có hỗ trợ DPP
Chương trình cơ sở Wi-Fi có hỗ trợ DPP
Các API công khai có trong Android 10 để ứ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 thiết lập/bắt đầu sử dụng.
Bật tính năng Kết nối Wi-Fi dễ dàng
Để bật tính năng Kết nối Wi-Fi dễ dàng trong khung Android, hãy thêm lựa 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ử việc triển khai, hãy chạy các 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 HAL supplicant phiên bản 1.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 bên yêu cầu.