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

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

टेस्ट करना

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

यूनिट टेस्ट

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

वाई-फ़ाई मैनेजर की जांच:

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

    atest FrameworksWifiApiTests

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

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

    atest FrameworksWifiTests

सीटीएस टेस्ट

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

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

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

लागू करना

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

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

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

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

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

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

कॉन्फ़िगरेशन ट्यून करना

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

एंट्री और एग्ज़िट थ्रेशोल्ड को, इन नामों के साथ ओवरलोड किए जा सकने वाले कॉन्फ़िगरेशन पैरामीटर के तौर पर सेव किया जाता है. यहां 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>

उदाहरण के लिए, यह कमांड नए थ्रेशोल्ड पैरामीटर कॉन्फ़िगर करता है. इस सैंपल कमांड में इस्तेमाल की गई वैल्यू, 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