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

Commit b8dd0272 authored by Tom Cherry's avatar Tom Cherry
Browse files

init: import init rc scripts from file systems after mount_all

Import /{system,vendor,odm}/etc/init/... after file systems are mounted

Bug: 23186545
Change-Id: Idb0cae9773f904c0330054c8b3e31eb87b2fb7cb
parent cb716f97
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -427,6 +427,19 @@ static int wipe_data_via_recovery()
    while (1) { pause(); }  // never reached
}

void import_late()
{
    static const std::vector<std::string> init_directories = {
        "/system/etc/init",
        "/vendor/etc/init",
        "/odm/etc/init"
    };

    for (const auto& dir : init_directories) {
        init_parse_config(dir.c_str());
    }
}

/*
 * This function might request a reboot, in which case it will
 * not return.
@@ -478,6 +491,8 @@ int do_mount_all(const std::vector<std::string>& args)
        return -1;
    }

    import_late();

    if (ret == FS_MGR_MNTALL_DEV_NEEDS_ENCRYPTION) {
        property_set("vold.decrypt", "trigger_encryption");
    } else if (ret == FS_MGR_MNTALL_DEV_MIGHT_BE_ENCRYPTED) {