वाई-फ़ाई फ़्रेमवर्क में तीन वाई-फ़ाई एचएएल सर्फ़ेस होते हैं. इन्हें तीन अलग-अलग इंटरफ़ेस में दिखाया जाता है. Android 14 या इसके बाद के वर्शन वाले डिवाइसों के लिए, ये तीनों इंटरफ़ेस, स्थिर AIDL पैकेज के तौर पर उपलब्ध हैं. ये इंटरफ़ेस पहले HIDL का इस्तेमाल करके तय किए गए थे.
- वेंडर HAL: Android के लिए खास निर्देशों के लिए HAL प्लैटफ़ॉर्म. AIDL फ़ाइलें
hardware/interfaces/aidl
में और HIDL फ़ाइलेंhardware/interfaces/wifi/1.x
में मौजूद हैं. - Supplicant HAL: wpa_supplicant के लिए HAL सरफ़ेस. AIDL फ़ाइलें
hardware/interfaces/supplicant/aidl
में और HIDL फ़ाइलेंhardware/interfaces/supplicant/1.x
में मौजूद हैं. - Hostapd HAL: hostapd के लिए HAL प्लैटफ़ॉर्म है. AIDL फ़ाइलें
hardware/interfaces/hostapd/aidl
में और HIDL फ़ाइलेंhardware/interfaces/hostapd/1.x
में मौजूद हैं.
वेंडर एचएएल
वेंडर HAL, Android के लिए खास निर्देश उपलब्ध कराता है. इन्फ़्रास्ट्रक्चर स्टेशन (एसटीए) और सॉफ़्ट एपी (एसएपी) मोड के काम करने के लिए, यह ज़रूरी नहीं है. हालांकि, यह वाई-फ़ाई अवेयर और वाई-फ़ाई आरटीटी सेवाओं के लिए ज़रूरी है.
Android 14 और उसके बाद के वर्शन में, वेंडर एचएएल इंटरफ़ेस को एआईडीएल का इस्तेमाल करके तय किया जाता है. Android 13 और इससे पहले के वर्शन में, वेंडर एचएएल इंटरफ़ेस को HIDL का इस्तेमाल करके तय किया जाता है.
Android 8.0 से पहले के वर्शन में, Android ने एचएएल (HAL) के एक तरीके का इस्तेमाल किया था. इसे अब लेगसी एचएएल कहा जाता है. फ़िलहाल, Android सोर्स कोड में डिफ़ॉल्ट रूप से AIDL या HIDL को लागू किया जाता है. इसके लिए, पुराने एचएएल के सबसे ऊपर बने शिम का इस्तेमाल किया जाता है.
लेगसी एचएएल हेडर,
hardware/libhardware_legacy/include/hardware_legacy/
में मौजूद होते हैं. लेगसी एचएएल के आधार पर लागू करने की सुविधा, एआईडीएल के लिए hardware/interfaces/wifi/aidl/default
और एचआईडीएल के लिए hardware/interfaces/wifi/1.x/default
में मौजूद है.
Supplicant HAL
Supplicant HAL, wpa_supplicant डेमन के लिए इंटरफ़ेस उपलब्ध कराता है. Android 13 से, इंटरफ़ेस एचएएल डेफ़िनिशन के लिए एआईडीएल का इस्तेमाल करता है. Android 13 से पहले रिलीज़ किए गए वर्शन के लिए, इंटरफ़ेस और वेंडर पार्टीशन, HIDL का इस्तेमाल करते हैं.
wpa_supplicant सोर्स कोड external/wpa_supplicant_8/wpa_supplicant
में मौजूद है. पहचान फ़ाइल लागू करने से, एआईडीएल इंटरफ़ेस मिलता है, जिसे aidl
सब-डायरेक्ट्री में लागू किया जाता है.
Hostapd HAL
Hostapd HAL, hostapd डेमन के लिए इंटरफ़ेस उपलब्ध कराता है. Android 13 से, इंटरफ़ेस एचएएल डेफ़िनिशन के लिए एआईडीएल का इस्तेमाल करता है. Android 13 से पहले रिलीज़ किए गए वर्शन के लिए, इंटरफ़ेस और वेंडर पार्टीशन, HIDL का इस्तेमाल करते हैं.
Hostapd सोर्स कोड external/wpa_supplicant_8/hostapd
में मौजूद है.
रेफ़रंस के तौर पर लागू करने की सुविधा, एक AIDL इंटरफ़ेस उपलब्ध कराती है. इसे aidl
सब-डायरेक्ट्री में लागू किया जाता है.
वाई-फ़ाई के एक से ज़्यादा इंटरफ़ेस का एक साथ इस्तेमाल करना
अलग-अलग Android डिवाइसों पर, एक साथ कई तरह के वाई-फ़ाई इंटरफ़ेस काम कर सकते हैं. काम करने वाले कॉम्बिनेशन, एचएएल में तय किए जाते हैं और फ़्रेमवर्क के लिए उपलब्ध कराए जाते हैं. स्पेसिफ़िकेशन का फ़ॉर्मैट
एआईडीएल वाई-फ़ाई एचएएल के लिए hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
, वाई-फ़ाई एचएएल 1.6 के लिए android/hardware/interfaces/wifi/1.6/IWifiChip.hal
, और वाई-फ़ाई एचएएल 1.5 और इससे पहले के वर्शन के लिए android/hardware/interfaces/wifi/1.0/IWifiChip.hal
में बताया गया है.
Android 14 और उसके बाद के वर्शन के लिए उपलब्ध एआईडीएल एचएएल और Android 13 में उपलब्ध वाई-फ़ाई एचएएल वर्शन 1.6, ब्रिज किए गए एपी इंटरफ़ेस (एक साथ दो बैंड) को साफ़ तौर पर कॉम्बिनेशन आइटम के तौर पर बताने की सुविधा जोड़ते हैं.
एक साथ कई टास्क करने की सुविधा की खास जानकारी का फ़ॉर्मैट, आसान और सामान्य है. यह ऐसे कॉम्बिनेशन दिखा सकता है जो फ़िलहाल फ़्रेमवर्क के साथ काम नहीं करते. किसी खास कॉम्बिनेशन को कॉन्फ़िगर करने के लिए, device/<oem>/<device>/BoardConfig-common.mk
में मौजूद WIFI_HAL_INTERFACE_COMBINATIONS
बिल्ड फ़्लैग का इस्तेमाल करें.
उदाहरण के लिए, किसी डिवाइस में दो एसटीए और NAN (Wi-Fi Aware) या पी2पी (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}}
इसके अलावा, रेफ़रंस एचएएल में कई कॉम्बिनेशन के लिए कॉन्फ़िगरेशन होते हैं, जिन्हें (लेगसी) बिल्ड फ़्लैग की मदद से चालू किया जा सकता है. कॉन्फ़िगरेशन के निर्देशों के लिए, यहां देखें: