fde: move crypto state & type setting to function

In order to make sure the crypto state and type is set
properly if the device is encrypted, move this check to
a function and call it in cases where the default password
is being used and in cases where it isn't. This will ensure that
an unencrypted device isn't set as encrypted by mistake.

Change-Id: I736f9cbee0e95d7390a09c8235b9914feddaceaf
This commit is contained in:
Captain Throwback
2020-11-11 00:58:52 +00:00
committed by bigbiff
parent a991022e7c
commit 18aea279ca
2 changed files with 11 additions and 4 deletions
+10 -4
View File
@@ -135,6 +135,14 @@ TWPartitionManager::TWPartitionManager(void) {
#endif
}
int TWPartitionManager::Set_FDE_Encrypt_Status(void) {
property_set("ro.crypto.state", "encrypted");
property_set("ro.crypto.type", "block");
// Sleep for a bit so that services can start if needed
sleep(1);
return 0;
}
int TWPartitionManager::Process_Fstab(string Fstab_Filename, bool Display_Error) {
FILE *fstabFile;
char fstab_line[MAX_FSTAB_LINE_LENGTH];
@@ -443,6 +451,7 @@ void TWPartitionManager::Decrypt_Data() {
}
}
} else {
Set_FDE_Encrypt_Status();
int password_type = cryptfs_get_password_type();
if (password_type == CRYPT_TYPE_DEFAULT) {
LOGINFO("Device is encrypted with the default password, attempting to decrypt.\n");
@@ -1864,10 +1873,7 @@ int TWPartitionManager::Decrypt_Device(string Password, int user_id) {
property_get("ro.crypto.state", crypto_state, "error");
if (strcmp(crypto_state, "error") == 0) {
property_set("ro.crypto.state", "encrypted");
property_set("ro.crypto.type", "block");
// Sleep for a bit so that services can start if needed
sleep(1);
Set_FDE_Encrypt_Status();
}
if (DataManager::GetIntValue(TW_IS_FBE)) {