diff options
| author | Tom Cherry <tomcherry@google.com> | 2015-07-22 14:23:33 -0700 |
|---|---|---|
| committer | Tom Cherry <tomcherry@google.com> | 2015-08-21 10:14:43 -0700 |
| commit | b7b39e180321b4c30ae8753e8531ed249fdbacad (patch) | |
| tree | 0a033e6b623349ba1bd6927ec8d6103af9fe32f9 /init/builtins.cpp | |
| parent | 53e09b52497ecfed37ddb323995a23f1b935fbd7 (diff) | |
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
Diffstat (limited to 'init/builtins.cpp')
| -rw-r--r-- | init/builtins.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/init/builtins.cpp b/init/builtins.cpp index e663501633..97151c01b5 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<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) { |
