From 959aeb17d5a533042bc0af02df5801b551509237 Mon Sep 17 00:00:00 2001 From: Hung-ying Tyan Date: Wed, 18 Jan 2017 09:39:36 +0800 Subject: [PATCH] init: add ro.boot.init_rc SoC vendors and ODMs need a way to run different init scripts under different boot modes. This patch adds a new ro.boot.init_rc kernel cmdline argument to support this. Bug: 26639863 Test: Tested on bullhead with androidboot.init_rc given a non-existent .rc file which leads to expected boot failures. Boot succeeds if androidboot.init_rc is not specified. Change-Id: I2bca1cc3de6720feced041fe87266fb8afcce8b0 --- init/init.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/init/init.cpp b/init/init.cpp index ee5add898..0615cf22d 100644 --- a/init/init.cpp +++ b/init/init.cpp @@ -800,7 +800,12 @@ int main(int argc, char** argv) { parser.AddSectionParser("service",std::make_unique()); parser.AddSectionParser("on", std::make_unique()); parser.AddSectionParser("import", std::make_unique()); - parser.ParseConfig("/init.rc"); + std::string bootscript = property_get("ro.boot.init_rc"); + if (bootscript.empty()) { + parser.ParseConfig("/init.rc"); + } else { + parser.ParseConfig(bootscript); + } ActionManager& am = ActionManager::GetInstance();