nandroid/root/extendedcommands: attenuate for /data not being auto in fstab
Change-Id: I0e7bec03bb29f1ae72f23321f89cf704e54ff4d9
This commit is contained in:
parent
357a2f5109
commit
f0c389ddcd
@ -453,6 +453,9 @@ int format_device(const char *device, const char *path, const char *fs_type) {
|
||||
LOGE("unknown volume \"%s\"\n", path);
|
||||
return -1;
|
||||
}
|
||||
if (strstr(path, "/data") == path && volume_for_path("/sdcard") == NULL && is_data_media()) {
|
||||
return format_unknown_device(NULL, path, NULL);
|
||||
}
|
||||
if (strcmp(fs_type, "ramdisk") == 0) {
|
||||
// you can't format the ramdisk.
|
||||
LOGE("can't format_volume \"%s\"", path);
|
||||
|
@ -436,8 +436,10 @@ int nandroid_restore_partition_extended(const char* backup_path, const char* mou
|
||||
printf("Found new backup image: %s\n", tmp);
|
||||
}
|
||||
|
||||
// If the fs_type of this volume is "auto", let's revert to using a
|
||||
// rm -rf, rather than trying to do a ext3/ext4/whatever format.
|
||||
// If the fs_type of this volume is "auto" or mount_point is /data
|
||||
// and vol for /sdcard is NULL and is_data_media, let's revert
|
||||
// to using a rm -rf, rather than trying to do a
|
||||
// ext3/ext4/whatever format.
|
||||
// This is because some phones (like DroidX) will freak out if you
|
||||
// reformat the /system or /data partitions, and not boot due to
|
||||
// a locked bootloader.
|
||||
@ -449,6 +451,8 @@ int nandroid_restore_partition_extended(const char* backup_path, const char* mou
|
||||
// Or of volume does not exist (.android_secure), just rm -rf.
|
||||
if (vol == NULL || 0 == strcmp(vol->fs_type, "auto"))
|
||||
backup_filesystem = NULL;
|
||||
else if (0 == strcmp(vol->mount_point, "/data") && volume_for_path("/sdcard") == NULL && is_data_media())
|
||||
backup_filesystem = NULL;
|
||||
}
|
||||
|
||||
ensure_directory(mount_point);
|
||||
|
5
roots.c
5
roots.c
@ -197,7 +197,7 @@ int try_mount(const char* device, const char* mount_point, const char* fs_type,
|
||||
|
||||
int is_data_media() {
|
||||
Volume *data = volume_for_path("/data");
|
||||
return data != NULL && strcmp(data->fs_type, "auto") == 0 && volume_for_path("/sdcard") == NULL;
|
||||
return data != NULL && strcmp(data->fs_type, "auto") == 0 || volume_for_path("/sdcard") == NULL;
|
||||
}
|
||||
|
||||
void setup_data_media() {
|
||||
@ -334,6 +334,9 @@ int format_volume(const char* volume) {
|
||||
LOGE("unknown volume \"%s\"\n", volume);
|
||||
return -1;
|
||||
}
|
||||
if (strstr(volume, "/data") == volume && volume_for_path("/sdcard") == NULL && is_data_media()) {
|
||||
return format_unknown_device(NULL, volume, NULL);
|
||||
}
|
||||
if (strcmp(v->fs_type, "ramdisk") == 0) {
|
||||
// you can't format the ramdisk.
|
||||
LOGE("can't format_volume \"%s\"", volume);
|
||||
|
Loading…
Reference in New Issue
Block a user