Este artículo explica cómo obtener información de depuración mientras se desarrolla el VHAL:
- Volcar el estado actual del VHAL.
- Incluya el volcado del proceso VHAL en dumpstate.
Cuando ambos están habilitados, cada elemento se incluye en adb bugreport
.
Además, al registrarse en Car Watchdog, se puede recuperar el estado VHAL en tiempo de ejecución si no está en buenas condiciones.
Volcar información de depuración de VHAL
Implementar depuración para IVehicle.hal
IVehicle::debug
se llama cuando se lshal debug <interface> <options>
. Puede volcar el estado interno de VHAL o realizar las acciones necesarias en VHAL según las opciones.
Return<void> VehicleHal::debug(const hidl_handle& handle, const hidl_vec<hidl_string>& options) { if (handle.getNativeHandle() == nullptr || handle->numFds < 1) { ALOGE("Invalid parameters passed to debug()"); return Void(); } int fd = handle->data[0]; // Process options if (options.size() == 0) { dump_VHAL_state(fd); return Void(); } std::string option = options[0]; if (EqualsIgnoreCase(option, "--help")) { print_out_help(fd); } else if (EqualsIgnoreCase(option, "--whateveroption")) { do_whatever_needed(fd, option); } else { dprintf(fd, "Invalid option: %s\n", option.c_str()); } return Void(); }
Volcar el VHAL
Use lshal
para volcar el VHAL. Se necesita el privilegio del sistema.
shell$ adb shell lshal debug android.hardware.automotive.vehicle@2.0::IVehicle
Incluir volcado de proceso HAL en dumpstate
En la versión de Android 10 QPR2, las HAL se pueden incluir en el volcado del proceso cuando se dumpstate
(o bugreport).
Configuración de instalación
Configurar una política de SELinux
Agregue dump_extra_hal(hal_server_domain)
en dumpstate.te
. Si dumpstate.te
no existe en la carpeta de políticas del vendor
, cree dumpstate.te
.
shell$ cat dumpstate.te dump_extra_hal(hal_vendor_special_control) dump_extra_hal(hal_vendor_display_power)
Lista de interfaces HAL
Agregue nombres de interfaz HAL a la propiedad del sistema ro.dump.hals.extra
. Numerosos nombres están separados por comas. Android.mk
o el makefile
del producto son ubicaciones óptimas para estos elementos.
shell$ % cat vendor_product.mk PRODUCT_PROPERTY_OVERRIDES += \ ro.dump.hals.extra=vendor.company.hardware.special.control@1.0::ISpecialControl,vendor.company.hardware.power.displaypower@1.0::IDisplayPower
Volcar procesos HAL
Para capturar el statusCall
del sistema, llame a adb shell dumpstate
o adb bugreport
. La salida contendrá el volcado de proceso de las interfaces HAL especificadas.
Habilite el perro guardián del automóvil para monitorear la salud de VHAL
El perro guardián del automóvil monitorea el estado de salud de los clientes registrados y vuelca o cancela a los clientes registrados cuando pierden su salud. Para registrar VHAL en Car Watchdog, consulte Car Watchdog .