recovery: wipe bootloader message from index 0 when using custom offsets

 * We may use a custom offset to:
   a) preserve data that oem wrote to the first bytes of misc
   b) skip recovery flags written by the bootloader (e.g. --wipe_data)

   For case a) one should set the offset 'x' to be at least greater than
   the size of bootloader_message struct (2048 bytes). If this is the case,
   then we zero out bytes x ~ x + 2047

   For case b) one should set the offset to be strictly smaller than
   the size of bootloader_message struct. If this is the case, then we
   zero out bytes 0 ~ 2047.
   This allows to clear any additional flag set by the bootloader,
   that would otherwise be forgotten in misc.
   This also guarantees that we do not involountarily wipe any data that
   the oem may have written starting at byte 2048 (coff coff LG)

Change-Id: I2d4e0702a2d8cbbef6274a87ce9499b0f69310dd
1 file changed
tree: e38aca4b65617095b0e2eb6c330e0903c44f4df7
  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. NOTICE
  106. openrecoveryscript.cpp
  107. openrecoveryscript.hpp
  108. OWNERS
  109. partition.cpp
  110. partitionmanager.cpp
  111. partitions.hpp
  112. PREUPLOAD.cfg
  113. progresstracking.cpp
  114. progresstracking.hpp
  115. README.md
  116. recovery-persist.cpp
  117. recovery-persist.rc
  118. recovery-refresh.cpp
  119. recovery-refresh.rc
  120. recovery.cpp
  121. recovery_ui.h
  122. roots.cpp
  123. roots.h
  124. rotate_logs.cpp
  125. rotate_logs.h
  126. screen_ui.cpp
  127. screen_ui.h
  128. set_metadata.cpp
  129. set_metadata.h
  130. stub_ui.h
  131. tarWrite.c
  132. tarWrite.h
  133. tw_atomic.cpp
  134. tw_atomic.hpp
  135. twcommon.h
  136. twinstall.cpp
  137. twinstall.h
  138. twinstallorig.cpp
  139. twinstallorig.h
  140. twrp-functions.cpp
  141. twrp-functions.hpp
  142. twrp.cpp
  143. twrpAdbBuFifo.cpp
  144. twrpAdbBuFifo.hpp
  145. twrpDigestDriver.cpp
  146. twrpDigestDriver.hpp
  147. twrpTar.cpp
  148. twrpTar.h
  149. twrpTar.hpp
  150. ui.cpp
  151. ui.h
  152. variables.h
  153. verifier.cpp
  154. verifier.h
  155. vr_device.cpp
  156. vr_ui.cpp
  157. vr_ui.h
  158. wear_device.cpp
  159. wear_ui.cpp
  160. wear_ui.h
  161. zipwrap.cpp
  162. zipwrap.hpp
README.md

Team Win Recovery Project (TWRP)

You can find a compiling guide here.