Add maximum timestamp to the payload.

Added a new field max_timestamp in the protobuf, from now on
update_engine will reject any payload without this field.
If the OS build timestamp is newer than the max_timestamp, the payload
will also be rejected to prevent downgrade.

Bug: 36232423
Test: update_engine_unittests

Merged-In: Ib20f5f35aaf41165013bada02bc8720917358237
Change-Id: Ib20f5f35aaf41165013bada02bc8720917358237
(cherry picked from commit 5011df680621eb477cad8b34f03fba5b542cc2f9)
18 files changed
tree: 0cae4fb21b0769cca98fb3f511a53a609e8fe3b6
  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. CPPLINT.cfg
  44. daemon.cc
  45. daemon.h
  46. daemon_state_android.cc
  47. daemon_state_android.h
  48. daemon_state_interface.h
  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_android_unittest.cc
  70. image_properties_chromeos.cc
  71. image_properties_chromeos_unittest.cc
  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_constants.h
  79. metrics_reporter_android.cc
  80. metrics_reporter_android.h
  81. metrics_reporter_interface.h
  82. metrics_reporter_omaha.cc
  83. metrics_reporter_omaha.h
  84. metrics_reporter_omaha_unittest.cc
  85. metrics_utils.cc
  86. metrics_utils.h
  87. metrics_utils_unittest.cc
  88. mock_certificate_checker.h
  89. mock_connection_manager.h
  90. mock_file_writer.h
  91. mock_metrics_reporter.h
  92. mock_omaha_request_params.h
  93. mock_p2p_manager.h
  94. mock_payload_state.h
  95. mock_power_manager.h
  96. mock_proxy_resolver.h
  97. mock_service_observer.h
  98. mock_update_attempter.h
  99. MODULE_LICENSE_APACHE2
  100. network_selector.h
  101. network_selector_android.cc
  102. network_selector_android.h
  103. network_selector_interface.h
  104. network_selector_stub.cc
  105. network_selector_stub.h
  106. NOTICE
  107. omaha_request_action.cc
  108. omaha_request_action.h
  109. omaha_request_action_unittest.cc
  110. omaha_request_params.cc
  111. omaha_request_params.h
  112. omaha_request_params_unittest.cc
  113. omaha_response.h
  114. omaha_response_handler_action.cc
  115. omaha_response_handler_action.h
  116. omaha_response_handler_action_unittest.cc
  117. omaha_utils.cc
  118. omaha_utils.h
  119. omaha_utils_unittest.cc
  120. OWNERS
  121. p2p_manager.cc
  122. p2p_manager.h
  123. p2p_manager_unittest.cc
  124. parcelable_update_engine_status.cc
  125. parcelable_update_engine_status.h
  126. parcelable_update_engine_status_unittest.cc
  127. payload_state.cc
  128. payload_state.h
  129. payload_state_interface.h
  130. payload_state_unittest.cc
  131. power_manager_android.cc
  132. power_manager_android.h
  133. power_manager_chromeos.cc
  134. power_manager_chromeos.h
  135. power_manager_interface.h
  136. PRESUBMIT.cfg
  137. PREUPLOAD.cfg
  138. proxy_resolver.cc
  139. proxy_resolver.h
  140. proxy_resolver_unittest.cc
  141. pylintrc
  142. real_system_state.cc
  143. real_system_state.h
  144. run_unittests
  145. sample_omaha_v3_response.xml
  146. service_delegate_android_interface.h
  147. service_observer_interface.h
  148. shill_proxy.cc
  149. shill_proxy.h
  150. shill_proxy_interface.h
  151. sideload_main.cc
  152. system_state.h
  153. tar_bunzip2.gypi
  154. test_http_server.cc
  155. test_subprocess.cc
  156. testrunner.cc
  157. unittest_key.pem
  158. unittest_key2.pem
  159. update_attempter.cc
  160. update_attempter.h
  161. update_attempter_android.cc
  162. update_attempter_android.h
  163. update_attempter_android_unittest.cc
  164. update_attempter_unittest.cc
  165. update_engine-client.gyp
  166. update_engine.conf
  167. update_engine.gyp
  168. update_engine.rc
  169. update_engine_client.cc
  170. update_engine_client_android.cc
  171. update_metadata.proto
  172. update_status_utils.cc
  173. update_status_utils.h
  174. UpdateEngine.conf
  175. utils_android.cc
  176. utils_android.h
  177. WATCHLISTS