वाई-फ़ाई की जांच करना, उसे डीबग करना, और उसे ट्यून करना

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

टेस्ट करना

वाई-फ़ाई फ़्रेमवर्क की जांच करने के लिए, AOSP यूनिट टेस्ट और सीटीएस टेस्ट, दोनों तरह के टेस्ट उपलब्ध कराता है.

यूनिट टेस्ट

AOSP में, डिफ़ॉल्ट वाई-फ़ाई फ़्रेमवर्क के लिए फ़ंक्शनल और यूनिट टेस्ट शामिल हैं. ये टेस्ट, वाई-फ़ाई मैनेजर (ऐप्लिकेशन-साइड कोड) और वाई-फ़ाई सेवा, दोनों के लिए उपलब्ध हैं.

वाई-फ़ाई मैनेजर के टेस्ट:

  • packages/modules/Wifi/framework/tests/ में स्थित
  • इसे नीचे दिए गए शेल एक्ज़ीक्यूटेबल का इस्तेमाल करके चलाएं (इसे चलाने के अन्य विकल्पों के बारे में जानने के लिए, फ़ाइल पढ़ें):

    atest FrameworksWifiApiTests

वाई-फ़ाई सेवा की जांच:

  • packages/modules/Wifi/service/tests/wifitests/ में स्थित
  • इसे नीचे दिए गए शेल एक्ज़ीक्यूटेबल का इस्तेमाल करके चलाएं (इसे चलाने के अन्य विकल्पों के बारे में जानने के लिए, फ़ाइल पढ़ें):

    atest FrameworksWifiTests

सीटीएस टेस्ट

Compatibility Test Suite (CTS) में, वाई-फ़ाई फ़्रेमवर्क के लिए टेस्ट शामिल होते हैं. ये cts/tests/tests/net/src/android/net/wifi में मौजूद हैं. वाई-फ़ाई सीटीएस टेस्ट के लिए, टेस्ट शुरू होने से पहले डिवाइस-अंडर-टेस्ट को ऐक्सेस पॉइंट से कनेक्ट करना ज़रूरी है.

डीबग करने के लिए, लॉगिंग के बेहतर विकल्प

Android 9 में, वाई-फ़ाई लॉगिंग की सुविधा को बेहतर बनाया गया है, ताकि वाई-फ़ाई से जुड़ी समस्याओं को आसानी से ठीक किया जा सके. Android 9 या इसके बाद के वर्शन में, ड्राइवर या फ़र्मवेयर के रिंग बफ़र हमेशा चालू हो सकते हैं. गड़बड़ी का पता चलने पर, गड़बड़ी की रिपोर्ट अपने-आप ट्रिगर हो सकती हैं. ऐसा सिर्फ़ userdebug और eng बिल्ड में होता है. जब Wi-Fi HAL (AIDL या HIDL वर्शन 1.2 या उसके बाद का वर्शन) का इस्तेमाल किया जाता है, तो फ़र्मवेयर डीबग बफ़र को फ़्रेमवर्क के बजाय HAL में सेव किया जाता है, ताकि आईपीसी की लागत को बचाया जा सके.

लागू करना

रेफ़रंस के तौर पर लागू करने के लिए, वेंडर एचएएल में डिफ़ॉल्ट तौर पर लागू करने का तरीका देखें.

संसाधन config_wifi_enable_wifi_firmware_debugging को false पर सेट करके, फ़र्मवेयर लॉगिंग को बंद किया जा सकता है.

मैन्युअल टेस्ट

इस मैन्युअल टेस्ट को चलाकर पुष्टि करें कि टॉम्बस्टोन डायरेक्ट्री में मौजूद पुरानी फ़ाइलें मिट रही हैं.

  1. वाई-फ़ाई चालू करें.
  2. किसी नेटवर्क से कनेक्ट करें.
  3. गड़बड़ी की रिपोर्ट जनरेट करें.
  4. बग रिपोर्ट की ZIP फ़ाइल की जांच करें और पुष्टि करें कि संग्रहित किए गए फ़र्मवेयर लॉग मौजूद हैं. ये लॉग इन जगहों पर मौजूद होते हैं:

    • एआईडीएल एचएएल: मुख्य बगरिपोर्ट फ़ाइल का dumpsys सेक्शन
    • HIDL HAL: /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

कॉन्फ़िगरेशन को बेहतर बनाना

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

एंट्री और एग्ज़िट थ्रेशोल्ड को, ओवरलोड किए जा सकने वाले कॉन्फ़िगरेशन पैरामीटर के तौर पर सेव किया जाता है. इनके नाम ये हैं (यहां bad पैरामीटर, एग्ज़िट आरएसएसआई थ्रेशोल्ड को दिखाता है):

  • config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz

पैरामीटर, <root>/frameworks/base/core/res/res/values/config.xml में सेव किए जाते हैं. साथ ही, ओवरले फ़ाइल <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml का इस्तेमाल करके, इन्हें बदला जा सकता है.

adb कमांड का इस्तेमाल करके डिवाइस को कॉन्फ़िगर करके, नए थ्रेशोल्ड की जांच की जा सकती है. (इसके अलावा, नई ओवरले के साथ एक बिल्ड बनाया जा सकता है. हालांकि, adb कमांड का इस्तेमाल करने से, टेस्टिंग के नतीजे जल्दी मिलते हैं.)

adb shell settings put global wifi_score_params \
                             [rssi2|rssi5]=<bad>:<entry>:<low>:<good>

उदाहरण के लिए, यहां दिया गया निर्देश नए थ्रेशोल्ड पैरामीटर कॉन्फ़िगर करता है. इस सैंपल निर्देश में इस्तेमाल की गई वैल्यू, एओएसपी कोडबेस में कॉन्फ़िगर की गई डिफ़ॉल्ट वैल्यू हैं:

adb shell settings put global wifi_score_params \
                       rssi2=-85:-85:-73:-60,rssi5=-82:-82:-70:-57

बिल्ट-इन पैरामीटर की वैल्यू को पहले जैसा करने के लिए (यानी कि ओवरराइड की गई वैल्यू हटाने के लिए), adb के इस कमांड का इस्तेमाल करें:

adb shell settings delete global wifi_score_params