Wi-Fi HAL

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

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

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

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

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

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