From 28a41b4df2aced3b04671be8ad95ef453afccc39 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Mon, 13 Sep 2010 14:55:17 -0700 Subject: [PATCH] initial support for bml backup and restore Change-Id: I7e6f1a76371c0d1c1f4cfac0413ba6fa7743f17a --- Android.mk | 11 +++++------ nandroid.c | 12 ++++++++++-- updater/Android.mk | 4 ++-- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Android.mk b/Android.mk index 2a4087a..e68fd94 100644 --- a/Android.mk +++ b/Android.mk @@ -125,6 +125,11 @@ ifdef BOARD_HAS_MTD_CACHE LOCAL_CFLAGS += -DBOARD_HAS_MTD_CACHE endif +ifdef BOARD_USES_BMLUTILS + LOCAL_CFLAGS += -DBOARD_USES_BMLUTILS + LOCAL_STATIC_LIBRARIES += libbmlutils +endif + # This binary is in the recovery ramdisk, which is otherwise a copy of root. # It gets copied there in config/Makefile. LOCAL_MODULE_TAGS suppresses # a (redundant) copy of the binary in /system/bin for user builds. @@ -132,12 +137,6 @@ endif LOCAL_MODULE_TAGS := eng -LOCAL_STATIC_LIBRARIES := -#ifeq ($(TARGET_RECOVERY_UI_LIB),) -# LOCAL_SRC_FILES += default_recovery_ui.c -#else -# LOCAL_STATIC_LIBRARIES += $(TARGET_RECOVERY_UI_LIB) -#endif LOCAL_SRC_FILES += default_recovery_ui.c LOCAL_STATIC_LIBRARIES += libbusybox libclearsilverregex libmkyaffs2image libunyaffs liberase_image libdump_image libflash_image libmtdutils LOCAL_STATIC_LIBRARIES += libamend diff --git a/nandroid.c b/nandroid.c index 35ad641..6bf6e91 100644 --- a/nandroid.c +++ b/nandroid.c @@ -42,6 +42,14 @@ #include "extendedcommands.h" #include "nandroid.h" +#ifndef BOARD_USES_BMLUTILS +int write_raw_image(const char* partition, const char* filename) { + char tmp[PATH_MAX]; + sprintf(tmp, "flash_image boot %s", filename); + return __system(tmp); +} +#endif + int print_and_error(char* message) { ui_print(message); return 1; @@ -283,9 +291,9 @@ int nandroid_restore(const char* backup_path, int restore_boot, int restore_syst ui_print("Erasing boot before restore...\n"); if (0 != (ret = format_root_device("BOOT:"))) return print_and_error("Error while formatting BOOT:!\n"); - sprintf(tmp, "flash_image boot %s/boot.img", backup_path); + sprintf(tmp, "%s/boot.img", backup_path); ui_print("Restoring boot image...\n"); - if (0 != (ret = __system(tmp))) { + if (0 != (ret = write_raw_image("boot", tmp))) { ui_print("Error while flashing boot image!"); return ret; } diff --git a/updater/Android.mk b/updater/Android.mk index b0e5811..ff89f96 100644 --- a/updater/Android.mk +++ b/updater/Android.mk @@ -19,8 +19,8 @@ LOCAL_MODULE_TAGS := eng LOCAL_SRC_FILES := $(updater_src_files) ifdef BOARD_USES_BMLUTILS - LOCAL_CFLAGS += -DBOARD_USES_BMLUTILS - LOCAL_STATIC_LIBRARIES += libbmlutils + LOCAL_CFLAGS += -DBOARD_USES_BMLUTILS + LOCAL_STATIC_LIBRARIES += libbmlutils endif LOCAL_STATIC_LIBRARIES += $(TARGET_RECOVERY_UPDATER_LIBS) $(TARGET_RECOVERY_UPDATER_EXTRA_LIBS)