Fix the long broken format function

 * For EXT2/3:
   * Align mke2fs options with Android 9.0 fs_mgr_format.cpp.
 * For EXT4:
   * Note that make_ext4fs is still in use on Android 8.1 to workaround
     a FDE encryption bug even though mke2fs has become the default
     choice. The bug is fixed in Android 9.0+.
 * For F2FS:
   * Drop the broken "-r" option, it's never ported to O, explicitly
     pass number of sectors instead.
   * Keep all options aligned with Pie fs_mgr.
   * Check existence before start wiping, as Wipe_EXT4 does.
 * For all:
   * Calculate block size at runtime, and reserve the space specified
     via negative "length" option from fstab. Note that positive length
     will be ignored.
   * If the partition has crypto footer, and "length" is not specified
     in fstab, automatically reverse CRYPT_FOOTER_OFFSET (16384).
   * Remove the default crypto key location: footer, this is a bad
     assumption since most partitions don't use encryption! We need to
     know the real situation to decide whether to reserve crypto footer
     on format.
   * If the current action is "wipe" or "change filesystem", wipe crypto
     footer or block device after mkfs if the partition is
     unencrypted or undecrypted (e.g., wrong password).
   * If the current action is "format data", unconditionally wipe crypto
     footer or block device.

Change-Id: I7304a8ee703131ea4a08ab7c60334af28cac28b3
5 files changed
tree: af8ad951ba6b34091461debb35c755c1531b2ead
  1. .github/
  2. adbbu/
  3. applypatch/
  4. attr/
  5. bmlutils/
  6. boot_control/
  7. bootloader_message/
  8. bootloader_message_twrp/
  9. crypto/
  10. dosfstools/
  11. edify/
  12. etc/
  13. exfat/
  14. fb2png/
  15. flashutils/
  16. fonts/
  17. fuse/
  18. gpt/
  19. gui/
  20. htcdumlock/
  21. injecttwrp/
  22. libblkid/
  23. libcrecovery/
  24. libmincrypt/
  25. libpixelflinger/
  26. libtar/
  27. minadbd/
  28. minadbd21/
  29. minui/
  30. minui21/
  31. minuitwrp/
  32. minzip/
  33. mmcutils/
  34. mtdutils/
  35. mtp/
  36. openaes/
  37. orscmd/
  38. otafault/
  39. otautil/
  40. pigz/
  41. prebuilt/
  42. private/
  43. res/
  44. res-hdpi/
  45. res-mdpi/
  46. res-xhdpi/
  47. res-xxhdpi/
  48. res-xxxhdpi/
  49. scripts/
  50. sepolicy/
  51. simg2img/
  52. tests/
  53. toolbox/
  54. tools/
  55. toybox/
  56. twrpDigest/
  57. twrpTarMain/
  58. uncrypt/
  59. update_verifier/
  60. updater/
  61. verifier24/
  62. .clang-format
  63. .gitignore
  64. adb_install.cpp
  65. adb_install.h
  66. Android.bp
  67. Android.mk
  68. asn1_decoder.cpp
  69. asn1_decoder.h
  70. BasePartition.cpp
  71. bootloader.h
  72. CleanSpec.mk
  73. common.h
  74. data.cpp
  75. data.hpp
  76. default_device.cpp
  77. device.cpp
  78. device.h
  79. exclude.cpp
  80. exclude.hpp
  81. find_file.cpp
  82. find_file.hpp
  83. fixContexts.cpp
  84. fixContexts.hpp
  85. fuse.h
  86. fuse_sdcard_provider.cpp
  87. fuse_sdcard_provider.h
  88. fuse_sideload.cpp
  89. fuse_sideload.h
  90. fuse_sideload22.cpp
  91. fuse_sideload22.h
  92. infomanager.cpp
  93. infomanager.hpp
  94. install.cpp
  95. install.h
  96. installcommand.cpp
  97. installcommand.h
  98. interlace-frames.py
  99. legacy_properties.h
  100. legacy_property_service.cpp
  101. legacy_property_service.h
  102. mounts.c
  103. mounts.cpp
  104. mounts.h
  105. mounts.h~HEAD
  106. NOTICE
  107. openrecoveryscript.cpp
  108. openrecoveryscript.hpp
  109. OWNERS
  110. partition.cpp
  111. partitionmanager.cpp
  112. partitions.hpp
  113. PREUPLOAD.cfg
  114. progresstracking.cpp
  115. progresstracking.hpp
  116. README.md
  117. recovery-persist.cpp
  118. recovery-persist.rc
  119. recovery-refresh.cpp
  120. recovery-refresh.rc
  121. recovery.cpp
  122. recovery_ui.h
  123. roots.cpp
  124. roots.h
  125. rotate_logs.cpp
  126. rotate_logs.h
  127. screen_ui.cpp
  128. screen_ui.h
  129. set_metadata.cpp
  130. set_metadata.h
  131. stub_ui.h
  132. tarWrite.c
  133. tarWrite.h
  134. tw_atomic.cpp
  135. tw_atomic.hpp
  136. twcommon.h
  137. twinstall.cpp
  138. twinstall.h
  139. twinstallorig.cpp
  140. twinstallorig.h
  141. twrp-functions.cpp
  142. twrp-functions.hpp
  143. twrp.cpp
  144. twrpAdbBuFifo.cpp
  145. twrpAdbBuFifo.hpp
  146. twrpDigestDriver.cpp
  147. twrpDigestDriver.hpp
  148. twrpTar.cpp
  149. twrpTar.h
  150. twrpTar.hpp
  151. ui.cpp
  152. ui.h
  153. variables.h
  154. verifier.cpp
  155. verifier.h
  156. vr_device.cpp
  157. vr_ui.cpp
  158. vr_ui.h
  159. wear_device.cpp
  160. wear_ui.cpp
  161. wear_ui.h
  162. zipwrap.cpp
  163. zipwrap.hpp
README.md

Team Win Recovery Project (TWRP)

You can find a compiling guide here.