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