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