اندروید 10 از پروتکل Wi-Fi Easy Connect که به عنوان پروتکل تأمین دستگاه (DPP) نیز شناخته می شود، پشتیبانی می کند. Wi-Fi Easy Connect توسط Wi-Fi Alliance (WFA) به عنوان جایگزینی برای Wi-Fi Protected Setup (WPS) معرفی شد. WPS در اندروید 9 منسوخ شد.
Wi-Fi Easy Connect یک روش ساده و ایمن برای موارد زیر ارائه می دهد:
- دستگاههای Wi-Fi داخلی (از جمله دستگاههای بدون هد) به شبکه بدون وارد کردن رمز عبور.
- بدون دانستن یا وارد کردن رمز عبور به شبکه های Wi-Fi بپیوندید.
بوت استرپینگ و احراز هویت با استفاده از یک URI پیکربندی میشود که با اسکن یک کد QR (با استفاده از دوربین) به دست میآید، یا خارج از باند، برای مثال، با استفاده از BLE یا NFC پیکربندی میشود.
Wi-Fi Easy Connect از یک کانال رمزگذاری شده برای ارسال اعتبار وای فای بین دستگاه ها استفاده می کند و از آنجایی که از فریم های عمل عمومی استفاده می شود، دستگاه ها می توانند از نقاط دسترسی موجود استفاده کنند.
اندروید 10 از Wi-Fi Easy Connect فقط در حالت آغازگر پشتیبانی می کند (حالت پاسخگو پشتیبانی نمی شود). این حالت های عملیات پشتیبانی می شوند:
- Initiator-Configurator: اعتبار شبکه را با اسکن کد QR به یک دستگاه جدید ارسال کنید.
- Initiator-Enrollee: با اسکن کد QR شبکه به یک شبکه بپیوندید.
اندروید 10 از پروتکل کلید مشترک (PSK) برای WPA2 و احراز هویت همزمان پروتکل برابر (SAE) برای WPA3 پشتیبانی می کند.
Wi-Fi Easy Connect فقط در حالت کلاینت پشتیبانی می شود (حالت SoftAP پشتیبانی نمی شود).
پیاده سازی
برای پشتیبانی از Wi-Fi Easy Connect، رابط درخواستی ارائه شده در پروژه منبع باز Android (AOSP) را پیاده سازی کنید. بسته به رابطی که پیاده سازی شده است، این در:
-
hardware/interfaces/wifi/supplicant/1.2/
یا نسخه جدیدتر برای HIDL -
hardware/interfaces/wifi/supplicant/aidl/
برای AIDL
برای پشتیبانی از DPP موارد زیر مورد نیاز است:
وصله های هسته لینوکس برای پشتیبانی از DPP:
- cfg80211
- nl80211
wpa_supplicant
با پشتیبانی از DPPدرایور Wi-Fi با پشتیبانی از DPP
سیستم عامل Wi-Fi با پشتیبانی از DPP
API های عمومی در Android 10 برای استفاده توسط برنامه ها در دسترس هستند:
-
WifiManager#isEasyConnectSupported
: چارچوب را جستجو می کند تا مشخص کند آیا دستگاه از Wi-Fi Easy Connect پشتیبانی می کند یا خیر. -
Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
: به برنامهها اجازه میدهد تا Wi-Fi Easy Connect را در جریان ورود/تنظیم خود ادغام کنند.
Wi-Fi Easy Connect را فعال کنید
برای فعال کردن Wi-Fi Easy Connect در چارچوب Android، گزینه کامپایل CONFIG_DPP
را در فایل پیکربندی wpa_supplicant
، android.config
قرار دهید:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
اعتبار سنجی
برای تست پیاده سازی خود، تست های زیر را اجرا کنید.
تست های واحد
DppManagerTest
اجرا کنید تا رفتار پرچمهای قابلیت DPP را بررسی کنید.
atest DppManagerTest
تست های VTS
اگر رابط HIDL پیاده سازی شده است، VtsHalWifiSupplicantV1_2TargetTest
را برای آزمایش رفتار درخواست کننده HAL v1.2 اجرا کنید.
اگر رابط AIDL پیاده سازی شده است، VtsHalWifiSupplicantStaIfaceTargetTest
برای آزمایش رفتار HAL درخواست کننده اجرا کنید.