diff options
author | Koushik Dutta <koushd@gmail.com> | 2011-06-10 09:45:52 -0700 |
---|---|---|
committer | Koushik Dutta <koushd@gmail.com> | 2011-06-10 09:45:52 -0700 |
commit | 38a921435a4050acb0d1db1c3299a131039ea1c6 (patch) | |
tree | 909fb93516aed5fc913b5d28b236b167ed34c30f /roots.c | |
parent | 94caefedb7758b6d520bb98a7e9a7befb57312f4 (diff) | |
download | android_bootable_recovery-38a921435a4050acb0d1db1c3299a131039ea1c6.tar.gz android_bootable_recovery-38a921435a4050acb0d1db1c3299a131039ea1c6.tar.bz2 android_bootable_recovery-38a921435a4050acb0d1db1c3299a131039ea1c6.zip |
make tar backups opt in.
Change-Id: Ib01131f3a65ce4114e73abe2c7ba42263d281844
Diffstat (limited to 'roots.c')
-rw-r--r-- | roots.c | 18 |
1 files changed, 14 insertions, 4 deletions
@@ -164,17 +164,27 @@ int try_mount(const char* device, const char* mount_point, const char* fs_type, return ret; } +int is_data_media() { + Volume *data = volume_for_path("/data"); + return data != NULL && strcmp(data->fs_type, "auto") == 0 && volume_for_path("/sdcard") == NULL; +} + +void setup_data_media() { + rmdir("/sdcard"); + mkdir("/data/media", 0755); + symlink("/data/media", "/sdcard"); +} + int ensure_path_mounted(const char* path) { Volume* v = volume_for_path(path); if (v == NULL) { // no /sdcard? let's assume /data/media - if (strstr(path, "/sdcard") == path) { + if (strstr(path, "/sdcard") == path && is_data_media()) { LOGW("using /data/media, no /sdcard found.\n"); int ret; if (0 != (ret = ensure_path_mounted("/data"))) return ret; - rmdir("/sdcard"); - symlink("/data/media", "/sdcard"); + setup_data_media(); return 0; } LOGE("unknown volume for path [%s]\n", path); @@ -245,7 +255,7 @@ int ensure_path_unmounted(const char* path) { Volume* v = volume_for_path(path); if (v == NULL) { // no /sdcard? let's assume /data/media - if (strstr(path, "/sdcard") == path) { + if (strstr(path, "/sdcard") == path && is_data_media()) { return ensure_path_unmounted("/data"); } LOGE("unknown volume for path [%s]\n", path); |