summaryrefslogtreecommitdiffstats
path: root/crypto/lollipop/cryptfs.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-03-20Update FDE decrypt to pie from CAFEthan Yonker1-1579/+0
cryptfs.cpp based on CAF tag LA.UM.7.3.r1-05900-sdm845.0 Used CAF because AOSP no longer contains code for qcom's hardware crypto. Change-Id: I921cbe9bed70989f91449e23b5ac3ec1037b7b97
2017-05-23cryptfs: Remove dm-crypt device on failed table loadnkk711-0/+14
* The dm-crypt device needs to be removed from the device-mapper driver list otherwise it will remain busy and cannot be used later on by other processes (eg vold_decrypt) or for further testing/debugging in recovery. Change-Id: I35e43a79ecc3de234ddb9f87f7d75c6439ea7454
2017-02-19cryptfs: Fix encryption issue due to stack corruption.nijel81-2/+2
Ioctl BLKGETSIZE expects pointer to unsigned long as argument. On 64bit target using pointer to unsigned int can cause stack corruption due to type mismatch. props to https://github.com/aopp/android_system_vold/commit/f8b8787317fc94439b63bc891eeda83f7ae2f4f6 Change-Id: I1d76c65e29479c8f0cd44b6892069b21b8249b95
2017-01-21Try mounting different filesystems during decryptionJames Christopher Adduono1-1/+16
Based on Dees_Troy's approach. Change-Id: Id9aafb6d0c64ab43e2711720a26e30ac86b90235
2016-05-17crypto: remove redundant convert_key_to_hex_ascii callCaptain Throwback1-2/+2
- Breaks decryption on some hw_crypto devices - Default value already defined in preceding ifdef - PS2: Move crypt_params definition prior to ifdef (matches corresponding code from CAF) Huge thanks to @beaups for figuring out the issue! Change-Id: I1fd4e3a4862f022b17a555773feb1d6deac9d34c
2016-04-28Fix decrypt of odd number length PIN on hardware cryptoEthan Yonker1-2/+2
I am not sure if we are really fixing anything other than we are allowing the decrypt process to continue. On hardware crypto the password never seems to match what is expected from the data in the footer, probably because the data is not stored in the footer and TZ does all the work. Still, if it works, it is hard to fault the patch. Change-Id: Ibbb286382e82523bec2064f51fa07194f84820c2
2016-02-17Restore some old decrypt functionalityEthan Yonker1-5/+66
Some of the convoluted convert_hex_ascii_to_key code is needed to properly decrypt CM 12.1 patterns where grid size is larger than 3x3. Change-Id: I497e17980046c60d2c69ba56e4b83c8b64b0b80e
2016-02-16cryptfs: major overhaul and cleanupSultan Qasim Khan1-575/+32
- Don't upgrade HW encrypted Lollipop devices to Marshmallow crypto - Fix support for passwords and patterns with an odd number of elements - Remove unused code - Fix build warnings Change-Id: I25f015085e5c859d0353f42f6a2fbc7ccecd48ed
2016-01-25Adopted Storage supportEthan Yonker1-1/+44
-Detects, decrypts, and mounts an adopted SD card if a secondary block device is defined (usually mmcblk1) -Handles unified storage -Displays the adopted storage in MTP along with internal -Factory Reset - wiped just like a data media device, we retain the keys folder and the storage.xml during a factory reset -Backup / Restore -Disable mass storage when adopted storage is present -Read storage nickname from storage.xml and apply it to display names in the GUI -Read storage.xml and determine what storage location is in use for /sdcard and remap accordingly libgpt_twrp is source code mostly kanged from an efimanager project. It is GPL v2 or higher, so we will opt for GPL v3. Change-Id: Ieda0030bec5155ba8d2b9167dc0016cebbf39d55
2016-01-19Update qcom hardware crypto codeEthan Yonker1-50/+198
Change-Id: I4608c45b3f71b53e0988ca0248d3438110a40149
2015-12-22Fix CLANG error in cryptfs.cEthan Yonker1-1/+1
Change-Id: If5af8f634bc016160aebaf7d4e6cda6c5650a077
2015-05-15Support Qualcomm hardware decryptDees Troy1-14/+115
Change-Id: I121ef0f5da209be48f6d87559d539c7fc6d85336
2014-12-21Allow non datamedia devices to wipe encryptionEthan Yonker1-1/+1
With 5.0 L, we decrypt automatically if the default_password is used. Non datamedia devices do not get the format data button so they cannot wipe encryption off the device. This patch add a wipe encryption button where the format data button would normally be located on the Wipe page. This patch also attempts to remove / delete the dm-crypt block device before formatting. Change-Id: I100d5d154d6c49254fd48e23279df973db5f23ae
2014-12-10crypto: fix build in < 5.0 treethat1-0/+2
Change-Id: Ie4ed3e91cfb7e509bac1d6db885bd3f415d2b168
2014-12-04Reduce libs needed for decrypt and clean up old decypt filesEthan Yonker1-2194/+21
Trim cryptfs.c to remove functions that TWRP does not use for decrypt and remove the need for libfs_mgr from cryptfs.c by passing some items to cryptfs.c from the partition manager. Add support for new fstab flags: encryptable and forceencrypt=/path/to/cryptokey For example: flags=forceencrypt=/dev/block/platform/sdhci-tegra.3/by-name/MD1 Note that "footer" is the default, so you do not need to set this flag on devices that use the footer for the crypto key. Also add mounttodecrypt if you need to mount a partition during the decrypt cycle for firmware of proprietary libs. Clean up decrypt and only support one version Android 5.0 lollipop decrypt should be backwards compatible with older versions so we will only support one version, 1.3 that came with 5.0 lollipop. Remove support for Samsung TouchWiz decrypt. It does not work with the latest versions of Samsung encryption anyway and it has not been updated to work with any AOSP decryption higher than 1.1 Change-Id: I2d9c6e31df50268c91ee642c2fa090f901d9d5c9
2014-11-18Tweak 5.0 L decryptEthan Yonker1-7/+7
Mount the vendor partition if it exists so we can use any proprietary files we may need. Relocate auto decrypt when default_password is in use to after all partitions are added so that we can mount the vendor partition. Change-Id: I93455a35695779f53ef57a82d3d45c7216c13639
2014-11-12Add lollipop decrypt supportEthan Yonker1-0/+3620
Kang in cryptfs.c and cryptfs.h from vold. Use TW_INCLUDE_L_CRYPTO := true to enable. Ramdisk must contain the normal fstab file in the root in the usual format of: fstab.{ro.hardware} For examble for Nexus 5: fstab.hammerhead Or on many Qualcomm devices: fstab.qcom Tested against Android 5.0 lollipop on Nexus 7 2012 grouper. Not sure if or how this will work when we are dealing with a device with a hardware keystore. Long term we need to add a GUI element to allow entering a pattern. For now you can decrypt a pattern unlock by converting the dots to numbers in the following format: 123 456 789 So an upper-case L would translate to 14789 as a password entered on the keyboard. Change-Id: I02c29e1f1c2eb29bf002c9fe0fc118357300b5b3