اتصال Wi-Fi مباشر

إنّ ميزة Wi-Fi Direct، المعروفة أيضًا باسم Wi-Fi P2P، تسمح للأجهزة المتوافقة باكتشاف بعضها البعض والاتصال ببعضها مباشرةً باستخدام بروتوكول Wi-Fi Direct بدون الوصول إلى الإنترنت أو شبكة الجوّال. تسمح هذه الميزة القائمة على مواصفات Wi-Fi Alliance (WFA) مواصفات Wi-Fi Direct بمشاركة البيانات العالية الإنتاجية بين الأجهزة والتطبيقات الموثوق بها التي تكون خارج الشبكة.

الأمثلة والمصدر

لاستخدام هذه الميزة، يجب على الشركات المصنّعة للأجهزة تنفيذ واجهة مورّد شبكة Wi-Fi وواجهة "سطح المكتب المُرفَق" (HAL).

في Android 13، تستخدم واجهة Supplicant AIDL لتعريف HAL. في الإصدار 14 من نظام التشغيل Android والإصدارات الأحدث، تستخدم واجهة HAL للمورّد AIDL. في الإصدار Android 12 والإصدارات الأقدم، يتم تحديد واجهة HAL لمقدّم التطبيق وواجهة المورّد باستخدام HIDL.

يجب توفّر مساحات HAL التالية لشبكة Wi-Fi لاستخدام ميزة Wi-Fi Direct:

  • hardware/interfaces/wifi/aidl أو hardware/interfaces/wifi/1.3 أو أعلى
  • hardware/interfaces/wifi/supplicant/aidl أو hardware/interfaces/wifi/supplicant/1.2 أو أعلى

التنفيذ

تحتاج الشركات المصنّعة للأجهزة إلى توفير الدعم لإطار العمل وHAL/البرامج الثابتة:

  • إطار العمل:
    • رمز AOSP
    • تفعيل اتصال Wi-Fi المباشر: يجب وضع علامة ميزة
  • دعم بروتوكول HAL لشبكة Wi-Fi Direct (P2P) (يعني ذلك دعم البرامج الثابتة)

لتطبيق هذه الميزة، تنفّذ الشركات المصنّعة للأجهزة واجهات 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.

التوزيع العشوائي لعنوان MAC

يتطلب Android توزيع عنوان الجهاز وعنوان الواجهة في ميزة "اتصال Wi-Fi المباشر". ويجب أن يكونا مختلفين عن عنوان MAC الحقيقي للجهاز ويجب أن يستوفيا المتطلبات التالية:

  • يجب اختيار عنوان جهاز Wi-Fi Direct عشوائيًا عند إنشاء الواجهة إذا لم تكن هناك مجموعة دائمة محفوظة، وإلا يجب أن يستمر عنوان الجهاز في استخدام آخر عنوان MAC تم إنشاؤه.
  • يجب أن يتم توزيع عنوان واجهة Wi-Fi المباشرة، المعروف أيضًا باسم عنوان المجموعة، بشكل عشوائي في كل مرة يتم فيها إجراء اتصال.

يتمّ تطبيق التوزيع العشوائي لعنوان Wi-Fi المباشر على نظام التشغيل "wpa_supplicant" ويتم التحكّم فيه من خلال إعدادَين، هما p2p_device_random_mac_addr وp2p_interface_random_mac_addr.

لتفعيل هذه الميزة، على الشركات المصنّعة للأجهزة إجراء ما يلي:

  • تنفيذ واجهة برمجة تطبيقات ISupplicantP2pIface::setMacRandomization لـ Wi-Fi Supplicant. استنادًا إلى الواجهة التي تم تنفيذها، يكون ذلك في:
    • 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 المباشر". يمكن أيضًا اختبار اتصال 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 Verifier

تتحقّق أداة CTS Verifier من صحة سلوك Wi-Fi Direct باستخدام جهازَين: جهاز اختبار وجهاز جيد معروف. لإجراء الاختبارات، افتح CTS Verifier وانتقل إلى القسم الذي يحمل عنوان "اختبارات Wi-Fi المباشرة".