From 687bc12ccfbda26ad134b27d09d1d70a2b8705a6 Mon Sep 17 00:00:00 2001 From: Doug Zongker Date: Wed, 20 Jan 2010 16:34:10 -0800 Subject: save the recovery log from before HTC firmware updates When doing a firmware (radio or hboot) update on HTC devices, save the recovery log in block 1 of the cache partition, before the firmware image and the UI bitmaps. When we boot back into recovery after the firmware update to reformat the cache partition, copy that log out of cache before reformatting it and dump it into the current invocation's log. The practical upshot of all this is that we can see the log output from radio and hboot updates. Change-Id: Ie0e89566754c88f4bed6a90d8a0aa04047b01a27 --- firmware.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'firmware.c') diff --git a/firmware.c b/firmware.c index e2e4fe630..6739c1e93 100644 --- a/firmware.c +++ b/firmware.c @@ -76,7 +76,8 @@ int firmware_update_pending() { * It is recovery's responsibility to clean up the mess afterwards. */ -int maybe_install_firmware_update(const char *send_intent) { +int maybe_install_firmware_update(const char *send_intent, + const char *log_filename) { if (update_data == NULL || update_length == 0) return 0; /* We destroy the cache partition to pass the update image to the @@ -104,7 +105,7 @@ int maybe_install_firmware_update(const char *send_intent) { ui_print("Writing %s image...\n", update_type); if (write_update_for_bootloader( update_data, update_length, - width, height, bpp, busy_image, fail_image)) { + width, height, bpp, busy_image, fail_image, log_filename)) { LOGE("Can't write %s image\n(%s)\n", update_type, strerror(errno)); format_root_device("CACHE:"); // Attempt to clean cache up, at least. return -1; @@ -118,6 +119,7 @@ int maybe_install_firmware_update(const char *send_intent) { * wipe the cache and reboot into the system.) */ snprintf(boot.command, sizeof(boot.command), "update-%s", update_type); + strlcat(boot.recovery, "--recover_log\n", sizeof(boot.recovery)); if (set_bootloader_message(&boot)) { format_root_device("CACHE:"); return -1; -- cgit v1.2.3