Prueba, depura y ajusta la red Wi-Fi

En esta página, se describe cómo probar, depurar y ajustar la implementación de Wi-Fi con las herramientas que se proporcionan en el AOSP.

Prueba

Para probar el framework de Wi-Fi, AOSP proporciona una combinación de pruebas de unidades y pruebas de CTS.

Pruebas de unidades

AOSP incluye pruebas funcionales y de unidades para el framework de Wi-Fi predeterminado, tanto para el administrador de Wi-Fi (código del lado de la app) como para el servicio de Wi-Fi.

Pruebas del Administrador de Wi-Fi:

  • Ubicada en packages/modules/Wifi/framework/tests/
  • Ejecuta con el siguiente ejecutable de shell (lee el archivo para obtener más opciones de ejecución):

    atest FrameworksWifiApiTests

Pruebas de servicio de Wi-Fi:

  • Ubicada en packages/modules/Wifi/service/tests/wifitests/
  • Ejecuta con el siguiente ejecutable de shell (lee el archivo para obtener más opciones de ejecución):

    atest FrameworksWifiTests

Pruebas de CTS

El Conjunto de pruebas de compatibilidad (CTS) incluye pruebas para el framework de Wi-Fi. Se encuentran en cts/tests/tests/net/src/android/net/wifi. Las pruebas de CTS de Wi-Fi requieren que el dispositivo en prueba esté asociado a un punto de acceso al inicio de la ejecución 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 relacionados con esta tecnología. En Android 9 o versiones posteriores, los búferes de anillo del controlador o del firmware siempre pueden estar activados. Los informes de errores se pueden activar automáticamente cuando se detecta un estado incorrecto (solo en compilaciones de userdebug y eng). Cuando se usa la HAL de Wi-Fi (AIDL o HIDL versión 1.2 o posterior), los búferes de depuración del firmware se almacenan en la HAL en lugar del framework para ahorrar costos de IPC.

Implementación

Para ver una implementación de referencia, consulta la implementación predeterminada en el HAL del proveedor.

Puedes inhabilitar el registro de firmware configurando el recurso config_wifi_enable_wifi_firmware_debugging como falso.

Prueba manual

Ejecuta esta prueba manual para verificar que se borren los archivos antiguos del directorio de marcas de eliminación.

  1. Activa el Wi-Fi.
  2. Conéctate a una red.
  3. Genera un informe de errores.
  4. Inspecciona el archivo ZIP del informe de errores y verifica que existan los registros de firmware archivados. Los registros se encuentran en las siguientes ubicaciones:

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

Ajuste de la configuración

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

Los umbrales de entrada y salida se almacenan como parámetros de configuración sobrecargables con los siguientes nombres (en los que el parámetro bad hace referencia al umbral de 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 con el archivo de superposición <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml.

Puedes probar nuevos umbrales configurando el dispositivo con comandos de adb. (Como alternativa, puedes crear una compilación con nuevas superposiciones, pero usar comandos de adb proporciona una respuesta más rápida para las pruebas).

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 que se usan en este comando de muestra son los valores predeterminados configurados en la base de código de AOSP):

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

Para restablecer los valores de los parámetros integrados (es decir, quitar las anulaciones), usa el siguiente comando de adb:

adb shell settings delete global wifi_score_params