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

Commit e3745bc5 authored by Tom Cherry's avatar Tom Cherry Committed by Gerrit Code Review
Browse files

Merge "init: use '/system' as the system mount point for force_normal_boot"

parents 4b187d2b c3829577
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -120,14 +120,18 @@ static inline bool IsDtVbmetaCompatible() {
    return is_android_dt_value_expected("vbmeta/compatible", "android,vbmeta");
}

static bool IsRecoveryMode() {
static bool ForceNormalBoot() {
    static bool force_normal_boot = []() {
        std::string cmdline;
        android::base::ReadFileToString("/proc/cmdline", &cmdline);
        return cmdline.find("androidboot.force_normal_boot=1") != std::string::npos;
    }();

    return !force_normal_boot && access("/system/bin/recovery", F_OK) == 0;
    return force_normal_boot;
}

static bool IsRecoveryMode() {
    return !ForceNormalBoot() && access("/system/bin/recovery", F_OK) == 0;
}

static inline bool IsDmLinearEnabled() {
@@ -368,11 +372,15 @@ bool FirstStageMount::MountPartitions() {
    // this case, we mount system first then pivot to it.  From that point on,
    // we are effectively identical to a system-as-root device.
    auto system_partition =
            std::find_if(mount_fstab_recs_.begin(), mount_fstab_recs_.end(), [](const auto& rec) {
                return rec->mount_point == "/system"s ||
                       rec->mount_point == "/system_recovery_mount"s;
            });
            std::find_if(mount_fstab_recs_.begin(), mount_fstab_recs_.end(),
                         [](const auto& rec) { return rec->mount_point == "/system"s; });

    if (system_partition != mount_fstab_recs_.end()) {
        if (ForceNormalBoot()) {
            free((*system_partition)->mount_point);
            (*system_partition)->mount_point = strdup("/system_recovery_mount");
        }

        if (!MountPartition(*system_partition)) {
            return false;
        }