Add lollipop decrypt support

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
7 files changed
tree: 39a211a1f021a98d7ee2c57d939891dccbc96048
  1. .gitignore
  2. Android.mk
  3. CleanSpec.mk
  4. NOTICE
  5. README.md
  6. adb_install.cpp
  7. adb_install.h
  8. applypatch/
  9. asn1_decoder.cpp
  10. asn1_decoder.h
  11. bmlutils/
  12. bootloader.cpp
  13. bootloader.h
  14. common.h
  15. crypto/
  16. data.cpp
  17. data.h
  18. data.hpp
  19. default_device.cpp
  20. device.h
  21. digest/
  22. dosfstools/
  23. edify/
  24. etc/
  25. exfat/
  26. fb2png/
  27. find_file.cpp
  28. find_file.hpp
  29. fixPermissions.cpp
  30. fixPermissions.hpp
  31. flashutils/
  32. fonts/
  33. fuse/
  34. fuse_sdcard_provider.c
  35. fuse_sdcard_provider.h
  36. fuse_sideload.c
  37. fuse_sideload.h
  38. gui/
  39. htcdumlock/
  40. infomanager.cpp
  41. infomanager.hpp
  42. injecttwrp/
  43. install.cpp
  44. install.h
  45. interlace-frames.py
  46. legacy_properties.h
  47. legacy_property_service.c
  48. legacy_property_service.h
  49. libblkid/
  50. libcrecovery/
  51. libmincrypt/
  52. libtar/
  53. minadbd/
  54. minui/
  55. minuitwrp/
  56. minzip/
  57. minzipold/
  58. mmcutils/
  59. mounts.c
  60. mounts.h
  61. mtdutils/
  62. mtp/
  63. openaes/
  64. openrecoveryscript.cpp
  65. openrecoveryscript.hpp
  66. orscmd/
  67. partition.cpp
  68. partitionmanager.cpp
  69. partitions.hpp
  70. pigz/
  71. prebuilt/
  72. recovery.cpp
  73. recovery_ui.h
  74. res-hdpi/
  75. res-mdpi/
  76. res-xhdpi/
  77. res-xxhdpi/
  78. res-xxxhdpi/
  79. res/
  80. roots.cpp
  81. roots.h
  82. screen_ui.cpp
  83. screen_ui.h
  84. tarWrite.c
  85. tarWrite.h
  86. testdata/
  87. tests/
  88. toolbox/
  89. tools/
  90. twcommon.h
  91. twinstall.cpp
  92. twinstall.h
  93. twrp-functions.cpp
  94. twrp-functions.hpp
  95. twrp.cpp
  96. twrpDU.cpp
  97. twrpDU.hpp
  98. twrpDigest.cpp
  99. twrpDigest.hpp
  100. twrpTar.cpp
  101. twrpTar.h
  102. twrpTar.hpp
  103. twrpTarMain/
  104. ui.cpp
  105. ui.h
  106. uncrypt/
  107. updater/
  108. variables.h
  109. verifier.cpp
  110. verifier.h
  111. verifier_test.cpp
  112. verifier_test.sh
README.md

Team Win Recovery Project (TWRP)

The goal of this branch is to rebase TWRP onto AOSP while maintaining as much of the original AOSP code as possible. This goal should allow us to apply updates to the AOSP code going forward with little to no extra work. With this goal in mind, we will carefully consider any changes needed to the AOSP code before allowing them. In most cases, instead of changing the AOSP code, we'll create our own functions instead. The only changes that should be made to AOSP code should be those affecting startup of the recovery and some of the make files.

If there are changes that need to be merged from AOSP, we will pull the change directly from AOSP instead of creating a new patch in order to prevent merge conflicts with AOSP.

This branch is under final testing and will be used shortly for public builds, but has not officially been released.

You can find a compiling guide here.

More information about the project.

If you have code changes to submit those should be pushed to our gerrit instance. A guide can be found here.