diff options
author | Tianjie Xu <xunchang@google.com> | 2016-09-02 01:04:37 +0200 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-09-02 01:04:37 +0200 |
commit | 61590bbf0d140ffa071eb14b17ae4c3dbc2be5ca (patch) | |
tree | b2d7cdcf7b401978c739d0449c76f92982d918a8 /roots.cpp | |
parent | Merge "Check an edge case when read(2) returns 0" (diff) | |
parent | Switch recovery to libbase logging (diff) | |
download | android_bootable_recovery-61590bbf0d140ffa071eb14b17ae4c3dbc2be5ca.tar android_bootable_recovery-61590bbf0d140ffa071eb14b17ae4c3dbc2be5ca.tar.gz android_bootable_recovery-61590bbf0d140ffa071eb14b17ae4c3dbc2be5ca.tar.bz2 android_bootable_recovery-61590bbf0d140ffa071eb14b17ae4c3dbc2be5ca.tar.lz android_bootable_recovery-61590bbf0d140ffa071eb14b17ae4c3dbc2be5ca.tar.xz android_bootable_recovery-61590bbf0d140ffa071eb14b17ae4c3dbc2be5ca.tar.zst android_bootable_recovery-61590bbf0d140ffa071eb14b17ae4c3dbc2be5ca.zip |
Diffstat (limited to '')
-rw-r--r-- | roots.cpp | 57 |
1 files changed, 31 insertions, 26 deletions
@@ -26,6 +26,8 @@ #include <ctype.h> #include <fcntl.h> +#include <android-base/logging.h> + #include <fs_mgr.h> #include "common.h" #include "make_ext4fs.h" @@ -44,13 +46,13 @@ void load_volume_table() fstab = fs_mgr_read_fstab("/etc/recovery.fstab"); if (!fstab) { - LOGE("failed to read /etc/recovery.fstab\n"); + LOG(ERROR) << "failed to read /etc/recovery.fstab"; return; } ret = fs_mgr_add_entry(fstab, "/tmp", "ramdisk", "ramdisk"); if (ret < 0 ) { - LOGE("failed to add /tmp entry to fstab\n"); + LOG(ERROR) << "failed to add /tmp entry to fstab"; fs_mgr_free_fstab(fstab); fstab = NULL; return; @@ -74,7 +76,7 @@ Volume* volume_for_path(const char* path) { int ensure_path_mounted_at(const char* path, const char* mount_point) { Volume* v = volume_for_path(path); if (v == NULL) { - LOGE("unknown volume for path [%s]\n", path); + LOG(ERROR) << "unknown volume for path [" << path << "]"; return -1; } if (strcmp(v->fs_type, "ramdisk") == 0) { @@ -83,7 +85,7 @@ int ensure_path_mounted_at(const char* path, const char* mount_point) { } if (!scan_mounted_volumes()) { - LOGE("failed to scan mounted volumes\n"); + LOG(ERROR) << "failed to scan mounted volumes"; return -1; } @@ -104,25 +106,25 @@ int ensure_path_mounted_at(const char* path, const char* mount_point) { strcmp(v->fs_type, "vfat") == 0) { int result = mount(v->blk_device, mount_point, v->fs_type, v->flags, v->fs_options); if (result == -1 && fs_mgr_is_formattable(v)) { - LOGE("failed to mount %s (%s), formatting ...\n", - mount_point, strerror(errno)); + LOG(ERROR) << "failed to mount " << mount_point << " (" << strerror(errno) + << ") , formatting....."; bool crypt_footer = fs_mgr_is_encryptable(v) && !strcmp(v->key_loc, "footer"); if (fs_mgr_do_format(v, crypt_footer) == 0) { result = mount(v->blk_device, mount_point, v->fs_type, v->flags, v->fs_options); } else { - LOGE("failed to format %s (%s)\n", mount_point, strerror(errno)); + PLOG(ERROR) << "failed to format " << mount_point; return -1; } } if (result == -1) { - LOGE("failed to mount %s (%s)\n", mount_point, strerror(errno)); + PLOG(ERROR) << "failed to mount " << mount_point; return -1; } return 0; } - LOGE("unknown fs_type \"%s\" for %s\n", v->fs_type, mount_point); + LOG(ERROR) << "unknown fs_type \"" << v->fs_type << "\" for " << mount_point; return -1; } @@ -134,7 +136,7 @@ int ensure_path_mounted(const char* path) { int ensure_path_unmounted(const char* path) { Volume* v = volume_for_path(path); if (v == NULL) { - LOGE("unknown volume for path [%s]\n", path); + LOG(ERROR) << "unknown volume for path [" << path << "]"; return -1; } if (strcmp(v->fs_type, "ramdisk") == 0) { @@ -143,7 +145,7 @@ int ensure_path_unmounted(const char* path) { } if (!scan_mounted_volumes()) { - LOGE("failed to scan mounted volumes\n"); + LOG(ERROR) << "failed to scan mounted volumes"; return -1; } @@ -165,7 +167,7 @@ static int exec_cmd(const char* path, char* const argv[]) { } waitpid(child, &status, 0); if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) { - LOGE("%s failed with status %d\n", path, WEXITSTATUS(status)); + LOG(ERROR) << path << " failed with status " << WEXITSTATUS(status); } return WEXITSTATUS(status); } @@ -173,21 +175,21 @@ static int exec_cmd(const char* path, char* const argv[]) { int format_volume(const char* volume, const char* directory) { Volume* v = volume_for_path(volume); if (v == NULL) { - LOGE("unknown volume \"%s\"\n", volume); + LOG(ERROR) << "unknown volume \"" << volume << "\""; return -1; } if (strcmp(v->fs_type, "ramdisk") == 0) { // you can't format the ramdisk. - LOGE("can't format_volume \"%s\"", volume); + LOG(ERROR) << "can't format_volume \"" << volume << "\""; return -1; } if (strcmp(v->mount_point, volume) != 0) { - LOGE("can't give path \"%s\" to format_volume\n", volume); + LOG(ERROR) << "can't give path \"" << volume << "\" to format_volume"; return -1; } if (ensure_path_unmounted(volume) != 0) { - LOGE("format_volume failed to unmount \"%s\"\n", v->mount_point); + LOG(ERROR) << "format_volume failed to unmount \"" << v->mount_point << "\""; return -1; } @@ -195,10 +197,10 @@ int format_volume(const char* volume, const char* directory) { // if there's a key_loc that looks like a path, it should be a // block device for storing encryption metadata. wipe it too. if (v->key_loc != NULL && v->key_loc[0] == '/') { - LOGI("wiping %s\n", v->key_loc); + LOG(INFO) << "wiping " << v->key_loc; int fd = open(v->key_loc, O_WRONLY | O_CREAT, 0644); if (fd < 0) { - LOGE("format_volume: failed to open %s\n", v->key_loc); + LOG(ERROR) << "format_volume: failed to open " << v->key_loc; return -1; } wipe_block_device(fd, get_file_size(fd)); @@ -216,16 +218,19 @@ int format_volume(const char* volume, const char* directory) { result = make_ext4fs_directory(v->blk_device, length, volume, sehandle, directory); } else { /* Has to be f2fs because we checked earlier. */ if (v->key_loc != NULL && strcmp(v->key_loc, "footer") == 0 && length < 0) { - LOGE("format_volume: crypt footer + negative length (%zd) not supported on %s\n", length, v->fs_type); + LOG(ERROR) << "format_volume: crypt footer + negative length (" << length + << ") not supported on " << v->fs_type; return -1; } if (length < 0) { - LOGE("format_volume: negative length (%zd) not supported on %s\n", length, v->fs_type); + LOG(ERROR) << "format_volume: negative length (" << length + << ") not supported on " << v->fs_type; return -1; } char *num_sectors; if (asprintf(&num_sectors, "%zd", length / 512) <= 0) { - LOGE("format_volume: failed to create %s command for %s\n", v->fs_type, v->blk_device); + LOG(ERROR) << "format_volume: failed to create " << v->fs_type + << " command for " << v->blk_device; return -1; } const char *f2fs_path = "/sbin/mkfs.f2fs"; @@ -235,13 +240,13 @@ int format_volume(const char* volume, const char* directory) { free(num_sectors); } if (result != 0) { - LOGE("format_volume: make %s failed on %s with %d(%s)\n", v->fs_type, v->blk_device, result, strerror(errno)); + PLOG(ERROR) << "format_volume: make " << v->fs_type << " failed on " << v->blk_device; return -1; } return 0; } - LOGE("format_volume: fs_type \"%s\" unsupported\n", v->fs_type); + LOG(ERROR) << "format_volume: fs_type \"" << v->fs_type << "\" unsupported"; return -1; } @@ -251,7 +256,7 @@ int format_volume(const char* volume) { int setup_install_mounts() { if (fstab == NULL) { - LOGE("can't set up install mounts: no fstab loaded\n"); + LOG(ERROR) << "can't set up install mounts: no fstab loaded"; return -1; } for (int i = 0; i < fstab->num_entries; ++i) { @@ -260,13 +265,13 @@ int setup_install_mounts() { if (strcmp(v->mount_point, "/tmp") == 0 || strcmp(v->mount_point, "/cache") == 0) { if (ensure_path_mounted(v->mount_point) != 0) { - LOGE("failed to mount %s\n", v->mount_point); + LOG(ERROR) << "failed to mount " << v->mount_point; return -1; } } else { if (ensure_path_unmounted(v->mount_point) != 0) { - LOGE("failed to unmount %s\n", v->mount_point); + LOG(ERROR) << "failed to unmount " << v->mount_point; return -1; } } |