backup and restore of /sdcard/Android (see getExternalFilesDir)
Change-Id: I6306464cdce4e3b48e0d109284e5606f65a84ee2
diff --git a/Android.mk b/Android.mk
index 519b8ca..d65f650 100644
--- a/Android.mk
+++ b/Android.mk
@@ -26,7 +26,7 @@
LOCAL_FORCE_STATIC_EXECUTABLE := true
-RECOVERY_VERSION := ClockworkMod Recovery v4.0.0.5
+RECOVERY_VERSION := ClockworkMod Recovery v4.0.0.8
LOCAL_CFLAGS += -DRECOVERY_VERSION="$(RECOVERY_VERSION)"
RECOVERY_API_VERSION := 2
LOCAL_CFLAGS += -DRECOVERY_API_VERSION=$(RECOVERY_API_VERSION)
diff --git a/edifyscripting.c b/edifyscripting.c
index 89554d7..1634a9e 100644
--- a/edifyscripting.c
+++ b/edifyscripting.c
@@ -145,6 +145,10 @@
free(path);
return StringValue(strdup(""));
}
+ if (0 != format_volume("/sdcard/Android")) {
+ free(path);
+ return StringValue(strdup(""));
+ }
}
done:
diff --git a/nandroid.c b/nandroid.c
index af97e86..8bb82f1 100644
--- a/nandroid.c
+++ b/nandroid.c
@@ -277,6 +277,16 @@
return ret;
}
+ if (0 != stat("/sdcard/Android", &s))
+ {
+ ui_print("No /sdcard/Android found. Skipping backup of application files on external storage.\n");
+ }
+ else
+ {
+ if (0 != (ret = nandroid_backup_partition_extended(backup_path, "/sdcard/Android", 0)))
+ return ret;
+ }
+
if (0 != (ret = nandroid_backup_partition_extended(backup_path, "/cache", 0)))
return ret;
@@ -514,6 +524,9 @@
if (restore_data && 0 != (ret = nandroid_restore_partition_extended(backup_path, "/sdcard/.android_secure", 0)))
return ret;
+ if (restore_data && 0 != (ret = nandroid_restore_partition_extended(backup_path, "/sdcard/Android", 0)))
+ return ret;
+
if (restore_cache && 0 != (ret = nandroid_restore_partition_extended(backup_path, "/cache", 0)))
return ret;
diff --git a/recovery.c b/recovery.c
index 89fb214..e69a461 100644
--- a/recovery.c
+++ b/recovery.c
@@ -686,6 +686,7 @@
}
erase_volume("/sd-ext");
erase_volume("/sdcard/.android_secure");
+ erase_volume("/sdcard/Android");
ui_print("Data wipe complete.\n");
}
@@ -826,7 +827,7 @@
case 'p': previous_runs = atoi(optarg); break;
case 's': send_intent = optarg; break;
case 'u': update_package = optarg; break;
- case 'w':
+ case 'w':
#ifndef BOARD_RECOVERY_ALWAYS_WIPES
wipe_data = wipe_cache = 1;
#endif