Remove duplicates in ab_partitions.txt

ab_partitions.txt is populated by AB_OTA_PARTITIONS which might be
appended in multiple makefiles resulting in duplicates, currently
this will result in payload being larger because it will include the
operations for that partition twice and the client will write that
partition twice when applying that payload.

This patch uses awk in brillo_update_payload when reading
ab_partitions.txt to remove the duplicates.

Test: generate a payload with duplicated entries in ab_partitions.txt
Change-Id: I07bd2401a64fbc77bbdc632901016e3860dee8d9
1 file changed
tree: bc639309d73467395b882c28f823559ad33b8d02
  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_reporter_stub.cc
  86. metrics_reporter_stub.h
  87. metrics_utils.cc
  88. metrics_utils.h
  89. metrics_utils_unittest.cc
  90. mock_certificate_checker.h
  91. mock_connection_manager.h
  92. mock_file_writer.h
  93. mock_metrics_reporter.h
  94. mock_omaha_request_params.h
  95. mock_p2p_manager.h
  96. mock_payload_state.h
  97. mock_power_manager.h
  98. mock_proxy_resolver.h
  99. mock_service_observer.h
  100. mock_update_attempter.h
  101. MODULE_LICENSE_APACHE2
  102. network_selector.h
  103. network_selector_android.cc
  104. network_selector_android.h
  105. network_selector_interface.h
  106. network_selector_stub.cc
  107. network_selector_stub.h
  108. NOTICE
  109. omaha_request_action.cc
  110. omaha_request_action.h
  111. omaha_request_action_unittest.cc
  112. omaha_request_params.cc
  113. omaha_request_params.h
  114. omaha_request_params_unittest.cc
  115. omaha_response.h
  116. omaha_response_handler_action.cc
  117. omaha_response_handler_action.h
  118. omaha_response_handler_action_unittest.cc
  119. omaha_utils.cc
  120. omaha_utils.h
  121. omaha_utils_unittest.cc
  122. OWNERS
  123. p2p_manager.cc
  124. p2p_manager.h
  125. p2p_manager_unittest.cc
  126. parcelable_update_engine_status.cc
  127. parcelable_update_engine_status.h
  128. parcelable_update_engine_status_unittest.cc
  129. payload_state.cc
  130. payload_state.h
  131. payload_state_interface.h
  132. payload_state_unittest.cc
  133. power_manager_android.cc
  134. power_manager_android.h
  135. power_manager_chromeos.cc
  136. power_manager_chromeos.h
  137. power_manager_interface.h
  138. PRESUBMIT.cfg
  139. PREUPLOAD.cfg
  140. proxy_resolver.cc
  141. proxy_resolver.h
  142. proxy_resolver_unittest.cc
  143. pylintrc
  144. real_system_state.cc
  145. real_system_state.h
  146. run_unittests
  147. sample_omaha_v3_response.xml
  148. service_delegate_android_interface.h
  149. service_observer_interface.h
  150. shill_proxy.cc
  151. shill_proxy.h
  152. shill_proxy_interface.h
  153. sideload_main.cc
  154. system_state.h
  155. tar_bunzip2.gypi
  156. test_http_server.cc
  157. test_subprocess.cc
  158. testrunner.cc
  159. unittest_key.pem
  160. unittest_key2.pem
  161. update_attempter.cc
  162. update_attempter.h
  163. update_attempter_android.cc
  164. update_attempter_android.h
  165. update_attempter_android_unittest.cc
  166. update_attempter_unittest.cc
  167. update_engine-client.gyp
  168. update_engine.conf
  169. update_engine.gyp
  170. update_engine.rc
  171. update_engine_client.cc
  172. update_engine_client_android.cc
  173. update_metadata.proto
  174. update_status_utils.cc
  175. update_status_utils.h
  176. UpdateEngine.conf
  177. utils_android.cc
  178. utils_android.h
  179. WATCHLISTS