Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fe00ae09 authored by Yifan Hong's avatar Yifan Hong Committed by android-build-merger
Browse files

Merge "SYSTEM_ROOT -> get_system_root"

am: cbfeb7f6

Change-Id: I3ac20643f620bcf469509241b17a02f9343efa20
parents 21197a7f cbfeb7f6
Loading
Loading
Loading
Loading
+4 −9
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@

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,14 +120,10 @@ bool do_fsck_unshare_blocks() {
  std::vector<std::string> partitions = { "/odm", "/oem", "/product", "/vendor" };

  // Temporarily mount system so we can copy e2fsck_static.
  bool mounted = 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_ROOT, "/mnt/system") != -1;
    partitions.push_back(SYSTEM_ROOT);
  }
  std::string system_root = get_system_root();
  bool mounted = ensure_path_mounted_at(system_root.c_str(), "/mnt/system");
  partitions.push_back(system_root);

  if (!mounted) {
    LOG(ERROR) << "Failed to mount system image.";
    return false;
+2 −9
Original line number Diff line number Diff line
@@ -78,7 +78,6 @@ 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.
@@ -837,15 +836,9 @@ static Device::BuiltinAction prompt_and_wait(Device* device, int status) {
      }
      case Device::MOUNT_SYSTEM:
        // the system partition is mounted at /mnt/system
        if (volume_for_mount_point(SYSTEM_ROOT) == nullptr) {
          if (ensure_path_mounted_at("/", "/mnt/system") != -1) {
        if (ensure_path_mounted_at(get_system_root().c_str(), "/mnt/system") != -1) {
          ui->Print("Mounted /system.\n");
        }
        } else {
          if (ensure_path_mounted_at(SYSTEM_ROOT, "/mnt/system") != -1) {
            ui->Print("Mounted /system.\n");
          }
        }
        break;

      case Device::KEY_INTERRUPTED:
+9 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@

static struct fstab* fstab = nullptr;
static bool did_map_logical_partitions = false;
static constexpr const char* SYSTEM_ROOT = "/system";

extern struct selabel_handle* sehandle;

@@ -408,3 +409,11 @@ int setup_install_mounts() {
bool logical_partitions_mapped() {
  return did_map_logical_partitions;
}

std::string get_system_root() {
  if (volume_for_mount_point(SYSTEM_ROOT) == nullptr) {
    return "/";
  } else {
    return SYSTEM_ROOT;
  }
}
+2 −0
Original line number Diff line number Diff line
@@ -55,4 +55,6 @@ int setup_install_mounts();

bool logical_partitions_mapped();

std::string get_system_root();

#endif  // RECOVERY_ROOTS_H_