Kablosuz ağı test etme, hata ayıklama ve ayarlama

Bu sayfada, AOSP'de sağlanan araçları kullanarak Wi-Fi uygulamasının nasıl test edileceği, hata ayıklanacağı ve ayarlanacağı açıklanmaktadır.

Test

AOSP, kablosuz ağ çerçevesini test etmek için birim testleri ve CTS testleri karışımı sunar.

Birim testleri

AOSP, varsayılan kablosuz bağlantı çerçevesi için hem kablosuz bağlantı yöneticisi (uygulama tarafı kodu) hem de kablosuz bağlantı hizmeti için işlevsel ve birim testleri içerir.

Wi-Fi Yöneticisi testleri:

  • Konumu: packages/modules/Wifi/framework/tests/
  • Aşağıdaki kabuk yürütülebilir dosyasını kullanarak çalıştırın (daha fazla yürütme seçeneği için dosyayı okuyun):

    atest FrameworksWifiApiTests

Kablosuz hizmet testleri:

  • Konumu: packages/modules/Wifi/service/tests/wifitests/
  • Aşağıdaki kabuk yürütülebilir dosyasını kullanarak çalıştırın (daha fazla yürütme seçeneği için dosyayı okuyun):

    atest FrameworksWifiTests

CTS testleri

Uyumluluk Test Paketi (CTS), Wi-Fi çerçevesiyle ilgili testleri içerir. Bunlar cts/tests/tests/net/src/android/net/wifi konumunda yer alır. Kablosuz CTS testleri, test çalıştırmasının başında test edilen cihazın bir erişim noktasıyla ilişkilendirilmesini gerektirir.

Hata ayıklama için gelişmiş günlük kaydı seçenekleri

Android 9, kablosuz bağlantı sorunlarının hata ayıklamasını kolaylaştırmak için kablosuz bağlantı günlük kaydını iyileştirdi. Android 9 veya sonraki sürümlerde sürücü ya da donanım yazılımı halka arabellekleri her zaman açık olabilir. Hata raporları, kötü bir durum algılandığında otomatik olarak tetiklenebilir (yalnızca userdebug ve eng derlemelerinde). Wi-Fi HAL (AIDL veya HIDL sürüm 1.2 ya da daha yeni) kullanıldığında, IPC maliyetlerinden tasarruf etmek için bellenim hata ayıklama arabellekleri çerçeve yerine HAL'de saklanır.

Uygulama

Referans uygulama için Vendor HAL'deki varsayılan uygulamaya bakın.

Kaynak,config_wifi_enable_wifi_firmware_debugging değerini false olarak ayarlayarak donanım yazılımı günlüğünü devre dışı bırakabilirsiniz.

Manuel test

Tombstone dizinindeki eski dosyaların silindiğini doğrulamak için bu manuel testi çalıştırın.

  1. Kablosuz ayarını açık duruma getirin.
  2. Bir ağa bağlanın.
  3. Hata raporu oluşturun.
  4. Hata raporu ZIP dosyasını inceleyin ve arşivlenmiş donanım yazılımı günlüklerinin mevcut olduğunu doğrulayın. Günlükler aşağıdaki konumlarda bulunur:

    • AIDL HAL: Ana hata raporu dosyasının dumpsys bölümü
    • HIDL HAL: /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

Yapılandırmayı ayarlama

Bir cihazın ağa bağlanma veya ağdan ayrılma sinyal gücünü kontrol etmek için kablosuz ağ çerçevesi giriş ve çıkış RSSI eşiklerini kullanır.

Giriş ve çıkış eşikleri, aşağıdaki adlara sahip aşırı yüklenebilir yapılandırma parametreleri olarak saklanır (burada bad parametresi, çıkış RSSI eşiğini ifade eder):

  • 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

Parametreler <root>/frameworks/base/core/res/res/values/config.xml içinde saklanır ve yer paylaşımı dosyası <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml kullanılarak aşırı yüklenebilir.

Cihazı adb komutlarını kullanarak yapılandırarak yeni eşikleri test edebilirsiniz. (Alternatif olarak, yeni yer paylaşımlarıyla derleme oluşturabilirsiniz ancak adb komutlarını kullanarak daha hızlı test yapabilirsiniz.)

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

Örneğin, aşağıdaki komut yeni eşik parametrelerini yapılandırır (bu örnek komutta kullanılan değerler, AOSP kod tabanında yapılandırılmış varsayılan değerlerdir):

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

Yerleşik parametre değerlerini geri yüklemek (yani geçersiz kılmaları kaldırmak) için aşağıdaki adb komutunu kullanın:

adb shell settings delete global wifi_score_params