aboutsummaryrefslogtreecommitdiffstats
path: root/nandroid.c
diff options
context:
space:
mode:
authorKoushik Dutta <koushd@gmail.com>2012-08-04 15:53:18 -0700
committerKoushik Dutta <koushd@gmail.com>2012-08-04 15:54:24 -0700
commita4385de1638e3c41aa9df6d8eb5dc336d8697966 (patch)
tree6037352ab372550e49d0170701e068885c6c3770 /nandroid.c
parent0adda42011f967bda95695887ce9c941bf793f92 (diff)
downloadbootable_recovery-a4385de1638e3c41aa9df6d8eb5dc336d8697966.zip
bootable_recovery-a4385de1638e3c41aa9df6d8eb5dc336d8697966.tar.gz
bootable_recovery-a4385de1638e3c41aa9df6d8eb5dc336d8697966.tar.bz2
Rename Nandroid to backup/restore. Allow configuration of default backup handlers.
Change-Id: I0df52b3929ea3aaf179e1c572b80841c89879ca8
Diffstat (limited to 'nandroid.c')
-rw-r--r--nandroid.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/nandroid.c b/nandroid.c
index fee779f..1623108 100644
--- a/nandroid.c
+++ b/nandroid.c
@@ -193,6 +193,22 @@ static int dedupe_compress_wrapper(const char* backup_path, const char* backup_f
return __pclose(fp);
}
+static nandroid_backup_handler default_backup_handler = dedupe_compress_wrapper;
+static void refresh_default_backup_handler() {
+ char fmt[5];
+ ensure_path_mounted("/sdcard");
+ FILE* f = fopen("/sdcard/clockworkmod/.default_backup_format", "r");
+ if (NULL == f)
+ return;
+ fread(fmt, 1, sizeof(fmt), f);
+ fclose(f);
+ fmt[3] = NULL;
+ if (0 == strcmp(fmt, "tar"))
+ default_backup_handler = tar_compress_wrapper;
+ else
+ default_backup_handler = dedupe_compress_wrapper;
+}
+
static nandroid_backup_handler get_backup_handler(const char *backup_path) {
Volume *v = volume_for_path(backup_path);
if (v == NULL) {
@@ -206,7 +222,7 @@ static nandroid_backup_handler get_backup_handler(const char *backup_path) {
}
if (strcmp(backup_path, "/data") == 0 && is_data_media()) {
- return dedupe_compress_wrapper;
+ return default_backup_handler;
}
// cwr5, we prefer dedupe for everything except yaffs2
@@ -214,7 +230,7 @@ static nandroid_backup_handler get_backup_handler(const char *backup_path) {
return mkyaffs2image_wrapper;
}
- return dedupe_compress_wrapper;
+ return default_backup_handler;
}
@@ -286,6 +302,7 @@ int nandroid_backup(const char* backup_path)
{
nandroid_backup_bitfield = 0;
ui_set_background(BACKGROUND_ICON_INSTALLING);
+ refresh_default_backup_handler();
if (ensure_path_mounted(backup_path) != 0) {
return print_and_error("Can't mount backup path.\n");