update_engine: Apply PUFFDIFF operation

This patch adds operation for applying PUFFDIFF operation. As long as
the minor version is not increased, this patch will not be directly
used.

This patch sets the cache requirement for PUFFDIFF operation to 5MB as it has
been selected for now from sample data below:

Update from ToT(R64) to veyron-minnie-R63-9928.0.0
Cache Size (MB)	- Time to Update (minutes)
no-puffdiff	0:04:20
50	0:05:30
20	0:06:40
10	0:09:10
5	0:11:00
3	0:13:40
2	0:15:45
1	0:19:30

BUG=chromium:717785
TEST=brillo_update_payload verify passes; unittests pass;
CQ-DEPEND=CL:722452

Change-Id: I481481d40ef9df6412782198e3c97deb3997cc2e
Reviewed-on: https://chromium-review.googlesource.com/658297
Commit-Ready: Amin Hassani <ahassani@chromium.org>
Tested-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Sen Jiang <senj@chromium.org>
5 files changed
tree: a108c31eb6a893d591c05bc7e556a62cc5840e07
  1. .gitignore
  2. Android.mk
  3. COMMIT-QUEUE.ini
  4. CPPLINT.cfg
  5. MODULE_LICENSE_APACHE2
  6. NOTICE
  7. OWNERS
  8. PRESUBMIT.cfg
  9. PREUPLOAD.cfg
  10. UpdateEngine.conf
  11. WATCHLISTS
  12. binder_bindings/
  13. binder_service_android.cc
  14. binder_service_android.h
  15. binder_service_brillo.cc
  16. binder_service_brillo.h
  17. boot_control_android.cc
  18. boot_control_android.h
  19. boot_control_chromeos.cc
  20. boot_control_chromeos.h
  21. boot_control_chromeos_unittest.cc
  22. boot_control_recovery.cc
  23. boot_control_recovery.h
  24. boot_control_recovery_stub.cc
  25. certificate_checker.cc
  26. certificate_checker.h
  27. certificate_checker_unittest.cc
  28. chrome_browser_proxy_resolver.cc
  29. chrome_browser_proxy_resolver.h
  30. client_library/
  31. common/
  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_bindings/
  49. dbus_connection.cc
  50. dbus_connection.h
  51. dbus_service.cc
  52. dbus_service.h
  53. dbus_test_utils.h
  54. fake_file_writer.h
  55. fake_p2p_manager.h
  56. fake_p2p_manager_configuration.h
  57. fake_shill_proxy.cc
  58. fake_shill_proxy.h
  59. fake_system_state.cc
  60. fake_system_state.h
  61. generate_pc_file.sh
  62. hardware_android.cc
  63. hardware_android.h
  64. hardware_chromeos.cc
  65. hardware_chromeos.h
  66. hardware_chromeos_unittest.cc
  67. image_properties.h
  68. image_properties_android.cc
  69. image_properties_chromeos.cc
  70. image_properties_chromeos_unittest.cc
  71. init/
  72. libcurl_http_fetcher.cc
  73. libcurl_http_fetcher.h
  74. libupdate_engine-client-test.pc.in
  75. libupdate_engine-client.pc.in
  76. local_coverage_rate
  77. main.cc
  78. metrics.cc
  79. metrics.h
  80. metrics_utils.cc
  81. metrics_utils.h
  82. metrics_utils_unittest.cc
  83. mock_certificate_checker.h
  84. mock_connection_manager.h
  85. mock_file_writer.h
  86. mock_omaha_request_params.h
  87. mock_p2p_manager.h
  88. mock_payload_state.h
  89. mock_power_manager.h
  90. mock_proxy_resolver.h
  91. mock_update_attempter.h
  92. network_selector.h
  93. network_selector_android.cc
  94. network_selector_android.h
  95. network_selector_interface.h
  96. network_selector_stub.cc
  97. network_selector_stub.h
  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. p2p_manager.cc
  112. p2p_manager.h
  113. p2p_manager_unittest.cc
  114. parcelable_update_engine_status.cc
  115. parcelable_update_engine_status.h
  116. payload_consumer/
  117. payload_generator/
  118. payload_state.cc
  119. payload_state.h
  120. payload_state_interface.h
  121. payload_state_unittest.cc
  122. power_manager_android.cc
  123. power_manager_android.h
  124. power_manager_chromeos.cc
  125. power_manager_chromeos.h
  126. power_manager_interface.h
  127. proxy_resolver.cc
  128. proxy_resolver.h
  129. proxy_resolver_unittest.cc
  130. pylintrc
  131. real_system_state.cc
  132. real_system_state.h
  133. run_unittests
  134. sample_images/
  135. sample_omaha_v3_response.xml
  136. scripts/
  137. service_delegate_android_interface.h
  138. service_observer_interface.h
  139. shill_proxy.cc
  140. shill_proxy.h
  141. shill_proxy_interface.h
  142. sideload_main.cc
  143. system_state.h
  144. tar_bunzip2.gypi
  145. test_http_server.cc
  146. test_subprocess.cc
  147. testrunner.cc
  148. unittest_key.pem
  149. unittest_key2.pem
  150. update_attempter.cc
  151. update_attempter.h
  152. update_attempter_android.cc
  153. update_attempter_android.h
  154. update_attempter_unittest.cc
  155. update_engine-client.gyp
  156. update_engine.conf
  157. update_engine.gyp
  158. update_engine.rc
  159. update_engine_client.cc
  160. update_engine_client_android.cc
  161. update_manager/
  162. update_metadata.proto
  163. update_payload_key/
  164. update_status_utils.cc
  165. update_status_utils.h
  166. utils_android.cc
  167. utils_android.h