يحتوي إطار عمل Wi-Fi على ثلاث مساحات عرض HAL لشبكة Wi-Fi ممثّلة بثلاث واجهات مختلفة. بالنسبة إلى الأجهزة التي تعمل بالإصدار 14 من نظام التشغيل Android أو إصدار أحدث، تتوفّر جميع الواجهات الثلاث كحِزم AIDL ثابتة. تم تحديد هذه الواجهات سابقًا باستخدام لغة تعريف واجهة HAL (HIDL).
- طبقة تجريد الأجهزة الخاصة بالمورّد: هي واجهة HAL للأوامر الخاصة بنظام Android. تتوفّر ملفات AIDL في
hardware/interfaces/wifi/aidl
. - طبقة تجريد الأجهزة (HAL) الخاصة ببرنامج Supplicant: هي واجهة HAL لبرنامج wpa_supplicant. تتوفّر ملفات AIDL في
hardware/interfaces/wifi/supplicant/aidl
. - Hostapd HAL: واجهة HAL لبرنامج hostapd. تتوفّر ملفات AIDL في
hardware/interfaces/wifi/hostapd/aidl
.
طبقة تجريد الأجهزة الخاصة بالمورّد
توفّر طبقة تجريد الأجهزة الخاصة بالمورّد أوامر خاصة بنظام Android. وهو اختياري (غير مطلوب) لكي تعمل أوضاع محطة البنية الأساسية (STA) ونقطة الوصول البرمجية (SAP). ومع ذلك، يجب تفعيلها لاستخدام خدمات Wi-Fi Aware وWi-Fi RTT.
في نظام التشغيل Android 14 والإصدارات الأحدث، يتم تحديد واجهة Vendor HAL باستخدام لغة تعريف واجهة Android (AIDL). في Android 13 والإصدارات الأقدم، يتم تحديد واجهة Vendor HAL باستخدام HIDL.
كانت إصدارات Android السابقة لإصدار HIDL (أي قبل Android 8.0) تستخدم آلية 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.
Supplicant HAL
توفّر طبقة تجريد الأجهزة (HAL) الخاصة بـ Supplicant واجهة لبرنامج wpa_supplicant الخفي. بدءًا من Android 13، تستخدم الواجهة لغة تعريف واجهة Android (AIDL) لتعريف طبقة تجريد الأجهزة (HAL). بالنسبة إلى الإصدارات السابقة لإصدار Android 13، تستخدم الواجهات وأقسام المورِّد HIDL.
يمكن العثور على رمز المصدر الخاص بـ wpa_supplicant في
external/wpa_supplicant_8/wpa_supplicant
. يوفّر التنفيذ المرجعي واجهة AIDL، ويتم تنفيذه في الدليل الفرعي aidl
.
Hostapd HAL
توفّر طبقة تجريد الأجهزة (HAL) الخاصة بـ Hostapd واجهة لبرنامج 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
بالنسبة إلى 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 المتوفّرة في الإصدار 14 من نظام التشغيل Android والإصدارات الأحدث، وواجهة Wi-Fi HAL 1.6 المتوفّرة في الإصدار 13 من نظام التشغيل Android، إمكانية تحديد واجهة نقطة وصول مجسّرة (نطاق مزدوج متزامن) كعنصر دمج صريح.
يتسم تنسيق مواصفات التزامن بالمرونة والعامة. ويمكنه التعبير عن
مجموعات غير متوافقة بعد مع إطار العمل. لضبط تركيبة معيّنة، استخدِم علامة الإنشاء 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}}
مثال آخر هو جهاز يتيح محطة STA مع نقطة وصول واحدة، أو نقطة وصول مجسّرة (نطاق مزدوج متزامن) بدون واجهات أخرى. ويتم تمثيل ذلك على النحو التالي:
WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 1}, {{AP}, 1}}, {{{AP_BRIDGED}, 1}}
بدلاً من ذلك، يحتوي HAL المرجعي على إعدادات لعدة مجموعات يمكن تفعيلها باستخدام علامات الإصدار (القديمة). للحصول على تعليمات حول الإعداد، يُرجى الاطّلاع على: