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) {