commit | 81acef17466d505a8c852b3c4dd87fe3f824926d | [log] [tgz] |
---|---|---|
author | Alexander Sulfrian <asulfrian@zedat.fu-berlin.de> | Tue Dec 15 01:58:55 2020 +0100 |
committer | althafvly <althafvly@gmail.com> | Tue Dec 15 18:49:11 2020 +0000 |
tree | ffb5d3535110374e8e2f9c5ef6a0ffed73c8221a | |
parent | 5318039124d0c45ada4a92cb7c3fffafb9958c56 [diff] |
Update lock pattern types for android 11 The stored id for the different types of the lock pattern was chnaged with Android 11. You can find the updated list in the LockPatternUtils: https://android.googlesource.com/platform/frameworks/base/+/refs/tags/android-11.0.0_r25/core/java/com/android/internal/widget/LockPatternUtils.java#113 It was changed in 5e891bcc04556a3595ab349381acc2a2e36a69d1: https://android.googlesource.com/platform/frameworks/base/+/5e891bcc04556a3595ab349381acc2a2e36a69d1 The old CREDENTIAL_TYPE_PASSWORD_OR_PIN was essentialy split in CREDENTIAL_TYPE_PASSWORD and CREDENTIAL_TYPE_PASSWORD_OR_PIN. This code updates the matching in twrp, so that the correct unlocking method for file base decryption can be found. Without these changes twrp always try to use the default password and obviously fails. With these changes the usual password dialog is shown and the decryption is successfully. Change-Id: Ia8d47223b30a5301d4b9d2230241039612055ebb Signed-off-by: Alexander Sulfrian <asulfrian@zedat.fu-berlin.de> Co-authored-by: althafvly <althafvly@gmail.com>
diff --git a/crypto/ext4crypt/Decrypt.cpp b/crypto/ext4crypt/Decrypt.cpp index 468601f..fb16240 100644 --- a/crypto/ext4crypt/Decrypt.cpp +++ b/crypto/ext4crypt/Decrypt.cpp
@@ -1197,7 +1197,9 @@ } if (pwd.password_type == 1) // In Android this means pattern return 2; // In TWRP this means pattern - else if (pwd.password_type == 2) // In Android this means PIN or password + // In Android <11 type 2 is PIN or password + // In Android 11 type 3 is PIN and type 4 is password + else if (pwd.password_type > 1) return 1; // In TWRP this means PIN or password return 0; // We'll try the default password #else