From 5a86cb7694b31c7506ed5c42241f4e601efa65cb Mon Sep 17 00:00:00 2001 From: Tom Cherry Date: Wed, 3 May 2017 13:19:03 -0700 Subject: [PATCH] init: use do_exec() for init_user0 Similar to what installkey used to do, init_user0 forks and synchronously waits for vdc to return. This is dangerous to do in init however as init also processes properties from a single thread. I'm not aware of any specific issues that this is currently causing, but it's a good preventative measure to match what installkey does and use do_exec(). Test: Boot bullhead, see that init_user0 still happens Change-Id: I853c61594fe3d97e91bbb2319ebddf2bbe80d457 --- init/builtins.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/init/builtins.cpp b/init/builtins.cpp index 559fb8468..3dadfd7dc 100644 --- a/init/builtins.cpp +++ b/init/builtins.cpp @@ -835,7 +835,9 @@ static int do_installkey(const std::vector& args) { } static int do_init_user0(const std::vector& args) { - return e4crypt_do_init_user0(); + std::vector exec_args = {"exec", "/system/bin/vdc", "--wait", "cryptfs", + "init_user0"}; + return do_exec(exec_args); } const BuiltinFunctionMap::Map& BuiltinFunctionMap::map() const {