From fdea242a91217bc5d476b9ffa8eb3a5e71e71eef Mon Sep 17 00:00:00 2001 From: Mark Salyzyn Date: Wed, 29 Aug 2018 10:44:33 -0700 Subject: recovery: deprecate check for ro.build.system_root_image If there is a "/system" in the fstab, then can not be a system as root image. Test: compile Bug: 109821005 Change-Id: I2c852dcbdcf6de437d39039937799feeef949516 --- fsck_unshare_blocks.cpp | 7 ++++--- recovery.cpp | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/fsck_unshare_blocks.cpp b/fsck_unshare_blocks.cpp index 2e6b5b807..684958e38 100644 --- a/fsck_unshare_blocks.cpp +++ b/fsck_unshare_blocks.cpp @@ -40,6 +40,7 @@ static constexpr const char* SYSTEM_E2FSCK_BIN = "/system/bin/e2fsck_static"; static constexpr const char* TMP_E2FSCK_BIN = "/tmp/e2fsck.bin"; +static constexpr const char* SYSTEM_ROOT = "/system"; static bool copy_file(const char* source, const char* dest) { android::base::unique_fd source_fd(open(source, O_RDONLY)); @@ -121,12 +122,12 @@ bool do_fsck_unshare_blocks() { // Temporarily mount system so we can copy e2fsck_static. bool mounted = false; - if (android::base::GetBoolProperty("ro.build.system_root_image", false)) { + if (volume_for_mount_point(SYSTEM_ROOT) == nullptr) { mounted = ensure_path_mounted_at("/", "/mnt/system") != -1; partitions.push_back("/"); } else { - mounted = ensure_path_mounted_at("/system", "/mnt/system") != -1; - partitions.push_back("/system"); + mounted = ensure_path_mounted_at(SYSTEM_ROOT, "/mnt/system") != -1; + partitions.push_back(SYSTEM_ROOT); } if (!mounted) { LOG(ERROR) << "Failed to mount system image."; diff --git a/recovery.cpp b/recovery.cpp index 7cc344bce..3ea282fc0 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -78,6 +78,7 @@ static constexpr const char* CACHE_ROOT = "/cache"; static constexpr const char* DATA_ROOT = "/data"; static constexpr const char* METADATA_ROOT = "/metadata"; static constexpr const char* SDCARD_ROOT = "/sdcard"; +static constexpr const char* SYSTEM_ROOT = "/system"; // We define RECOVERY_API_VERSION in Android.mk, which will be picked up by build system and packed // into target_files.zip. Assert the version defined in code and in Android.mk are consistent. @@ -852,12 +853,12 @@ static Device::BuiltinAction prompt_and_wait(Device* device, int status) { } case Device::MOUNT_SYSTEM: // the system partition is mounted at /mnt/system - if (android::base::GetBoolProperty("ro.build.system_root_image", false)) { + if (volume_for_mount_point(SYSTEM_ROOT) == nullptr) { if (ensure_path_mounted_at("/", "/mnt/system") != -1) { ui->Print("Mounted /system.\n"); } } else { - if (ensure_path_mounted_at("/system", "/mnt/system") != -1) { + if (ensure_path_mounted_at(SYSTEM_ROOT, "/mnt/system") != -1) { ui->Print("Mounted /system.\n"); } } -- cgit v1.2.3