वाई-फ़ाई अवेयर

Android 8.0 में जोड़ी गई वाई-फ़ाई अवेयर सुविधा, इसके साथ काम करने वाले डिवाइसों को इंटरनेट या सेल्युलर नेटवर्क ऐक्सेस के बिना सीधे वाई-फ़ाई अवेयर प्रोटोकॉल का इस्तेमाल करके एक-दूसरे से कनेक्ट करने, कनेक्ट करने, और रेंज (Android 9 में जोड़ा गया) खोजने देती है. Wi-Fi Alliance (WFA) पर बनाई गई यह सुविधा वाई-फ़ाई अवेयर स्पेसिफ़िकेशन (वर्शन 2.0, 3.0, 3.1, और 4.0) के आधार पर बनाई गई है. इसकी मदद से भरोसेमंद डिवाइसों और नेटवर्क से बाहर के ऐप्लिकेशन के बीच, ज़्यादा थ्रूपुट डेटा आसानी से शेयर किया जा सकता है.

उदाहरण और सोर्स

इस सुविधा का इस्तेमाल करने के लिए, डिवाइस बनाने वाली कंपनियों को वाई-फ़ाई वेंडर एचएएल लागू करना चाहिए. Android 14 और उसके बाद के वर्शन में, वेंडर एचएएल इंटरफ़ेस को एआईडीएल का इस्तेमाल करके तय किया जाता है. Android 13 और उससे पहले के वर्शन के लिए, वेंडर HAL इंटरफ़ेस को HIDL का इस्तेमाल करके तय किया जाता है.

वाई-फ़ाई अवेयर सुविधा लागू करने के लिए वाई-फ़ाई इंटरफ़ेस को फ़ॉलो करें. लागू किए गए इंटरफ़ेस के आधार पर, यहां दिया गया तरीका अपनाया जा सकता है:

  • एआईडीएल: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.2 या उसके बाद

लेगसी वाई-फ़ाई एचएएल को देखें और जानें कि यह AIDL और HIDL इंटरफ़ेस से कैसे जुड़ा है: hardware/libhardware_legacy/+/main/include/hardware_legacy/wifi_नान.h.

लागू करने का तरीका

डिवाइस बनाने वाली कंपनियों को फ़्रेमवर्क और एचएएल/फ़र्मवेयर, दोनों से जुड़ी सहायता देनी होगी:

  • फ़्रेमवर्क:
    • एओएसपी कोड
    • जागरूकता बढ़ाने की सुविधा चालू करें: इसके लिए, फ़ीचर फ़्लैग और बिल्ड फ़्लैग, दोनों की ज़रूरत होती है
  • वाई-फ़ाई अवेयर (एनएएन) एचएएल सपोर्ट (जिसमें फ़र्मवेयर की सुविधा शामिल है)

इस सुविधा को लागू करने के लिए, डिवाइस मैन्युफ़ैक्चरर, वाई-फ़ाई इंटरफ़ेस लागू करते हैं और दो फ़ीचर फ़्लैग चालू करते हैं:

  • device/<oem>/<device> में मौजूद BoardConfig.mk या BoardConfig-common.mk में, यह फ़्लैग जोड़ें:

    WIFI_HIDL_FEATURE_AWARE := true
    
  • device/<oem>/<device> में मौजूद device.mk में, PRODUCT_COPY_FILES एनवायरमेंट वैरिएबल में बदलाव करें, ताकि वाई-फ़ाई अवेयर सुविधा के साथ काम किया जा सके:

    PRODUCT_COPY_FILES +=
    frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
    

वाई-फ़ाई अवेयर में IEEE 802.11mc प्रोटोकॉल का इस्तेमाल करने वाले मिलते-जुलते डिवाइस शामिल हैं, जिसे राउंड ट्रिप टाइम (आरटीटी) भी कहा जाता है. वाई-फ़ाई अवेयर की यह उप-सुविधा वाई-फ़ाई आरटीटी सुविधा का समर्थन करने वाले डिवाइस पर काम करती है. इसका मतलब है कि इसके लिए ज़रूरी है कि डिवाइस वाई-फ़ाई अवेयर और वाई-फ़ाई आरटीटी, दोनों के साथ काम करता हो. ज़्यादा जानकारी के लिए, वाई-फ़ाई आरटीटी देखें.

अगर ऐसा नहीं होता है, तो इस सुविधा के लिए ज़रूरी सभी चीज़ें AOSP में शामिल हो जाती हैं.

अगर WIFI_HAL_INTERFACE_COMBINATIONS फ़्लैग किया गया है, तो WIFI_HIDL_FEATURE_AWARE फ़्लैग को अनदेखा कर दिया जाता है. ज़्यादा जानकारी के लिए, वाई-फ़ाई मल्टी-इंटरफ़ेस की एक साथ काम करने की क्षमता देखें.

एमएसी रैंडमाइज़ेशन

Android के लिए यह ज़रूरी है कि वाई-फ़ाई अवेयर डिस्कवरी (एनएमआई) का MAC पता और डेटा इंटरफ़ेस (एनडीपी) किसी भी क्रम में चुने जाएं और वे डिवाइस के सही MAC पते से मेल न खाते हों. MAC पते:

  • वाई-फ़ाई अवेयर चालू या फिर से चालू होने पर, यह किसी भी क्रम में हो जाता है.
  • वाई-फ़ाई अवेयर चालू होने पर, MAC पते को NanConfigRequest.macAddressRandomizationIntervalSec पैरामीटर से कॉन्फ़िगर किए गए सामान्य इंटरवल पर रैंडम तरीके से कॉन्फ़िगर किया जाना चाहिए. इसे डिफ़ॉल्ट रूप से, फ़्रेमवर्क के मुताबिक 30 मिनट के लिए कॉन्फ़िगर किया जाता है.

