Mark current slot successful after cancelling an update.

When cancelling an update that was completed and pending reboot, we
need to rollback the "SetActiveSlot(the_other_slot)" action performed
when the update was applied. We used to just mark the current slot as
active, which should switch the priorities to make the current slot the
priority one.

This patch also marks the current slot as successful after marking it as
active since the action of marking a slot as active in the HAL might
reset the successful bit. The current slot must have already been marked
as successful because an update was applied, so this wouldn't mark a bad
slot successful.

Bug: 33102712
Test: Manual test: deployed an update, cancelled it with --reset_status
and checked that the current slot is still marked as successful.

(cherry picked from commit 5259033d23938ce3ce20e4a9b599be0eec113610)

Change-Id: I14f00fc0fb7156f148d06d1ed9a547223d7926cc
2 files changed
tree: a7acf2b64b5615bf57efa2167e6e870912026784
  1. binder_bindings/
  2. client_library/
  3. common/
  4. dbus_bindings/
  5. include/
  6. init/
  7. payload_consumer/
  8. payload_generator/
  9. sample_images/
  10. scripts/
  11. update_manager/
  12. update_payload_key/
  13. weaved/
  14. .gitignore
  15. Android.mk
  16. binder_service_android.cc
  17. binder_service_android.h
  18. binder_service_brillo.cc
  19. binder_service_brillo.h
  20. boot_control_android.cc
  21. boot_control_android.h
  22. boot_control_chromeos.cc
  23. boot_control_chromeos.h
  24. boot_control_chromeos_unittest.cc
  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_interface.h
  38. connection_manager_unittest.cc
  39. daemon.cc
  40. daemon.h
  41. daemon_state_android.cc
  42. daemon_state_android.h
  43. daemon_state_interface.h
  44. dbus_service.cc
  45. dbus_service.h
  46. dbus_test_utils.h
  47. fake_file_writer.h
  48. fake_p2p_manager.h
  49. fake_p2p_manager_configuration.h
  50. fake_shill_proxy.cc
  51. fake_shill_proxy.h
  52. fake_system_state.cc
  53. fake_system_state.h
  54. generate_pc_file.sh
  55. hardware_android.cc
  56. hardware_android.h
  57. hardware_chromeos.cc
  58. hardware_chromeos.h
  59. image_properties.h
  60. image_properties_android.cc
  61. image_properties_chromeos.cc
  62. libcros_proxy.cc
  63. libcros_proxy.h
  64. libcurl_http_fetcher.cc
  65. libcurl_http_fetcher.h
  66. libupdate_engine-client-test.pc.in
  67. libupdate_engine-client.pc.in
  68. local_coverage_rate
  69. main.cc
  70. metrics.cc
  71. metrics.h
  72. metrics_utils.cc
  73. metrics_utils.h
  74. metrics_utils_unittest.cc
  75. mock_certificate_checker.h
  76. mock_connection_manager.h
  77. mock_file_writer.h
  78. mock_omaha_request_params.h
  79. mock_p2p_manager.h
  80. mock_payload_state.h
  81. mock_proxy_resolver.h
  82. mock_update_attempter.h
  83. MODULE_LICENSE_APACHE2
  84. network_selector.h
  85. network_selector_android.cc
  86. network_selector_android.h
  87. network_selector_interface.h
  88. network_selector_stub.cc
  89. network_selector_stub.h
  90. NOTICE
  91. omaha_request_action.cc
  92. omaha_request_action.h
  93. omaha_request_action_unittest.cc
  94. omaha_request_params.cc
  95. omaha_request_params.h
  96. omaha_request_params_unittest.cc
  97. omaha_response.h
  98. omaha_response_handler_action.cc
  99. omaha_response_handler_action.h
  100. omaha_response_handler_action_unittest.cc
  101. OWNERS
  102. p2p_manager.cc
  103. p2p_manager.h
  104. p2p_manager_unittest.cc
  105. parcelable_update_engine_status.cc
  106. parcelable_update_engine_status.h
  107. payload_state.cc
  108. payload_state.h
  109. payload_state_interface.h
  110. payload_state_unittest.cc
  111. PRESUBMIT.cfg
  112. proxy_resolver.cc
  113. proxy_resolver.h
  114. real_system_state.cc
  115. real_system_state.h
  116. run_unittests
  117. sample_omaha_v3_response.xml
  118. service_delegate_android_interface.h
  119. service_observer_interface.h
  120. shill_proxy.cc
  121. shill_proxy.h
  122. shill_proxy_interface.h
  123. sideload_main.cc
  124. system_state.h
  125. tar_bunzip2.gypi
  126. test_http_server.cc
  127. testrunner.cc
  128. unittest_key.pem
  129. unittest_key2.pem
  130. update_attempter.cc
  131. update_attempter.h
  132. update_attempter_android.cc
  133. update_attempter_android.h
  134. update_attempter_unittest.cc
  135. update_engine-client.gyp
  136. update_engine.conf
  137. update_engine.gyp
  138. update_engine.rc
  139. update_engine_client.cc
  140. update_engine_client_android.cc
  141. update_metadata.proto
  142. update_status_utils.cc
  143. update_status_utils.h
  144. UpdateEngine.conf
  145. utils_android.cc
  146. utils_android.h
  147. WATCHLISTS
  148. weave_service.cc
  149. weave_service.h
  150. weave_service_factory.cc
  151. weave_service_factory.h
  152. weave_service_interface.h