Revert "Enable metadata encryption"
Bug: 37792477
This reverts commit 3963b2364561a7d732995d5b8fec42097f548caa.
Change-Id: I3b6bf5a9a4c3899aabe2c824d8498a06981daed8
diff --git a/MetadataCrypt.cpp b/MetadataCrypt.cpp
index 91382da..b707549 100644
--- a/MetadataCrypt.cpp
+++ b/MetadataCrypt.cpp
@@ -212,14 +212,34 @@
// callers to this method must be async
/* Do the prep of the /data filesystem */
+ property_set("vold.post_fs_data_done", "0");
property_set("vold.decrypt", "trigger_post_fs_data");
- property_set("vold.decrypt", "trigger_restart_framework");
- return true;
+ LOG(DEBUG) << "Waiting for post_fs_data_done";
+
+ /* Wait a max of 50 seconds, hopefully it takes much less */
+ for (int i = 0; ; i++) {
+ char p[PROPERTY_VALUE_MAX];
+
+ property_get("vold.post_fs_data_done", p, "0");
+ if (*p == '1') {
+ LOG(INFO) << "Successful data prep";
+ return true;
+ }
+ if (i + 1 == DATA_PREP_TIMEOUT) {
+ LOG(ERROR) << "post_fs_data timed out";
+ return false;
+ }
+ usleep(50000);
+ }
}
static void async_kick_off() {
LOG(DEBUG) << "Asynchronously restarting framework";
+ sleep(2); // TODO: this mirrors cryptfs, but can it be made shorter?
+ property_set("vold.decrypt", "trigger_load_persist_props");
if (!prep_data_fs()) return;
+ /* startup service classes main and late_start */
+ property_set("vold.decrypt", "trigger_restart_framework");
}
bool e4crypt_mount_metadata_encrypted() {
@@ -286,6 +306,7 @@
property_set("ro.crypto.type", "file");
mount_via_fs_mgr(data_rec->mount_point, crypto_blkdev.c_str());
+ property_set("vold.decrypt", "trigger_reset_main");
std::thread(&async_kick_off).detach();
return true;
}
diff --git a/cryptfs.cpp b/cryptfs.cpp
index d5bfe6d..6319362 100644
--- a/cryptfs.cpp
+++ b/cryptfs.cpp
@@ -2826,7 +2826,6 @@
} else if (crypt_type != CRYPT_TYPE_DEFAULT) {
SLOGD("Password is not default - "
"starting min framework to prompt");
- property_set("vold.decrypt", "trigger_post_fs_data");
property_set("vold.decrypt", "trigger_restart_min_framework");
return 0;
} else if (cryptfs_check_passwd(DEFAULT_PASSWORD) == 0) {
diff --git a/vdc.rc b/vdc.rc
index 9a95779..4d51ced 100644
--- a/vdc.rc
+++ b/vdc.rc
@@ -1,6 +1,5 @@
# One shot invocation to deal with encrypted volume.
on defaultcrypto
- start vold
exec - root -- /system/bin/vdc --wait cryptfs mountdefaultencrypted
# vold will set vold.decrypt to trigger_restart_framework (default
# encryption) or trigger_restart_min_framework (other encryption)
@@ -8,7 +7,6 @@
# One shot invocation to encrypt unencrypted volumes
on encrypt
start surfaceflinger
- start vold
exec - root -- /system/bin/vdc --wait cryptfs enablecrypto inplace default noui
# vold will set vold.decrypt to trigger_restart_framework (default
# encryption)