diff options
author | Paul Lawrence <paullawrence@google.com> | 2015-07-01 14:40:56 -0700 |
---|---|---|
committer | Paul Lawrence <paullawrence@google.com> | 2015-07-07 13:23:19 -0700 |
commit | 948410a4936fda5348304af9711db932926bcc1a (patch) | |
tree | 818c20f6659135757abe766fa08724324d899250 /init | |
parent | 8104616696ac5e806b16a393ea02c4f5d8efc328 (diff) | |
download | system_core-948410a4936fda5348304af9711db932926bcc1a.zip system_core-948410a4936fda5348304af9711db932926bcc1a.tar.gz system_core-948410a4936fda5348304af9711db932926bcc1a.tar.bz2 |
Change init sequence to support file level encryption
File level encryption must get the key between mounting userdata and
calling post_fs_data when the directories are created. This requires
access to keymaster, which in turn is found from a system property.
Split property loaded into system and data, and load in right order.
Bug: 22233063
Diffstat (limited to 'init')
-rw-r--r-- | init/builtins.cpp | 4 | ||||
-rw-r--r-- | init/init_parser.cpp | 2 | ||||
-rw-r--r-- | init/keywords.h | 4 | ||||
-rw-r--r-- | init/property_service.cpp | 8 | ||||
-rw-r--r-- | init/property_service.h | 2 |
5 files changed, 7 insertions, 13 deletions
diff --git a/init/builtins.cpp b/init/builtins.cpp index 9e5f9ff..64a363e 100644 --- a/init/builtins.cpp +++ b/init/builtins.cpp @@ -803,9 +803,9 @@ int do_load_persist_props(int nargs, char **args) { return -1; } -int do_load_all_props(int nargs, char **args) { +int do_load_system_props(int nargs, char **args) { if (nargs == 1) { - load_all_props(); + load_system_props(); return 0; } return -1; diff --git a/init/init_parser.cpp b/init/init_parser.cpp index 666a86e..0f0c88e 100644 --- a/init/init_parser.cpp +++ b/init/init_parser.cpp @@ -159,7 +159,7 @@ static int lookup_keyword(const char *s) case 'l': if (!strcmp(s, "oglevel")) return K_loglevel; if (!strcmp(s, "oad_persist_props")) return K_load_persist_props; - if (!strcmp(s, "oad_all_props")) return K_load_all_props; + if (!strcmp(s, "oad_system_props")) return K_load_system_props; break; case 'm': if (!strcmp(s, "kdir")) return K_mkdir; diff --git a/init/keywords.h b/init/keywords.h index e637d7d..ddaaffb 100644 --- a/init/keywords.h +++ b/init/keywords.h @@ -34,7 +34,7 @@ int do_chown(int nargs, char **args); int do_chmod(int nargs, char **args); int do_loglevel(int nargs, char **args); int do_load_persist_props(int nargs, char **args); -int do_load_all_props(int nargs, char **args); +int do_load_system_props(int nargs, char **args); int do_verity_load_state(int nargs, char **args); int do_verity_update_state(int nargs, char **args); int do_wait(int nargs, char **args); @@ -66,7 +66,7 @@ enum { KEYWORD(installkey, COMMAND, 1, do_installkey) KEYWORD(ioprio, OPTION, 0, 0) KEYWORD(keycodes, OPTION, 0, 0) - KEYWORD(load_all_props, COMMAND, 0, do_load_all_props) + KEYWORD(load_system_props, COMMAND, 0, do_load_system_props) KEYWORD(load_persist_props, COMMAND, 0, do_load_persist_props) KEYWORD(loglevel, COMMAND, 1, do_loglevel) KEYWORD(mkdir, COMMAND, 1, do_mkdir) diff --git a/init/property_service.cpp b/init/property_service.cpp index c2881ae..52f6b98 100644 --- a/init/property_service.cpp +++ b/init/property_service.cpp @@ -560,16 +560,10 @@ void load_recovery_id_prop() { close(fd); } -void load_all_props() { +void load_system_props() { load_properties_from_file(PROP_PATH_SYSTEM_BUILD, NULL); load_properties_from_file(PROP_PATH_VENDOR_BUILD, NULL); load_properties_from_file(PROP_PATH_FACTORY, "ro.*"); - - load_override_properties(); - - /* Read persistent properties after all default values have been loaded. */ - load_persistent_properties(); - load_recovery_id_prop(); } diff --git a/init/property_service.h b/init/property_service.h index a27053d..303f251 100644 --- a/init/property_service.h +++ b/init/property_service.h @@ -23,7 +23,7 @@ extern void property_init(void); extern void property_load_boot_defaults(void); extern void load_persist_props(void); -extern void load_all_props(void); +extern void load_system_props(void); extern void start_property_service(void); void get_property_workspace(int *fd, int *sz); extern int __property_get(const char *name, char *value); |