يتضمّن إطار عمل Wi-Fi ثلاث مساحات عرض HAL لشبكة Wi-Fi يتم تمثيلها من خلال ثلاث واجهتَين مختلفتَين. بالنسبة إلى الأجهزة التي تعمل بنظام التشغيل Android 14 أو إصدار أحدث، تتوفّر كل الواجهتَين بصفتهما حِزم AIDL مستقرة. تم تحديد هذه الواجهات سابقًا باستخدام HIDL.
- Vendor HAL: واجهة HAL للطلبات الخاصة بنظام التشغيل Android يتم وضع ملفات AIDL
في
hardware/interfaces/aidl
ويتم وضع ملفات HIDL فيhardware/interfaces/wifi/1.x
. - Supplicant HAL: واجهة HAL لبرنامج wpa_supplicant يمكنك العثور على ملفات AIDL في ملف
hardware/interfaces/supplicant/aidl
وملفات HIDL في ملف hardware/interfaces/supplicant/1.x
. - Hostapd HAL: واجهة HAL لـ hostapd يمكنك العثور على ملفات AIDL في ملف
hardware/interfaces/hostapd/aidl
وملفات HIDL في ملف hardware/interfaces/hostapd/1.x
.
طبقة HAL الخاصة بالمورّد
يوفّر Vendor HAL أوامر خاصة بنظام التشغيل Android. هذا الخيار اختياري (غير مطلوب) لتشغيل وضعَي "محطة البنية الأساسية" (STA) و"نقطة اتصال البرامج" (SAP). ومع ذلك، يكون هذا الإذن إلزاميًا لخدمات Wi-Fi Aware وخدمات Wi-Fi RTT.
في الإصدار 14 من Android والإصدارات الأحدث، يتم تعريف واجهة HAL الخاصة بالمطوّر باستخدام AIDL. في الإصدار 13 من نظام التشغيل Android والإصدارات الأقدم، يتم تحديد واجهة HAL الخاصة بالمطوِّر باستخدام HIDL.
قبل ظهور HIDL (أي قبل Android 8.0)، كان نظام Android يستخدم آلية HAL تُعرف الآن باسم HAL القديم. يقدّم رمز Android المصدر حاليًا تنفيذًا تلقائيًا لـ AIDL أو HIDL باستخدام عنصر وسيط يعمل على مستوى HAL القديم.
يمكن العثور على رؤوس HAL القديمة في
hardware/libhardware_legacy/include/hardware_legacy/
. يمكن العثور على التنفيذ المستنِد إلى HAL القديم
في hardware/interfaces/wifi/aidl/default
لـ AIDL
وhardware/interfaces/wifi/1.x/default
لـ HIDL.
طبقة HAL الخاصة بالطلب
يقدّم Supplicant HAL واجهة لخادم wpa_supplicant. بدءًا من Android 13، تستخدم الواجهة لغة تعريف واجهة Android (AIDL) لتعريف HAL. في الإصدارات الأقدم من Android 13، تستخدم الواجهات وأقسام المصنّعين HIDL.
يمكن العثور على رمز المصدر wpa_supplicant في
external/wpa_supplicant_8/wpa_supplicant
. يقدّم التنفيذ المرجعي
واجهة AIDL، التي يتم تنفيذها في الدليل الفرعي aidl
.
Hostapd HAL
يقدّم Hostapd HAL واجهة لخادم hostapd. بدءًا من Android 13، تستخدم الواجهة لغة تعريف واجهة Android (AIDL) لتعريف HAL. في الإصدارات الأقدم من Android 13، تستخدم الواجهات وأقسام المصنّعين HIDL.
يمكن العثور على رمز المصدر hostapd في external/wpa_supplicant_8/hostapd
.
يقدّم التنفيذ المرجعي
واجهة AIDL، التي يتم تنفيذها في الدليل الفرعي aidl
.
الاستخدام المتزامن لواجهات متعددة في شبكة Wi-Fi
يمكن لأجهزة Android المختلفة استخدام مجموعات مختلفة من واجهات Wi-Fi
بالتزامن. يتم تحديد التركيبات المتوافقة في HAL ويتم عرضها
على إطار العمل. يتم تحديد تنسيق المواصفات في
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
لواجهة برمجة التطبيقات لبروتوكول Wi-Fi HAL،
android/hardware/interfaces/wifi/1.6/IWifiChip.hal
لإصدار Wi-Fi HAL 1.6،
android/hardware/interfaces/wifi/1.0/IWifiChip.hal
لإصدار Wi-Fi HAL 1.5 والإصدارات
الأقدم.
يتيح واجهة برمجة التطبيقات AIDL HAL، المتوفّرة لنظام التشغيل Android 14 والإصدارات الأحدث، و الإصدار 1.6 من واجهة برمجة التطبيقات Wi-Fi HAL، المتوفّر في نظام التشغيل Android 13، تحديد واجهة AP المرتبطة (النطاق المزدوج المتزامن) كعنصر تركيبة صريح.
تنسيق مواصفات المهام المتزامنة مرن وعام. ويمكنه التعبير عن
تركيبات غير متوافقة مع الإطار بعد. لضبط مجموعة
معيّنة، استخدِم WIFI_HAL_INTERFACE_COMBINATIONS
علامة الإنشاء في device/<oem>/<device>/BoardConfig-common.mk
.
على سبيل المثال، يمكن أن يتيح الجهاز اثنين من عملاء STA وواجهة واحدة من نوع NAN
(Wi-Fi Aware)
أو P2P
(Wi-Fi Direct)
(وليس كليهما). يتم التعبير عن ذلك في
device/<oem>/<device>/BoardConfig-common.mk
على النحو التالي:
WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 2}, {{NAN, P2P}, 1}}
ومن الأمثلة الأخرى على ذلك الجهاز الذي يتيح نقطة اتصال لاسلكية واحدة أو نقطة اتصال لاسلكية متصلة (نطاق مزدوج متزامن) بدون واجهات أخرى. يتم تمثيل ذلك على النحو التالي:
WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 1}, {{AP}, 1}}, {{{AP_BRIDGED}, 1}}
بدلاً من ذلك، يحتوي HAL المرجعي على إعدادات لعدة مجموعات يمكن تفعيلها باستخدام علامات الإنشاء (القديمة). للاطّلاع على تعليمات الإعداد، يُرجى الاطّلاع على: