No description
This is a host based tool wherein it compares two Android images and generates snapshot patches which are similar to Android OTA format. There are few advantages: 1: All the computation of snapshot logic is pushed onto the host. 2: Each partition can have different compression algorithm. 3: All the libsnapshot_cow changes can be tested very quickly. Here is the test run. This compares two builds which are 24 hours apart. ``` create_snapshot --source=$ANDROID_PRODUCT_OUT/system.img --target=./images/system.img --compression="zstd" & create_snapshot --source=$ANDROID_PRODUCT_OUT/product.img --target=./images/product.img --compression="lz4" & create_snapshot --source=$ANDROID_PRODUCT_OUT/vendor.img --target=./images/vendor.img & create_snapshot --source=$ANDROID_PRODUCT_OUT/system_ext.img --target=./images/system_ext.img --compression="gz" & create_snapshot --source=$ANDROID_PRODUCT_OUT/vendor_dlkm.img --target=./images/vendor_dlkm.img & echo "Waiting for snapshot patch creation" wait $(jobs -p) echo "Snapshot patch creation completed" ``` ======================================== Waiting for snapshot patch creation Snapshot patch: vendor_dlkm.patch created successfully Snapshot patch: vendor.patch created successfully Snapshot patch: system_ext.patch created successfully Snapshot patch: product.patch created successfully Snapshot patch: system.patch created successfully Snapshot patch creation completed real 0m3.848s user 0m14.239s sys 0m8.045s ======================================== It takes ~4 seconds to generate the snapshot patches on the host. Snapshot patches are named as <partition-name>.patch. Bug: 299011882 Test: create_snapshot between two builds as mentioned above. Change-Id: Ic87dd3349a866b5626fa03f1f879f417a8116cc2 Signed-off-by: Akilesh Kailash <akailash@google.com> |
||
|---|---|---|
| bootstat | ||
| cli-test | ||
| code_coverage | ||
| debuggerd | ||
| diagnose_usb | ||
| fastboot | ||
| fs_mgr | ||
| gatekeeperd | ||
| healthd | ||
| include | ||
| init | ||
| janitors | ||
| libappfuse | ||
| libasyncio | ||
| libcrypto_utils | ||
| libcutils | ||
| libgrallocusage | ||
| libkeyutils | ||
| libmodprobe | ||
| libnetutils | ||
| libpackagelistparser | ||
| libprocessgroup | ||
| libsparse | ||
| libstats | ||
| libsuspend | ||
| libsync | ||
| libsystem | ||
| libsysutils | ||
| libusbhost | ||
| libutils | ||
| libvndksupport | ||
| llkd | ||
| mini_keyctl | ||
| mkbootfs | ||
| property_service | ||
| reboot | ||
| rootdir | ||
| run-as | ||
| sdcard | ||
| shell_and_utilities | ||
| storaged | ||
| toolbox | ||
| trusty | ||
| usbd | ||
| watchdogd | ||
| .clang-format | ||
| .clang-format-2 | ||
| .clang-format-4 | ||
| .gitignore | ||
| CleanSpec.mk | ||
| METADATA | ||
| MODULE_LICENSE_APACHE2 | ||
| OWNERS | ||
| PREUPLOAD.cfg | ||
| rustfmt.toml | ||