Wi-Fi بی‌واسطه

ویژگی Wi-Fi بی‌واسطه که با نام Wi-Fi P2P نیز شناخته می‌شود، به دستگاه‌های پشتیبانی‌کننده امکان می‌دهد بااستفاده از پروتکل Wi-Fi بی‌واسطه بدون نیاز به اینترنت یا دسترسی به شبکه تلفن همراه، یکدیگر را به‌طور مستقیم پیدا و به هم متصل شوند. این ویژگی که براساس Wi-Fi Alliance (WFA) مشخصات Wi-Fi Direct ساخته شده است امکان هم‌رسانی داده‌های با توان گذرداد بالا را بین دستگاه‌ها و برنامه‌های مورداعتماد که درغیراین‌صورت خارج از شبکه هستند فراهم می‌کند.

مثال‌ها و منبع

برای استفاده از این ویژگی، سازندگان دستگاه باید رابط‌های Wi-Fi Vendor و Supplicant HAL را پیاده‌سازی کنند.

در Android 13، واسط Supplicant از AIDL برای تعریف HAL استفاده می‌کند. در Android 14 و نسخه‌های بالاتر، میانای Vendor HAL از AIDL استفاده می‌کند. در Android 12 و نسخه‌های پایین‌تر، رابط‌های Supplicant و Vendor HAL بااستفاده از HIDL تعریف می‌شوند.

برای استفاده از ویژگی Wi-Fi Direct، سطوح Wi-Fi HAL زیر لازم است:

  • ‫hardware/interfaces/wifi/aidl یا ‫hardware/interfaces/wifi/1.3 یا بالاتر
  • ‫hardware/interfaces/wifi/supplicant/aidl یا ‫hardware/interfaces/wifi/supplicant/1.2 یا بالاتر

پیاده‌سازی

سازندگان دستگاه باید از چارچوب و HAL/میان‌افزار پشتیبانی کنند:

  • چارچوب:
    • کد AOSP
    • فعال کردن Wi-Fi Direct: به پرچم ویژگی نیاز دارد
  • پشتیبانی از Wi-Fi Direct (P2P) HAL (که به‌معنای پشتیبانی از سفت‌افزار است)

برای پیاده‌سازی این ویژگی، سازندگان دستگاه رابط‌های Wi-Fi HIDL یا AIDL را پیاده‌سازی می‌کنند و پرچم ویژگی Wi-Fi Direct را فعال می‌کنند. در device.mk واقع در device/<oem>/<device>، متغیر محیط PRODUCT_COPY_FILES را برای افزودن پشتیبانی از ویژگی 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

همه الزامات دیگر برای پشتیبانی از Wi-Fi Direct در AOSP گنجانده شده است.

تصادفی‌سازی مک آدرس

‫Android ملزم می‌کند که نشانی دستگاه و نشانی میانای Wi-Fi Direct تصادفی‌سازی شوند. این نشانی‌ها باید با مک آدرس واقعی دستگاه متفاوت باشند و باید شرایط زیر را داشته باشند:

  • اگر گروه پایداری ذخیره نشده باشد، نشانی دستگاه «Wi-Fi بی‌واسطه» باید در زمان ایجاد میانای تصادفی‌سازی شود؛ درغیراین‌صورت، دستگاه باید از آخرین نشانی MAC تولیدشده استفاده کند.
  • نشانی میانای Wi-Fi Direct، که با نام نشانی گروه نیز شناخته می‌شود، باید هر بار که اتصال برقرار می‌شود تصادفی شود.

تصادفی‌سازی مک آدرس Wi-Fi Direct در «wpa_supplicant» پیاده‌سازی شده است و با دو پیکربندی، p2p_device_random_mac_addr و p2p_interface_random_mac_addr، کنترل می‌شود.

برای فعال کردن این ویژگی، سازندگان دستگاه باید:

  • ‫Wi-Fi Supplicant ISupplicantP2pIface::setMacRandomization API را پیاده‌سازی کنید. بسته به میانای پیاده‌سازی‌شده، این مورد در:
    • ‫hardware/interface/wifi/supplicant/1.2 برای HIDL
    • ‫hardware/interface/wifi/supplicant/aidl برای AIDL
  • config_wifi_p2p_mac_randomization_supported را در رونهاد سفارشی دستگاه روی «درست» تنظیم کنید.

اعتبارسنجی

‫Android مجموعه‌ای از آزمون‌های واحد، آزمون‌های مجموعه آزمون سازگاری (CTS)، و آزمون‌های CTS Verifier برای اعتبارسنجی ویژگی Wi-Fi Direct ارائه می‌دهد. «Wi-Fi بی‌واسطه» را می‌توان بااستفاده از مجموعه آزمایش فروشنده (VTS) نیز آزمایش کرد.

آزمون‌های واحد

بسته Wi-Fi Direct را بااستفاده از آزمایش‌های زیر درستی‌سنجی کنید.

آزمایش‌های سرویس:

atest com.android.server.wifi.p2p

آزمایش‌های مدیر:

atest android.net.wifi.p2p

آزمایش‌های «مجموعه آزمایش سازگاری» (CTS)

از آزمون‌های CTS برای اعتبارسنجی ویژگی Wi-Fi Direct استفاده کنید. ‫CTS وقتی ویژگی فعال می‌شود آن را تشخیص می‌دهد و به‌طور خودکار آزمون‌های مرتبط را اضافه می‌کند.

برای راه‌اندازی آزمایش‌های CTS، این دستور را اجرا کنید:

atest android.net.wifi.p2p.cts

آزمایش‌های «درستی‌سنج مجموعه آزمایش سازگاری»

آزمایش‌های «درستی‌سنج CTS» عملکرد Wi-Fi Direct را بااستفاده از دو دستگاه اعتبارسنجی می‌کنند: یک دستگاه آزمایشی و یک دستگاه خوب شناخته‌شده. برای اجرای آزمایش‌ها، CTS Verifier را باز کنید و به بخش Wi-Fi Direct Tests (آزمایش‌های Wi-Fi Direct) بروید.