diff options
-rw-r--r-- | init/property_service.cpp | 15 | ||||
-rw-r--r-- | libcutils/fs_config.cpp | 3 |
2 files changed, 13 insertions, 5 deletions
diff --git a/init/property_service.cpp b/init/property_service.cpp index 3490544c8..20f21a950 100644 --- a/init/property_service.cpp +++ b/init/property_service.cpp | |||
@@ -443,7 +443,7 @@ static void handle_property_set_fd() { | |||
443 | } | 443 | } |
444 | } | 444 | } |
445 | 445 | ||
446 | static void load_properties_from_file(const char *, const char *); | 446 | static bool load_properties_from_file(const char *, const char *); |
447 | 447 | ||
448 | /* | 448 | /* |
449 | * Filter is used to decide which properties to load: NULL loads all keys, | 449 | * Filter is used to decide which properties to load: NULL loads all keys, |
@@ -507,17 +507,18 @@ static void load_properties(char *data, const char *filter) | |||
507 | 507 | ||
508 | // Filter is used to decide which properties to load: NULL loads all keys, | 508 | // Filter is used to decide which properties to load: NULL loads all keys, |
509 | // "ro.foo.*" is a prefix match, and "ro.foo.bar" is an exact match. | 509 | // "ro.foo.*" is a prefix match, and "ro.foo.bar" is an exact match. |
510 | static void load_properties_from_file(const char* filename, const char* filter) { | 510 | static bool load_properties_from_file(const char* filename, const char* filter) { |
511 | Timer t; | 511 | Timer t; |
512 | std::string data; | 512 | std::string data; |
513 | std::string err; | 513 | std::string err; |
514 | if (!ReadFile(filename, &data, &err)) { | 514 | if (!ReadFile(filename, &data, &err)) { |
515 | PLOG(WARNING) << "Couldn't load property file: " << err; | 515 | PLOG(WARNING) << "Couldn't load property file: " << err; |
516 | return; | 516 | return false; |
517 | } | 517 | } |
518 | data.push_back('\n'); | 518 | data.push_back('\n'); |
519 | load_properties(&data[0], filter); | 519 | load_properties(&data[0], filter); |
520 | LOG(VERBOSE) << "(Loading properties from " << filename << " took " << t << ".)"; | 520 | LOG(VERBOSE) << "(Loading properties from " << filename << " took " << t << ".)"; |
521 | return true; | ||
521 | } | 522 | } |
522 | 523 | ||
523 | static void load_persistent_properties() { | 524 | static void load_persistent_properties() { |
@@ -592,7 +593,13 @@ static void update_sys_usb_config() { | |||
592 | } | 593 | } |
593 | 594 | ||
594 | void property_load_boot_defaults() { | 595 | void property_load_boot_defaults() { |
595 | load_properties_from_file("/default.prop", NULL); | 596 | if (!load_properties_from_file("/system/etc/prop.default", NULL)) { |
597 | // Try recovery path | ||
598 | if (!load_properties_from_file("/prop.default", NULL)) { | ||
599 | // Try legacy path | ||
600 | load_properties_from_file("/default.prop", NULL); | ||
601 | } | ||
602 | } | ||
596 | load_properties_from_file("/odm/default.prop", NULL); | 603 | load_properties_from_file("/odm/default.prop", NULL); |
597 | load_properties_from_file("/vendor/default.prop", NULL); | 604 | load_properties_from_file("/vendor/default.prop", NULL); |
598 | 605 | ||
diff --git a/libcutils/fs_config.cpp b/libcutils/fs_config.cpp index 221dea268..c39071cb0 100644 --- a/libcutils/fs_config.cpp +++ b/libcutils/fs_config.cpp | |||
@@ -134,7 +134,8 @@ static const struct fs_path_config android_files[] = { | |||
134 | { 00640, AID_ROOT, AID_SHELL, 0, "data/nativetest64/tests.txt" }, | 134 | { 00640, AID_ROOT, AID_SHELL, 0, "data/nativetest64/tests.txt" }, |
135 | { 00750, AID_ROOT, AID_SHELL, 0, "data/nativetest/*" }, | 135 | { 00750, AID_ROOT, AID_SHELL, 0, "data/nativetest/*" }, |
136 | { 00750, AID_ROOT, AID_SHELL, 0, "data/nativetest64/*" }, | 136 | { 00750, AID_ROOT, AID_SHELL, 0, "data/nativetest64/*" }, |
137 | { 00600, AID_ROOT, AID_ROOT, 0, "default.prop" }, | 137 | { 00600, AID_ROOT, AID_ROOT, 0, "default.prop" }, // legacy |
138 | { 00600, AID_ROOT, AID_ROOT, 0, "system/etc/prop.default" }, | ||
138 | { 00600, AID_ROOT, AID_ROOT, 0, "odm/build.prop" }, | 139 | { 00600, AID_ROOT, AID_ROOT, 0, "odm/build.prop" }, |
139 | { 00600, AID_ROOT, AID_ROOT, 0, "odm/default.prop" }, | 140 | { 00600, AID_ROOT, AID_ROOT, 0, "odm/default.prop" }, |
140 | { 00444, AID_ROOT, AID_ROOT, 0, odm_conf_dir + 1 }, | 141 | { 00444, AID_ROOT, AID_ROOT, 0, odm_conf_dir + 1 }, |