Wi-Fi Direct

Wi-Fi Direct की सुविधा को वाई-फ़ाई P2P के नाम से भी जाना जाता है. इससे, इस सुविधा का इस्तेमाल करने वाले डिवाइस, वाई-फ़ाई डायरेक्ट प्रोटोकॉल का इस्तेमाल करके, इंटरनेट या मोबाइल नेटवर्क के ऐक्सेस के बिना, सीधे तौर पर एक-दूसरे को खोज सकते हैं और एक-दूसरे से कनेक्ट हो सकते हैं. 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 का इस्तेमाल करके तय किया जाता है.

Wi-Fi Direct का इस्तेमाल करने के लिए, नीचे दिए गए वाई-फ़ाई एचएएल प्लैटफ़ॉर्म ज़रूरी हैं:

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

लागू करना

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

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

इस सुविधा को लागू करने के लिए, डिवाइस बनाने वाली कंपनियां वाई-फ़ाई HIDL या AIDL इंटरफ़ेस लागू करती हैं. साथ ही, वाई-फ़ाई डायरेक्ट के लिए सुविधा फ़्लैग चालू करती हैं. device/<oem>/<device> में मौजूद device.mk में, Wi-Fi Direct के साथ काम करने के लिए, 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 पते से अलग होने चाहिए और उन्हें नीचे दी गई ज़रूरी शर्तें पूरी करनी होंगी:

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

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

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

  • Wi-Fi Supplicant ISupplicantP2pIface::setMacRandomization API लागू करें. लागू किए गए इंटरफ़ेस के हिसाब से, यह इनमें मौजूद होता है:
    • HIDL के लिए hardware/interface/wifi/supplicant/1.2
    • एआईडीएल के लिए 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) टेस्ट

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

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

% atest android.net.wifi.p2p.cts

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

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