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:
committed by
bigbiff
parent
a991022e7c
commit
18aea279ca
+10
-4
@@ -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)) {
|
||||
|
||||
@@ -390,6 +390,7 @@ public:
|
||||
void Setup_Super_Partition(); // Setup the super partition for backup and restore
|
||||
bool Recreate_Logs_Dir(); // Recreate TWRP_AB_LOGS_DIR after wipe
|
||||
std::vector<users_struct>* Get_Users_List(); // Returns pointer to list of users
|
||||
int Set_FDE_Encrypt_Status(); // Sets encryption state for FDE devices (ro.crypto.state and ro.crypto.type)
|
||||
|
||||
private:
|
||||
void Setup_Settings_Storage_Partition(TWPartition* Part); // Sets up settings storage
|
||||
|
||||
Reference in New Issue
Block a user