From b8dd0272e5decb066152e9dc99bcb41e60264a99 Mon Sep 17 00:00:00 2001 From: Tom Cherry Date: Wed, 22 Jul 2015 14:23:33 -0700 Subject: [PATCH] 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 --- init/builtins.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/init/builtins.cpp b/init/builtins.cpp index e66350163364..97151c01b58a 100644 --- a/init/builtins.cpp +++ b/init/builtins.cpp @@ -427,6 +427,19 @@ static int wipe_data_via_recovery() while (1) { pause(); } // never reached } +void import_late() +{ + static const std::vector 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& 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) {