Reduce libs needed for decrypt and clean up old decypt files

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
39 files changed
tree: 56cf3b08cdf70d016a2411fba977f7cd143bc265
  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.h
  34. fuse/
  35. fuse_sdcard_provider.c
  36. fuse_sdcard_provider.h
  37. fuse_sideload.c
  38. fuse_sideload.h
  39. gui/
  40. htcdumlock/
  41. infomanager.cpp
  42. infomanager.hpp
  43. injecttwrp/
  44. install.cpp
  45. install.h
  46. interlace-frames.py
  47. legacy_properties.h
  48. legacy_property_service.c
  49. legacy_property_service.h
  50. libblkid/
  51. libcrecovery/
  52. libmincrypt/
  53. libtar/
  54. minadbd/
  55. minui/
  56. minuitwrp/
  57. minzip/
  58. minzipold/
  59. mmcutils/
  60. mounts.c
  61. mounts.h
  62. mtdutils/
  63. mtp/
  64. openaes/
  65. openrecoveryscript.cpp
  66. openrecoveryscript.hpp
  67. orscmd/
  68. partition.cpp
  69. partitionmanager.cpp
  70. partitions.hpp
  71. pigz/
  72. prebuilt/
  73. recovery.cpp
  74. recovery_ui.h
  75. res-hdpi/
  76. res-mdpi/
  77. res-xhdpi/
  78. res-xxhdpi/
  79. res-xxxhdpi/
  80. res/
  81. roots.cpp
  82. roots.h
  83. screen_ui.cpp
  84. screen_ui.h
  85. tarWrite.c
  86. tarWrite.h
  87. testdata/
  88. tests/
  89. toolbox/
  90. tools/
  91. twcommon.h
  92. twinstall.cpp
  93. twinstall.h
  94. twrp-functions.cpp
  95. twrp-functions.hpp
  96. twrp.cpp
  97. twrpDU.cpp
  98. twrpDU.hpp
  99. twrpDigest.cpp
  100. twrpDigest.hpp
  101. twrpTar.cpp
  102. twrpTar.h
  103. twrpTar.hpp
  104. twrpTarMain/
  105. ui.cpp
  106. ui.h
  107. uncrypt/
  108. updater/
  109. variables.h
  110. verifier.cpp
  111. verifier.h
  112. verifier_test.cpp
  113. verifier_test.sh
  114. verifierold.cpp
  115. verifierold.h
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.