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, el AOSP ofrece una combinación de pruebas de unidades y 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 de la app) como para el servicio de Wi-Fi.
Pruebas del Administrador de Wi-Fi:
- Ubicada en
packages/modules/Wifi/framework/tests/
Realiza la ejecución con el siguiente shell ejecutable (lee el archivo para conocer más opciones de ejecución):
atest FrameworksWifiApiTests
Pruebas del servicio de Wi-Fi:
- Ubicada en
packages/modules/Wifi/service/tests/wifitests/
Realiza la ejecución con el siguiente shell ejecutable (lee el archivo para conocer más opciones de ejecución):
atest FrameworksWifiTests
Pruebas del CTS
El Conjunto de pruebas de compatibilidad (CTS) incluye pruebas para el marco de trabajo de Wi-Fi. Se encuentran en cts/tests/tests/net/src/android/net/wifi
. Las pruebas del CTS de Wi-Fi requieren que el dispositivo que se está probando esté asociado con un punto de acceso al comienzo 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 de Wi-Fi. En Android 9 o versiones posteriores, los búferes de anillo del controlador o del firmware pueden estar siempre activados. Los informes de errores se pueden activar automáticamente cuando se detecta un estado incorrecto (solo en compilaciones 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 de 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 la HAL del proveedor.
Para inhabilitar el registro de firmware, configura 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 tombstone.
- Activa el Wi-Fi.
- Conéctate a una red.
- Genera un informe de errores.
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 del AIDL: Sección
dumpsys
del archivo principal del informe de errores - HAL de HIDL:
/lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt
- HAL del AIDL: Sección
Ajuste de configuración
Para controlar la intensidad de la señal con la que un dispositivo se asocia con una red o se desvincula de ella, 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 pueden sobrecargarse mediante el archivo de superposición <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml
.
Puedes probar umbrales nuevos configurando el dispositivo con comandos adb. (Como alternativa, puedes crear una compilación con superposiciones nuevas, pero el uso de comandos adb permite un tiempo de respuesta de prueba más rápido).
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 del AOSP):
adb shell settings put global wifi_score_params \
rssi2=-85:-85:-73:-60,rssi5=-82:-82:-70:-57
Para restablecer los valores de parámetros integrados (es decir, quitar las anulaciones), usa el siguiente comando adb:
adb shell settings delete global wifi_score_params