Merge "init: do not load persistent properties from temporary /data"

This commit is contained in:
Tom Cherry 2017-08-25 16:37:20 +00:00 committed by Gerrit Code Review
commit b1d93a8136

View file

@ -690,6 +690,17 @@ static void load_override_properties() {
* has mounted /data.
*/
void load_persist_props(void) {
// Devices with FDE have load_persist_props called twice; the first time when the temporary
// /data partition is mounted and then again once /data is truly mounted. We do not want to
// read persistent properties from the temporary /data partition or mark persistent properties
// as having been loaded during the first call, so we return in that case.
std::string crypto_state = android::base::GetProperty("ro.crypto.state", "");
std::string crypto_type = android::base::GetProperty("ro.crypto.type", "");
if (crypto_state == "encrypted" && crypto_type == "block") {
static size_t num_calls = 0;
if (++num_calls == 1) return;
}
load_override_properties();
/* Read persistent properties after all default values have been loaded. */
load_persistent_properties();