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

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

जांच करना

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

यूनिट टेस्ट

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

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

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

    atest FrameworksWifiApiTests

वाई-फ़ाई सर्विस के टेस्ट:

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

    atest FrameworksWifiTests

सीटीएस टेस्ट

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

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

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

लागू करना

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

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

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

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

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

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

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

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

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

  • 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>

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

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