aboutsummaryrefslogtreecommitdiffstats
path: root/firmware.c
diff options
context:
space:
mode:
authorDoug Zongker <dougz@android.com>2010-01-20 16:34:10 -0800
committerDoug Zongker <dougz@android.com>2010-01-21 12:50:04 -0800
commit687bc12ccfbda26ad134b27d09d1d70a2b8705a6 (patch)
tree83d313c1cb3e9a3a6795faeceb832cfd1f423870 /firmware.c
parent883b4c8be5f50cde679cdfa589d7ade83c0253b7 (diff)
downloadbootable_recovery-687bc12ccfbda26ad134b27d09d1d70a2b8705a6.zip
bootable_recovery-687bc12ccfbda26ad134b27d09d1d70a2b8705a6.tar.gz
bootable_recovery-687bc12ccfbda26ad134b27d09d1d70a2b8705a6.tar.bz2
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
Diffstat (limited to 'firmware.c')
-rw-r--r--firmware.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/firmware.c b/firmware.c
index e2e4fe6..6739c1e 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;