Resume multiple payloads.

DownloadAction will first go through all the already applied payload
and only downloading the manifest and filling in partitions info in
install plan without applying or downloading any operations.
And then resume the partially applied payload using states in prefs.

Moved constuction of MultiRangeHttpFetcher from UpdateAttempter to
DownloadAction, because we now need to setup the range for every
payload, also reduced code duplication.

Also fixed download progress for multi payload.

Bug: 36252799
Test: stop an update during second payload and resume the update
Change-Id: I9ee54a87d15d88c7a14a13575965b19c1773340b
(cherry picked from commit 7162b666318cdd6c75b73fa6a0b06b23559de3e5)
12 files changed
tree: 4b7f838abe6ccc13fc66efc5896b73b8ad901d03
  1. binder_bindings/
  2. client_library/
  3. common/
  4. dbus_bindings/
  5. init/
  6. payload_consumer/
  7. payload_generator/
  8. sample_images/
  9. scripts/
  10. update_manager/
  11. update_payload_key/
  12. .gitignore
  13. Android.mk
  14. binder_service_android.cc
  15. binder_service_android.h
  16. binder_service_brillo.cc
  17. binder_service_brillo.h
  18. boot_control_android.cc
  19. boot_control_android.h
  20. boot_control_chromeos.cc
  21. boot_control_chromeos.h
  22. boot_control_chromeos_unittest.cc
  23. boot_control_recovery.cc
  24. boot_control_recovery.h
  25. boot_control_recovery_stub.cc
  26. certificate_checker.cc
  27. certificate_checker.h
  28. certificate_checker_unittest.cc
  29. chrome_browser_proxy_resolver.cc
  30. chrome_browser_proxy_resolver.h
  31. chrome_browser_proxy_resolver_unittest.cc
  32. common_service.cc
  33. common_service.h
  34. common_service_unittest.cc
  35. connection_manager.cc
  36. connection_manager.h
  37. connection_manager_android.cc
  38. connection_manager_android.h
  39. connection_manager_interface.h
  40. connection_manager_unittest.cc
  41. connection_utils.cc
  42. connection_utils.h
  43. daemon.cc
  44. daemon.h
  45. daemon_state_android.cc
  46. daemon_state_android.h
  47. daemon_state_interface.h
  48. dbus_connection.cc
  49. dbus_connection.h
  50. dbus_service.cc
  51. dbus_service.h
  52. dbus_test_utils.h
  53. fake_file_writer.h
  54. fake_p2p_manager.h
  55. fake_p2p_manager_configuration.h
  56. fake_shill_proxy.cc
  57. fake_shill_proxy.h
  58. fake_system_state.cc
  59. fake_system_state.h
  60. generate_pc_file.sh
  61. hardware_android.cc
  62. hardware_android.h
  63. hardware_chromeos.cc
  64. hardware_chromeos.h
  65. hardware_chromeos_unittest.cc
  66. image_properties.h
  67. image_properties_android.cc
  68. image_properties_chromeos.cc
  69. image_properties_chromeos_unittest.cc
  70. libcurl_http_fetcher.cc
  71. libcurl_http_fetcher.h
  72. libupdate_engine-client-test.pc.in
  73. libupdate_engine-client.pc.in
  74. local_coverage_rate
  75. main.cc
  76. metrics.cc
  77. metrics.h
  78. metrics_utils.cc
  79. metrics_utils.h
  80. metrics_utils_unittest.cc
  81. mock_certificate_checker.h
  82. mock_connection_manager.h
  83. mock_file_writer.h
  84. mock_omaha_request_params.h
  85. mock_p2p_manager.h
  86. mock_payload_state.h
  87. mock_power_manager.h
  88. mock_proxy_resolver.h
  89. mock_update_attempter.h
  90. MODULE_LICENSE_APACHE2
  91. network_selector.h
  92. network_selector_android.cc
  93. network_selector_android.h
  94. network_selector_interface.h
  95. network_selector_stub.cc
  96. network_selector_stub.h
  97. NOTICE
  98. omaha_request_action.cc
  99. omaha_request_action.h
  100. omaha_request_action_unittest.cc
  101. omaha_request_params.cc
  102. omaha_request_params.h
  103. omaha_request_params_unittest.cc
  104. omaha_response.h
  105. omaha_response_handler_action.cc
  106. omaha_response_handler_action.h
  107. omaha_response_handler_action_unittest.cc
  108. omaha_utils.cc
  109. omaha_utils.h
  110. omaha_utils_unittest.cc
  111. OWNERS
  112. p2p_manager.cc
  113. p2p_manager.h
  114. p2p_manager_unittest.cc
  115. parcelable_update_engine_status.cc
  116. parcelable_update_engine_status.h
  117. payload_state.cc
  118. payload_state.h
  119. payload_state_interface.h
  120. payload_state_unittest.cc
  121. power_manager_android.cc
  122. power_manager_android.h
  123. power_manager_chromeos.cc
  124. power_manager_chromeos.h
  125. power_manager_interface.h
  126. PRESUBMIT.cfg
  127. PREUPLOAD.cfg
  128. proxy_resolver.cc
  129. proxy_resolver.h
  130. proxy_resolver_unittest.cc
  131. pylintrc
  132. real_system_state.cc
  133. real_system_state.h
  134. run_unittests
  135. sample_omaha_v3_response.xml
  136. service_delegate_android_interface.h
  137. service_observer_interface.h
  138. shill_proxy.cc
  139. shill_proxy.h
  140. shill_proxy_interface.h
  141. sideload_main.cc
  142. system_state.h
  143. tar_bunzip2.gypi
  144. test_http_server.cc
  145. test_subprocess.cc
  146. testrunner.cc
  147. unittest_key.pem
  148. unittest_key2.pem
  149. update_attempter.cc
  150. update_attempter.h
  151. update_attempter_android.cc
  152. update_attempter_android.h
  153. update_attempter_unittest.cc
  154. update_engine-client.gyp
  155. update_engine.conf
  156. update_engine.gyp
  157. update_engine.rc
  158. update_engine_client.cc
  159. update_engine_client_android.cc
  160. update_metadata.proto
  161. update_status_utils.cc
  162. update_status_utils.h
  163. UpdateEngine.conf
  164. utils_android.cc
  165. utils_android.h
  166. WATCHLISTS