Add option to use ro.serialno for generating device id

On some devices (e.g. ASUS Zenfone) the serial number of the device
is stored in a file in the /factory partition. Consequently, the only
way to load it is using a user space application during the init
process, and to update the ro.serialno system property.

In most places, TWRP already uses the system property to get the
serial number of the device. However, when generating the device ID
used for the backup folder name it checks the boot command line
directly. On these devices, the serialno is not included on the
command line.

Add a TW_USE_SERIALNO_PROPERTY_FOR_DEVICE_ID option that enables
usage of ro.serialno for generating the device id. It is disabled
by default to avoid changing the device id on existing ports.

Change-Id: I4a2eeca883f38fdaeb1209507fd8ebe44b1b04a0
2 files changed
tree: 85bda5c58d67531ab0c140a79bda753058df3a75
  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. bootloader.h
  71. CleanSpec.mk
  72. common.h
  73. data.cpp
  74. data.hpp
  75. default_device.cpp
  76. device.cpp
  77. device.h
  78. exclude.cpp
  79. exclude.hpp
  80. find_file.cpp
  81. find_file.hpp
  82. fixContexts.cpp
  83. fixContexts.hpp
  84. fuse.h
  85. fuse_sdcard_provider.cpp
  86. fuse_sdcard_provider.h
  87. fuse_sideload.cpp
  88. fuse_sideload.h
  89. fuse_sideload22.cpp
  90. fuse_sideload22.h
  91. infomanager.cpp
  92. infomanager.hpp
  93. install.cpp
  94. install.h
  95. installcommand.cpp
  96. installcommand.h
  97. interlace-frames.py
  98. legacy_properties.h
  99. legacy_property_service.cpp
  100. legacy_property_service.h
  101. mounts.c
  102. mounts.cpp
  103. mounts.h
  104. mounts.h~HEAD
  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.