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