Allow to shrink ext2 filesystems.

There was a function a long time ago that didn't handle shrinking an
ext2 filesystem when computing the diff of the blocks that were not
part of a file nor metadata (mostly empty space blocks). This is now
handled in a different way, which is not related to how the filesystems
are parsed in the ABGenerator.

This patch removes the check that prevents the delta generator from
generating those payloads and fixes the inplace generator for partitions
that shrink in size.

Bug: 28846535
TEST=Generated a payload to a smaller ext2 system image, both for
minor version 1 and 2+.

Change-Id: I36efb28c393bec8aa65be8ea158690a7e8f06b22

(cherry picked from commit 05871fab8b32938ad66ce230250ff6db5563bd7a)
4 files changed
tree: e1905650ea82f5f8d734664784ed38246afbd93b
  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. chrome_browser_proxy_resolver.cc
  26. chrome_browser_proxy_resolver.h
  27. chrome_browser_proxy_resolver_unittest.cc
  28. common_service.cc
  29. common_service.h
  30. common_service_unittest.cc
  31. connection_manager.cc
  32. connection_manager.h
  33. connection_manager_interface.h
  34. connection_manager_unittest.cc
  35. daemon.cc
  36. daemon.h
  37. daemon_state_android.cc
  38. daemon_state_android.h
  39. daemon_state_interface.h
  40. dbus_service.cc
  41. dbus_service.h
  42. dbus_test_utils.h
  43. fake_file_writer.h
  44. fake_p2p_manager.h
  45. fake_p2p_manager_configuration.h
  46. fake_shill_proxy.cc
  47. fake_shill_proxy.h
  48. fake_system_state.cc
  49. fake_system_state.h
  50. generate_pc_file.sh
  51. hardware_android.cc
  52. hardware_android.h
  53. hardware_chromeos.cc
  54. hardware_chromeos.h
  55. image_properties.h
  56. image_properties_android.cc
  57. image_properties_chromeos.cc
  58. libcros_proxy.cc
  59. libcros_proxy.h
  60. libupdate_engine-client-test.pc.in
  61. libupdate_engine-client.pc.in
  62. local_coverage_rate
  63. main.cc
  64. metrics.cc
  65. metrics.h
  66. metrics_utils.cc
  67. metrics_utils.h
  68. metrics_utils_unittest.cc
  69. mock_connection_manager.h
  70. mock_file_writer.h
  71. mock_omaha_request_params.h
  72. mock_p2p_manager.h
  73. mock_payload_state.h
  74. mock_proxy_resolver.h
  75. mock_update_attempter.h
  76. MODULE_LICENSE_APACHE2
  77. NOTICE
  78. omaha_request_action.cc
  79. omaha_request_action.h
  80. omaha_request_action_unittest.cc
  81. omaha_request_params.cc
  82. omaha_request_params.h
  83. omaha_request_params_unittest.cc
  84. omaha_response.h
  85. omaha_response_handler_action.cc
  86. omaha_response_handler_action.h
  87. omaha_response_handler_action_unittest.cc
  88. OWNERS
  89. p2p_manager.cc
  90. p2p_manager.h
  91. p2p_manager_unittest.cc
  92. parcelable_update_engine_status.cc
  93. parcelable_update_engine_status.h
  94. payload_state.cc
  95. payload_state.h
  96. payload_state_interface.h
  97. payload_state_unittest.cc
  98. PRESUBMIT.cfg
  99. proxy_resolver.cc
  100. proxy_resolver.h
  101. real_system_state.cc
  102. real_system_state.h
  103. run_unittests
  104. sample_omaha_v3_response.xml
  105. service_delegate_android_interface.h
  106. service_observer_interface.h
  107. shill_proxy.cc
  108. shill_proxy.h
  109. shill_proxy_interface.h
  110. system_state.h
  111. tar_bunzip2.gypi
  112. test_http_server.cc
  113. testrunner.cc
  114. unittest_key.pem
  115. unittest_key2.pem
  116. update_attempter.cc
  117. update_attempter.h
  118. update_attempter_android.cc
  119. update_attempter_android.h
  120. update_attempter_unittest.cc
  121. update_engine-client.gyp
  122. update_engine.conf
  123. update_engine.gyp
  124. update_engine.rc
  125. update_engine_client.cc
  126. update_engine_client_android.cc
  127. update_metadata.proto
  128. update_status_utils.cc
  129. update_status_utils.h
  130. UpdateEngine.conf
  131. utils_android.cc
  132. utils_android.h
  133. WATCHLISTS
  134. weave_service.cc
  135. weave_service.h
  136. weave_service_factory.cc
  137. weave_service_factory.h
  138. weave_service_interface.h