Merge branch 'ics' of git://github.com/CyanogenMod/android_bootable_recovery into ics
This commit is contained in:
		@@ -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);
 | 
			
		||||
@@ -825,7 +828,7 @@ void show_nandroid_menu()
 | 
			
		||||
                            NULL
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    if (volume_for_path("/emmc") == NULL)
 | 
			
		||||
    if (volume_for_path("/emmc") == NULL || volume_for_path("/sdcard") == NULL && is_data_media())
 | 
			
		||||
        list[3] = NULL;
 | 
			
		||||
 | 
			
		||||
    int chosen_item = get_menu_selection(headers, list, 0, 0);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								nandroid.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								nandroid.c
									
									
									
									
									
								
							@@ -233,6 +233,12 @@ int nandroid_backup(const char* backup_path)
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    Volume* volume = volume_for_path(backup_path);
 | 
			
		||||
    if (NULL == volume) {
 | 
			
		||||
      if (strstr(backup_path, "/sdcard") == backup_path && is_data_media())
 | 
			
		||||
          volume = volume_for_path("/data");
 | 
			
		||||
      else
 | 
			
		||||
          return print_and_error("Unable to find volume for backup path.\n");
 | 
			
		||||
    }
 | 
			
		||||
    int ret;
 | 
			
		||||
    struct statfs s;
 | 
			
		||||
    if (NULL != volume) {
 | 
			
		||||
@@ -430,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.
 | 
			
		||||
@@ -443,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);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user