वाई-फ़ाई डायरेक्ट

Wi-Fi Direct सुविधा, जिसे Wi-Fi P2P भी कहा जाता है, की मदद से डिवाइसों को इंटरनेट या मोबाइल नेटवर्क के ऐक्सेस के बिना, Wi-Fi Direct प्रोटोकॉल का इस्तेमाल करके एक-दूसरे का पता लगाने और उनसे कनेक्ट करने की सुविधा मिलती है. Wi-Fi Alliance (WFA) के Wi-Fi Direct स्पेसिफ़िकेशन पर आधारित इस सुविधा की मदद से, भरोसेमंद डिवाइसों और ऐप्लिकेशन के बीच ज़्यादा डेटा शेयर किया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि वे डिवाइस और ऐप्लिकेशन, नेटवर्क से कनेक्ट हों.

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

इस सुविधा का इस्तेमाल करने के लिए, डिवाइस बनाने वाली कंपनियों को Wi-Fi Vendor और Supplicant HAL इंटरफ़ेस लागू करने होंगे.

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

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

  • hardware/interfaces/wifi/aidl या, hardware/interfaces/wifi/1.3 या उससे ज़्यादा
  • hardware/interfaces/wifi/supplicant/aidl या, hardware/interfaces/wifi/supplicant/1.2 या उससे ज़्यादा

लागू करना

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

  • फ़्रेमवर्क:
    • AOSP कोड
    • Wi-Fi Direct की सुविधा चालू करना: इसके लिए, सुविधा फ़्लैग की ज़रूरत होती है
  • वाई-फ़ाई डायरेक्ट (पी2पी) एचएएल (इसका मतलब है कि फ़र्मवेयर काम करता है)

इस सुविधा को लागू करने के लिए, डिवाइस बनाने वाली कंपनियां वाई-फ़ाई HIDL या AIDL इंटरफ़ेस लागू करती हैं. साथ ही, वाई-फ़ाई डायरेक्ट के लिए सुविधा फ़्लैग चालू करती हैं. device/<oem>/<device> में मौजूद device.mk में, PRODUCT_COPY_FILES एनवायरमेंट वैरिएबल में बदलाव करें, ताकि वाई-फ़ाई डायरेक्ट की सुविधा काम कर सके:

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

वाई-फ़ाई डायरेक्ट की सुविधा इस्तेमाल करने के लिए, अन्य सभी ज़रूरी शर्तें AOSP में शामिल हैं.

एमएसी पता बदलने की सुविधा

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

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

वाई-फ़ाई डायरेक्ट मैक पते को बदलने की सुविधा, 'wpa_supplicant' में लागू की गई है. इसे दो कॉन्फ़िगरेशन, p2p_device_random_mac_addr और p2p_interface_random_mac_addr से कंट्रोल किया जाता है.

इस सुविधा को चालू करने के लिए, डिवाइस बनाने वाली कंपनियों को ये काम करने होंगे:

  • Wi-Fi Supplicant ISupplicantP2pIface::setMacRandomization API लागू करें. लागू किए गए इंटरफ़ेस के हिसाब से, यह इनमें मौजूद होता है:
    • hardware/interface/wifi/supplicant/1.2 for HIDL
    • AIDL के लिए hardware/interface/wifi/supplicant/aidl
  • डिवाइस के कस्टम ओवरले में, config_wifi_p2p_mac_randomization_supported को 'सही' पर सेट करें.

पुष्टि करें

Android, यूनिट टेस्ट, कंपैटिबिलिटी टेस्ट सुइट (CTS) टेस्ट, और CTS की पुष्टि करने वाले टेस्ट का एक सेट उपलब्ध कराता है. इनकी मदद से, Wi-Fi Direct की सुविधा की पुष्टि की जा सकती है. वेंडर टेस्ट सुइट (वीटीएस) का इस्तेमाल करके भी, Wi-Fi Direct की जांच की जा सकती है.

यूनिट टेस्ट

नीचे दिए गए टेस्ट का इस्तेमाल करके, वाई-फ़ाई डायरेक्ट पैकेज की पुष्टि करें.

सेवा की जांच:

atest com.android.server.wifi.p2p

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

atest android.net.wifi.p2p

Compatibility Test Suite (CTS) टेस्ट

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

सीटीएस टेस्ट ट्रिगर करने के लिए, यह चलाएं:

% atest android.net.wifi.p2p.cts

सीटीएस की पुष्टि करने वाले टूल के टेस्ट

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