सस्पेंड और रिज़्यूम

Wi-Fi Aware की सुविधा, Android 14 और उसके बाद वाले वर्शन में, खास लोगों के लिए बनाए गए ऐप्लिकेशन के लिए, डिस्कवरी सेशन को निलंबित करने और फिर से चालू करने की सुविधा देती है. इन सेशन से जुड़े सभी डेटा पाथ की जानकारी भी इसमें शामिल है. इसकी मदद से, डिवाइस, डिस्कवरी सेशन को तेज़ी से फिर से शुरू कर सकते हैं और कम बैटरी का इस्तेमाल कर सकते हैं. ऐसा इसलिए, क्योंकि डिस्कवरी सेशन को निलंबित किया जा सकता है.

अगर किसी डिवाइस पर इस सुविधा को निलंबित किया जा सकता है और फिर से चालू किया जा सकता है, तो फ़र्मवेयर, वाई-फ़ाई अवेयर सेशन को निलंबित कर देता है. ऐसा तब होता है, जब कोई खास ऐप्लिकेशन, डिस्कवरी सेशन को निलंबित करता है. जब डिस्कवरी सेशन निलंबित होता है, तो डिवाइस उस सेशन के लिए, न तो कोई फ़्रेम ट्रांसमिट करता है और न ही उसे कोई फ़्रेम मिलता है. इसमें, उस सेशन में चालू एनडीपी भी शामिल हैं. अगर सभी डिस्कवरी सेशन निलंबित कर दिए जाते हैं, तो डिवाइस न तो कोई वाई-फ़ाई अवेयर फ़्रेम ट्रांसमिट करता है और न ही उसे कोई फ़्रेम मिलता है.

जब कोई खास ऐप्लिकेशन, निलंबित किए गए डिस्कवरी सेशन को फिर से शुरू करता है, तो फ़्रेमवर्क उस सेशन को उसकी पिछली स्थिति पर वापस ले आता है. इसमें, उससे जुड़े सभी एनडीपी सेशन भी शामिल हैं. निलंबित किए गए डिस्कवरी सेशन को फिर से शुरू करना, वाई-फ़ाई अवेयर ऐक्सेस को चालू करने और नया डिस्कवरी सेशन बनाने से ज़्यादा तेज़ होता है.

डिवाइस बनाने वालों को, डिस्कवरी सेशन को निलंबित करने और फिर से शुरू करने की सुविधा देनी होगी. इसके लिए, डिवाइस बनाने वाली कंपनियों को एचएएल और फ़र्मवेयर की सुविधा देनी होगी. ज़्यादा जानकारी के लिए, IWifiNanIface.java देखें.

डिवाइस बनाने वाली कंपनियां, आउट-ऑफ़-बैंड कम्यूनिकेशन (उदाहरण के लिए, BLE) का इस्तेमाल कर सकती हैं. इससे, उन्हें अलग-अलग डिवाइसों पर निलंबित करने और फिर से शुरू करने के लिए सिंक किया जा सकता है.

पुष्टि करें

वाई-फ़ाई से जुड़ी जानकारी की पुष्टि करने के लिए Android, यूनिट टेस्ट, इंटिग्रेशन टेस्ट (एसीटीएस), कंपैटबिलिटी टेस्ट सुइट (सीटीएस) टेस्ट, और सीटीएस की पुष्टि करने वाले टेस्ट का सेट उपलब्ध कराता है. वाई-फ़ाई अवेयर की जांच विक्रेता टेस्ट सुइट (वीटीएस) का इस्तेमाल करके भी की जा सकती है.

यूनिट टेस्ट

वाई-फ़ाई अवेयर पैकेज की जांच, इसका इस्तेमाल करके की जाती हैं:

सर्विस टेस्ट:

atest com.android.server.wifi.aware

मैनेजर टेस्ट:

atest android.net.wifi.aware

इंटिग्रेशन की जांच (एसीटीएस)

tools/test/connectivity/acts_tests/tests/google/wifi/aware/README.md में बताए गए acts/sl4a टेस्ट सुइट की मदद से, उसके काम करने के तरीके, परफ़ॉर्मेंस, और स्ट्रेस की जांच की जाती है.

कंपैटबिलिटी टेस्ट सुइट (सीटीएस) के टेस्ट

वाई-फ़ाई अवेयर सुविधा की पुष्टि करने के लिए, सीटीएस टेस्ट का इस्तेमाल करें. CTS, यह पता लगा लेता है कि सुविधा कब चालू है. साथ ही, वह उससे जुड़े टेस्ट को अपने-आप शामिल कर लेती है.

सीटीएस टेस्ट को ट्रिगर करने के लिए इनका इस्तेमाल किया जा सकता है:

atest SingleDeviceTest

सीटीएस वेरिफ़ायर टेस्ट

CTS Verifier, दो डिवाइस का इस्तेमाल करके वाई-फ़ाई अवेयर व्यवहार की पुष्टि करने की जांच करता है: टेस्ट डिवाइस और जाने-पहचाने डिवाइस. टेस्ट करने के लिए, CTS Verifier खोलें और वाई-फ़ाई अवेयर टेस्ट टाइटल वाले सेक्शन पर जाएं.