Merge "Don\'t start defaultcrypto twice" into nyc-dev am: 0264d8f

am: e72c338

* commit 'e72c33872e2105ca1e63ba4f891ac68a6330dffa':
  Don't start defaultcrypto twice

Change-Id: Ibad904c5df684b03b80771a6a90c6a1ee49e073f
This commit is contained in:
Paul Lawrence 2016-04-19 14:50:07 +00:00 committed by android-build-merger
commit 85dfdb082d
2 changed files with 18 additions and 25 deletions

View file

@ -3705,26 +3705,20 @@ out:
*/ */
int cryptfs_mount_default_encrypted(void) int cryptfs_mount_default_encrypted(void)
{ {
char decrypt_state[PROPERTY_VALUE_MAX]; int crypt_type = cryptfs_get_password_type();
property_get("vold.decrypt", decrypt_state, "0"); if (crypt_type < 0 || crypt_type > CRYPT_TYPE_MAX_TYPE) {
if (!strcmp(decrypt_state, "0")) { SLOGE("Bad crypt type - error");
SLOGE("Not encrypted - should not call here"); } else if (crypt_type != CRYPT_TYPE_DEFAULT) {
SLOGD("Password is not default - "
"starting min framework to prompt");
property_set("vold.decrypt", "trigger_restart_min_framework");
return 0;
} else if (cryptfs_check_passwd(DEFAULT_PASSWORD) == 0) {
SLOGD("Password is default - restarting filesystem");
cryptfs_restart_internal(0);
return 0;
} else { } else {
int crypt_type = cryptfs_get_password_type(); SLOGE("Encrypted, default crypt type but can't decrypt");
if (crypt_type < 0 || crypt_type > CRYPT_TYPE_MAX_TYPE) {
SLOGE("Bad crypt type - error");
} else if (crypt_type != CRYPT_TYPE_DEFAULT) {
SLOGD("Password is not default - "
"starting min framework to prompt");
property_set("vold.decrypt", "trigger_restart_min_framework");
return 0;
} else if (cryptfs_check_passwd(DEFAULT_PASSWORD) == 0) {
SLOGD("Password is default - restarting filesystem");
cryptfs_restart_internal(0);
return 0;
} else {
SLOGE("Encrypted, default crypt type but can't decrypt");
}
} }
/** Corrupt. Allow us to boot into framework, which will detect bad /** Corrupt. Allow us to boot into framework, which will detect bad

11
vdc.rc
View file

@ -1,13 +1,12 @@
# One shot invocation to deal with encrypted volume. # One shot invocation to deal with encrypted volume.
service defaultcrypto /system/bin/vdc --wait cryptfs mountdefaultencrypted on defaultcrypto
disabled exec - root -- /system/bin/vdc --wait cryptfs mountdefaultencrypted
oneshot
# vold will set vold.decrypt to trigger_restart_framework (default # vold will set vold.decrypt to trigger_restart_framework (default
# encryption) or trigger_restart_min_framework (other encryption) # encryption) or trigger_restart_min_framework (other encryption)
# One shot invocation to encrypt unencrypted volumes # One shot invocation to encrypt unencrypted volumes
service encrypt /system/bin/vdc --wait cryptfs enablecrypto inplace default noui on encrypt
disabled start surfaceflinger
oneshot exec - root -- /system/bin/vdc --wait cryptfs enablecrypto inplace default noui
# vold will set vold.decrypt to trigger_restart_framework (default # vold will set vold.decrypt to trigger_restart_framework (default
# encryption) # encryption)