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

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

टेस्ट करना

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

यूनिट टेस्ट

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

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

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

    atest FrameworksWifiApiTests
    

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

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

    atest FrameworksWifiTests
    

सीटीएस टेस्ट

कंपैटिबिलिटी टेस्ट सुइट (CTS) में, Wi-Fi फ़्रेमवर्क के लिए टेस्ट शामिल होते हैं. ये 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 को 'गलत है' पर सेट करें.

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

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

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

    • AIDL HAL: गड़बड़ी की मुख्य रिपोर्ट की फ़ाइल का 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