Wi-Fi HAL

يحتوي إطار عمل Wi-Fi على ثلاث مساحات عرض HAL لشبكة Wi-Fi ممثّلة بثلاث واجهات مختلفة. بالنسبة إلى الأجهزة التي تعمل بالإصدار 14 من نظام التشغيل Android أو إصدار أحدث، تتوفّر جميع الواجهات الثلاث كحِزم لغة تعريف واجهة Android (AIDL) ثابتة. كانت هذه الواجهات محدّدة سابقًا باستخدام لغة تعريف واجهة الأجهزة (HIDL).

  • طبقة HAL الخاصة بالمورّد: هي طبقة HAL مخصّصة للأوامر الخاصة بنظام Android. تتوفّر ملفات AIDL في hardware/interfaces/wifi/aidl.
  • طبقة تجريد الأجهزة (HAL) الخاصة ببرنامج الطالب: هي طبقة تجريد الأجهزة الخاصة ببرنامج wpa_supplicant. تتوفّر ملفات AIDL في hardware/interfaces/wifi/supplicant/aidl.
  • طبقة تجريد الأجهزة (HAL) الخاصة بـ hostapd: هي واجهة HAL لـ hostapd. تتوفّر ملفات AIDL في hardware/interfaces/wifi/hostapd/aidl.

طبقة تجريد الأجهزة الخاصة بالمورّد

توفّر Vendor HAL أوامر خاصة بنظام Android. وهو اختياري (غير مطلوب) لكي تعمل أوضاع Station (STA) وSoft AP (SAP) للبنية الأساسية. ومع ذلك، يجب تفعيلها لخدمتَي Wi-Fi Aware وWi-Fi RTT.

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

قبل HIDL (أي قبل Android 8.0)، كان نظام التشغيل Android يستخدم آلية HAL تُعرف باسم HAL القديمة. يوفّر رمز المصدر لنظام التشغيل Android عملية تنفيذ تلقائية للغة AIDL أو HIDL. يستخدم هذا التنفيذ طبقة وسيطة (shim) تعمل فوق طبقة تجريد الأجهزة (HAL) القديمة.

تتوفّر عناوين HAL القديمة في hardware/libhardware_legacy/include/hardware_legacy/. يقع التنفيذ القديم المستند إلى طبقة تجريد الأجهزة (HAL) في hardware/interfaces/wifi/aidl/default بالنسبة إلى AIDL وhardware/interfaces/wifi/1.x/default بالنسبة إلى HIDL.

طبقة تجريد الأجهزة (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) أو اتصال Wi-Fi مباشر (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 المرجعي على إعدادات لعدة مجموعات يمكن تفعيلها باستخدام علامات الإصدار (القديمة). للحصول على تعليمات الإعداد، يُرجى الاطّلاع على: