summaryrefslogtreecommitdiff
path: root/init/builtins.cpp
diff options
context:
space:
mode:
authorPaul Crowley <paulcrowley@google.com>2016-02-01 16:37:13 +0000
committerPaul Crowley <paulcrowley@google.com>2016-02-01 16:44:46 +0000
commit5949745534e11a877ec839931af76c569f78e058 (patch)
tree390030d2742397806e5c30ee02a46f95dfe0c45a /init/builtins.cpp
parent9efdfdb69fd9fd024567e9ca876946fdd6f9ca23 (diff)
On FDE devices, initialize user 0
Fix ugly special cases for user 0: initialize them explicitly. Bug: 26704408 Change-Id: I1b8536b9e5e87ea98b4009a309f2e22c56006651
Diffstat (limited to 'init/builtins.cpp')
-rw-r--r--init/builtins.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/init/builtins.cpp b/init/builtins.cpp
index 5918609ed..e5e64b4e5 100644
--- a/init/builtins.cpp
+++ b/init/builtins.cpp
@@ -884,6 +884,13 @@ static int do_installkey(const std::vector<std::string>& args) {
do_installkeys_ensure_dir_exists);
}
+static int do_init_user0(const std::vector<std::string>& args) {
+ if (!is_file_crypto()) {
+ return 0;
+ }
+ return e4crypt_do_init_user0();
+}
+
BuiltinFunctionMap::Map& BuiltinFunctionMap::map() const {
constexpr std::size_t kMax = std::numeric_limits<std::size_t>::max();
static const Map builtin_functions = {
@@ -900,6 +907,7 @@ BuiltinFunctionMap::Map& BuiltinFunctionMap::map() const {
{"export", {2, 2, do_export}},
{"hostname", {1, 1, do_hostname}},
{"ifup", {1, 1, do_ifup}},
+ {"init_user0", {0, 0, do_init_user0}},
{"insmod", {1, kMax, do_insmod}},
{"installkey", {1, 1, do_installkey}},
{"load_persist_props", {0, 0, do_load_persist_props}},