Add a util for converting ota payload to cow image
VAB team can use this tool to understand what real world COW images look
like, and perhaps write unittests
How to use this tool:
1. mm -j cow_converter
2. `unzip your_ota.zip payload.bin`
3. `unzip target_file.zip "IMAGES/*" -d /tmp/target_file
4. `cow_converter payload.bin /tmp/target_file/IMAGES`
5. inspect generated cow images `ls -l /tmp/target_file/IMAGES/*.cow`
Test: cow_converter payload.bin /tmp/target_file/IMAGES
Change-Id: I2c9d1ea566378e3350a048c40ff05a79d14873e8
diff --git a/Android.bp b/Android.bp
index 1658533..bc178bc 100644
--- a/Android.bp
+++ b/Android.bp
@@ -537,6 +537,7 @@
"libverity_tree",
"update_metadata-protos",
"libpayload_extent_utils",
+ "libcow_size_estimator",
],
shared_libs: [
"libbase",
@@ -560,6 +561,25 @@
}
cc_library_static {
+ name: "libcow_size_estimator",
+ defaults: [
+ "ue_defaults",
+ "update_metadata-protos_exports"
+ ],
+ host_supported: true,
+ recovery_available: true,
+ srcs: [
+ "payload_generator/cow_size_estimator.cc",
+ ],
+ static_libs: [
+ "update_metadata-protos",
+ "libbase",
+ "libsnapshot_cow",
+ "libcow_operation_convert",
+ ],
+}
+
+cc_library_static {
name: "libpayload_generator",
defaults: [
"ue_defaults",
@@ -576,7 +596,6 @@
"payload_generator/block_mapping.cc",
"payload_generator/boot_img_filesystem.cc",
"payload_generator/bzip.cc",
- "payload_generator/cow_size_estimator.cc",
"payload_generator/deflate_utils.cc",
"payload_generator/delta_diff_generator.cc",
"payload_generator/delta_diff_utils.cc",
@@ -852,3 +871,27 @@
},
}
}
+
+cc_binary_host {
+ name: "cow_converter",
+ defaults: [
+ "ue_defaults",
+ "libpayload_consumer_exports",
+ ],
+ srcs: [
+ "aosp/cow_converter.cc",
+ ],
+ static_libs: [
+ "liblog",
+ "libbrotli",
+ "libbase",
+ "libcow_operation_convert",
+ "libcow_size_estimator",
+ "libpayload_consumer",
+ "libpayload_extent_ranges",
+ "libpayload_extent_utils",
+ "libsnapshot_cow",
+ "libz",
+ "update_metadata-protos",
+ ],
+}
\ No newline at end of file