summaryrefslogtreecommitdiff
path: root/init/main.cpp
diff options
context:
space:
mode:
authorHaoyu Tang <haoyu.tang@intel.com>2019-01-05 09:31:28 +0800
committerXihua Chen <xihua.chen@intel.com>2019-01-10 01:02:29 +0000
commitf32bc7cd29fa8aeec69f41a2457445c356e1556c (patch)
tree7c7daa3b39cc8718bee608dec47031c4c23bbbe3 /init/main.cpp
parentc2aad281fc8b38a683cc92ef2387f9e937dc1141 (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.cpp31
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);
}