diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2019-01-11 00:58:18 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-01-11 00:58:18 +0000 |
commit | 89e2aa94b72fbce395c2549208890832e5b8d341 (patch) | |
tree | ac7604751ca0261808ec8720e5b34b8a6d546d2f /init/builtins.cpp | |
parent | fce33ca0bf4c41a2c346ecfab5996d025f77894f (diff) | |
parent | ca00b0edebe888e55b068adaab30680d4c40becf (diff) |
Merge "Add conditional class starting"
Diffstat (limited to 'init/builtins.cpp')
-rw-r--r-- | init/builtins.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/init/builtins.cpp b/init/builtins.cpp index 7fd4e2737..52828c00d 100644 --- a/init/builtins.cpp +++ b/init/builtins.cpp @@ -100,6 +100,9 @@ static void ForEachServiceInClass(const std::string& classname, F function) { } static Result<Success> do_class_start(const BuiltinArguments& args) { + // Do not start a class if it has a property persist.dont_start_class.CLASS set to 1. + if (android::base::GetBoolProperty("persist.init.dont_start_class." + args[1], false)) + return Success(); // Starting a class does not start services which are explicitly disabled. // They must be started individually. for (const auto& service : ServiceList::GetInstance()) { @@ -124,6 +127,9 @@ static Result<Success> do_class_reset(const BuiltinArguments& args) { } static Result<Success> do_class_restart(const BuiltinArguments& args) { + // Do not restart a class if it has a property persist.dont_start_class.CLASS set to 1. + if (android::base::GetBoolProperty("persist.init.dont_start_class." + args[1], false)) + return Success(); ForEachServiceInClass(args[1], &Service::Restart); return Success(); } |