diff options
author | Jaekyun Seok <jaekyun@google.com> | 2017-02-22 20:37:57 +0900 |
---|---|---|
committer | Jaekyun Seok <jaekyun@google.com> | 2017-02-25 08:06:12 +0900 |
commit | 4ec72cc25fe889818977ea00d2e97c17a04818a5 (patch) | |
tree | c8c3dd7612a57c6cd19ac78955af0efd4957034b /init/builtins.cpp | |
parent | dbb40b64e9832c6bb808f73f384902aa356f0756 (diff) |
Treblize init.rc location
Treblization requires to locate partner-specific modules in its own
partition. So their own init.rc file could be located in /odm or
/vendor.
This CL is to support those locations for the init.rc.
Additionally thic CL modified import parser to support importing a
relative path.
Test: building succeeded and tested on sailfish with enabling early
mount.
Bug: 35269867
Change-Id: I1bce924a32c8a2b53fb5d981d35d758cf9ddd9a6
Diffstat (limited to 'init/builtins.cpp')
-rw-r--r-- | init/builtins.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/init/builtins.cpp b/init/builtins.cpp index 2388edcf7..6dd1cbb10 100644 --- a/init/builtins.cpp +++ b/init/builtins.cpp @@ -476,15 +476,18 @@ exit_success: static void import_late(const std::vector<std::string>& args, size_t start_index, size_t end_index) { Parser& parser = Parser::GetInstance(); if (end_index <= start_index) { - // Use the default set if no path is given - static const std::vector<std::string> init_directories = { - "/system/etc/init", - "/vendor/etc/init", - "/odm/etc/init" - }; - - for (const auto& dir : init_directories) { - parser.ParseConfig(dir); + // Fallbacks for partitions on which early mount isn't enabled. + if (!parser.is_system_etc_init_loaded()) { + parser.ParseConfig("/system/etc/init"); + parser.set_is_system_etc_init_loaded(true); + } + if (!parser.is_vendor_etc_init_loaded()) { + parser.ParseConfig("/vendor/etc/init"); + parser.set_is_vendor_etc_init_loaded(true); + } + if (!parser.is_odm_etc_init_loaded()) { + parser.ParseConfig("/odm/etc/init"); + parser.set_is_odm_etc_init_loaded(true); } } else { for (size_t i = start_index; i < end_index; ++i) { |