Artikel ini menjelaskan cara mendapatkan informasi debug saat mengembangkan VHAL:
- Buang status VHAL saat ini.
- Sertakan dump proses VHAL di dumpstate.
Saat keduanya diaktifkan, setiap item disertakan dalam adb bugreport
.
Selain itu, dengan mendaftar ke car watchdog , status VHAL runtime dapat diambil jika tidak dalam kondisi baik.
Buang info debug VHAL
Terapkan debug untuk IVehicle.hal
IVehicle::debug
dipanggil saat lshal debug <interface> <options>
dipanggil. Anda dapat membuang status internal VHAL atau mengambil tindakan yang diperlukan ke VHAL berdasarkan opsi.
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(); }
Buang VHAL
Gunakan lshal
untuk membuang VHAL. Hak istimewa sistem diperlukan.
shell$ adb shell lshal debug android.hardware.automotive.vehicle@2.0::IVehicle
Sertakan dump proses HAL di dumpstate
Dalam rilis Android 10 QPR2, HAL dapat disertakan dalam dump proses saat status dump (atau dumpstate
bug) dimulai.
Konfigurasi konfigurasi
Konfigurasikan kebijakan SELinux
Tambahkan dump_extra_hal(hal_server_domain)
di dumpstate.te
. Jika dumpstate.te
tidak ada di folder sepolicy vendor
, buat dumpstate.te
.
shell$ cat dumpstate.te dump_extra_hal(hal_vendor_special_control) dump_extra_hal(hal_vendor_display_power)
Daftar antarmuka HAL
Tambahkan nama antarmuka HAL ke properti sistem ro.dump.hals.extra
. Banyak nama yang dipisahkan dengan koma. Android.mk
atau makefile
produk adalah lokasi optimal untuk item ini.
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
Buang proses HAL
Untuk menangkap sistem statusCall
, panggil adb shell dumpstate
atau adb bugreport
. Output akan berisi proses dump dari antarmuka HAL yang ditentukan.
Aktifkan pengawas mobil untuk memantau kesehatan VHAL
Pengawas mobil memantau status kesehatan klien terdaftar dan membuang atau menghentikan klien terdaftar ketika mereka menjadi tidak sehat. Untuk mendaftarkan VHAL ke car watchdog, lihat Car Watchdog .