diff options
author | Haoyu Tang <haoyu.tang@intel.com> | 2019-01-05 09:31:28 +0800 |
---|---|---|
committer | Xihua Chen <xihua.chen@intel.com> | 2019-01-10 01:02:29 +0000 |
commit | f32bc7cd29fa8aeec69f41a2457445c356e1556c (patch) | |
tree | 7c7daa3b39cc8718bee608dec47031c4c23bbbe3 /init/main.cpp | |
parent | c2aad281fc8b38a683cc92ef2387f9e937dc1141 (diff) |
init: remove the restriction of arguments
X86 Kernel could pass CPU capablity to init as argument. This will cause init
can't start first-stage because unknown argument. Need remove this restriction
of arguments to start init successfully.
Fixes: 122435289
Test: Android init can start successfully
Change-Id: I1d432e25553589dd7f618e42ad238b9372dbe34f
Signed-off-by: Haoyu Tang <haoyu.tang@intel.com>
Signed-off-by: Xihua Chen <xihua.chen@intel.com>
Diffstat (limited to 'init/main.cpp')
-rw-r--r-- | init/main.cpp | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/init/main.cpp b/init/main.cpp index 868c409d0b..2ce46efd82 100644 --- a/init/main.cpp +++ b/init/main.cpp @@ -57,27 +57,22 @@ int main(int argc, char** argv) { return ueventd_main(argc, argv); } - if (argc < 2) { - return FirstStageMain(argc, argv); - } + if (argc > 1) { + if (!strcmp(argv[1], "subcontext")) { + android::base::InitLogging(argv, &android::base::KernelLogger); + const BuiltinFunctionMap function_map; - if (!strcmp(argv[1], "subcontext")) { - android::base::InitLogging(argv, &android::base::KernelLogger); - const BuiltinFunctionMap function_map; + return SubcontextMain(argc, argv, &function_map); + } - return SubcontextMain(argc, argv, &function_map); - } + if (!strcmp(argv[1], "selinux_setup")) { + return SetupSelinux(argv); + } - if (!strcmp(argv[1], "selinux_setup")) { - return SetupSelinux(argv); + if (!strcmp(argv[1], "second_stage")) { + return SecondStageMain(argc, argv); + } } - if (!strcmp(argv[1], "second_stage")) { - return SecondStageMain(argc, argv); - } - - android::base::InitLogging(argv, &android::base::KernelLogger); - - LOG(ERROR) << "Unknown argument passed to init '" << argv[1] << "'"; - return 1; + return FirstStageMain(argc, argv); } |