Prueba, depuración y ajuste de Wi-Fi

Esta página describe cómo probar, depurar y ajustar la implementación de Wi-Fi utilizando las herramientas proporcionadas en AOSP.

Pruebas

Para probar el marco de Wi-Fi, AOSP proporciona una combinación de pruebas unitarias, pruebas de integración (ACTS) y pruebas CTS.

Pruebas unitarias

AOSP incluye pruebas funcionales y unitarias para el marco Wi-Fi predeterminado: tanto para el Administrador de Wi-Fi (código del lado de la aplicación) como para el Servicio Wi-Fi.

Pruebas del Administrador de Wi-Fi:

  • Ubicado en packages/modules/Wifi/framework/tests/
  • Ejecute usando el siguiente ejecutable de shell (lea el archivo para obtener más opciones de ejecución):

    atest FrameworksWifiApiTests
    

Pruebas del Servicio Wi-Fi:

  • Ubicado en packages/modules/Wifi/service/tests/wifitests/
  • Ejecute usando el siguiente ejecutable de shell (lea el archivo para obtener más opciones de ejecución):

    atest FrameworksWifiTests
    

Conjunto de pruebas de comunicaciones de Android

Android Comms Test Suite (ACTS) realiza pruebas automatizadas de pilas de conectividad, como Wi-Fi, Bluetooth y servicios móviles. La herramienta de prueba requiere adb y Python, y se puede encontrar en tools/test/connectivity/acts .

Las pruebas ACTS para Wi-FI se encuentran en tools/test/connectivity/acts_tests/tests/google/wifi , con un ejemplo de configuración de prueba en el mismo directorio: example_config.json .

pruebas CTS

El conjunto de pruebas de compatibilidad (CTS) incluye pruebas para el marco de Wi-Fi. Estos se encuentran en cts/tests/tests/net/src/android/net/wifi . Las pruebas de Wi-Fi CTS requieren que el dispositivo bajo prueba esté asociado con un punto de acceso al inicio de la prueba.

Opciones de registro mejoradas para la depuración

Android 9 mejoró el registro de Wi-Fi para facilitar la depuración de problemas de Wi-Fi. En Android 9 o superior, los buffers circulares del controlador/firmware siempre pueden estar activados. Los informes de errores se pueden activar automáticamente cuando se detecta un mal estado (solo en compilaciones userdebug y eng). Cuando se utiliza Wi-Fi HAL (AIDL o HIDL versión 1.2 o superior), los buffers de depuración del firmware se almacenan en el HAL en lugar del marco para ahorrar costos de IPC.

Implementación

Para obtener una implementación de referencia, consulte la implementación predeterminada en el proveedor HAL.

Puede deshabilitar el registro de firmware configurando el recurso, config_wifi_enable_wifi_firmware_debugging , en falso.

Prueba de integración (ACTS)

La prueba de integración se puede encontrar en /tools/test/connectivity/acts_tests/tests/google/wifi/WifiDiagnosticsTest.py .

Los volcados de firmware verificados se conservan en el directorio de desecho correspondiente en flash para las compilaciones de depuración del usuario. Dumpstate recopila datos de este directorio al crear un informe de error.

Prueba manual

Ejecute esta prueba manual para verificar que los archivos antiguos en el directorio de desecho se estén eliminando.

  1. Enciende el wifi.
  2. Conectar a una red.
  3. Generar un informe de error .
  4. Inspeccione el archivo Zip del informe de errores y verifique que existan los registros de firmware archivados. Los registros se encuentran en las siguientes ubicaciones:

    • AIDL HAL: sección dumpsys del archivo principal de informe de errores
    • HIDL HAL: /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

Ajuste de configuración

Para controlar la intensidad de la señal con la que un dispositivo se asocia o disocia de una red, el marco Wi-Fi utiliza los umbrales RSSI de entrada y salida .

Los umbrales de entrada y salida se almacenan como parámetros de configuración sobrecargables con los siguientes nombres (donde el parámetro bad se refiere al umbral RSSI de salida ):

  • 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

Los parámetros se almacenan en <root>/frameworks/base/core/res/res/values/config.xml y se pueden sobrecargar usando el archivo de superposición <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml .

Puede probar nuevos umbrales configurando el dispositivo mediante comandos adb. (Como alternativa, puede crear una compilación con nuevas superposiciones, pero el uso de comandos adb proporciona una respuesta de prueba más rápida).

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

Por ejemplo, el siguiente comando configura nuevos parámetros de umbral (los valores utilizados en este comando de muestra son los valores predeterminados configurados en el código base de AOSP):

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

Para restaurar los valores de los parámetros integrados (es decir, eliminar las anulaciones), utilice el siguiente comando adb:

adb shell settings delete global wifi_score_params