* In recovery we need to be able to edit the block device
after it's been mounted.
This allows, for example, to wipe system after mounting it
Change-Id: Ie536d275643e9d6063bba789e4cd2fa2671fc8fa
Also, remove snapuserd from the vendor ramdisk since this isn't used
anymore.
Bug: 345158294
Test: ldd snapuserd_ramdisk and system/bin/snapuserd
apply full OTA on aosp_cf
Change-Id: I2c2ad1458d67a8449c548e22660f523ba9c86849
Read merge thread + worker thread priority from build configurations. In
the case of low memory devices, a lower priority will reduce CPU
utilization post OTA reboot.
Test: th
Change-Id: I812fccf2ca805d9686a837774e1770a2eebf979a
If o_direct is enabled in build configuration, forward this argument to
snapuserd when the daemon is started.
Bug: 332255580
Test: th
Change-Id: I8e4be5503665031735dba2ebc748e209c45df942
Build it statically so that it gets easy to be deployed
in lab host without additional shared dependency.
Bug: 342328623
Test: Build create_snapshot; ldd create_snapshot
Change-Id: Ie788ba34bfff38cf78f29ad41d912dcad3bf77de
Signed-off-by: Akilesh Kailash <akailash@google.com>
Read number of merge threads from build. In the case that this isn't
specified, fallback to our default.
**THIS doesn't seem to be currently working. It looks like we can't
directly read the property here?
Test: th
Change-Id: I115b6b987699759168d34239d030cfcd0238b1b4
We are adding low memory device configurables. Post OTA reboot, these
values need to be read during 1st stage init and set. Since .ro props
aren't available at this stage, we need to flush these configurables to
snapshot_protos that lives under /Metadata
Bug: 332255580
Test: th
Change-Id: Iff84c0dfe9c6931ea13165b380e11cee6343ce91
In the case that read ahead size is set by the build, we want to read
that property rather than use our default.
Bug: 332255580
Test: th
Change-Id: I5302a9a275d284be6c68edab9e13aae1128eb699
system/core/fs_mgr/libsnapshot/include/libsnapshot/cow_reader.h:174:33: error: no template named 'vector' in namespace 'std'
174 | bool GetSequenceDataV2(std::vector<uint32_t>* merge_op_blocks, std::vector<int>* other_ops,
| ~~~~~^
Test: Build with ToT libc++
Change-Id: I1858b30bd4eb6df39411a60a64d6bf16d2a7bfa6
We want to print how much total data we are attempting to write if a
failure occurs
Bug: 336461151
Test: th
Change-Id: I269b7e280df34994c80fa8ef7d39163d053fa9ea
This adds a raw partition to /data.
Bug: 336319772
Change-Id: Iaae51452be621a15ccd9c2530dae44f4c8714b2f
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
Remove hard coded global variables referencing cow version in
libsnapshot. This value should stem from the build system, or set
individually in test cases.
Bug: 307452468
Test: th
Change-Id: I3d536246008acca92cd93e77886e5f7d17a131e0
If the COW device is allocated only from /data, then
the COW device name will end with -cow-img. Hence, check
that path as well.
Bug: 335552315
Test: snapshotctl apply-update
Change-Id: Id3c5cf8afd77994da117de41bb98a226b350f8e4
Signed-off-by: Akilesh Kailash <akailash@google.com>
Zstd compression goes all the way down to -7. zstd compression level -3
gives around the same compression ratio as lz4 level=3. Need further
testing to see performance comparison
Test: ota_from_target_files, update_device.py
Change-Id: Ic082b31aa8af938f80be628c73667e02353835f0
thin-pool and thin targets are supported via DmTargetThinPool and
DmTargetThin. DM_TARGET_MSG is also added via a new method
SendMessage() because it's used to create a thin volumn.
dmctl is extended to support thin-pool and thin targets.
TODO: thin-pool target constructor can accept feature arguments.
Bug: 327081431
Test: atest libdm_test (CF with dm-thin enabled kernel)
Change-Id: I4c51c668bfe1489b959f6d03c205a5e2e63d9a1d
If partitions are mounted off the daemon, there is no need
to kill if the tests are being run for legacy vab snapshots.
This also removes vabc_legacy_test as it is no longer required.
Bug: 331053511
Test: vab_legacy_test, vts_libsnapshot_test on Pixel - No flake observed
with 10 iterations
Change-Id: Ie8b29fef77948d23d920c19d816376290cf2fed9
Signed-off-by: Akilesh Kailash <akailash@google.com>
If on Androd 12, continue to use snapshots
Bug: 304829384
Test: OTA on Pixel
Change-Id: I94890c308e7f297b695ddbd71659ebb1cf4d278c
Signed-off-by: Akilesh Kailash <akailash@google.com>
ro.virtual_ab.userspace.snapshots.enabled is a vendor property which isn't present in Android S. Hence, during OTA install with S vendor, userspace_snapshots is disabled.
However, both update_engine and snapuserd are already on the system partition during install. Hence, forcefully enable userspace_snapshots if this is a path of legacy dm-snapshots with Vendor on Android S.
Bug: 331156940
Test: OTA tests on treehugger, pixel OTA
Change-Id: I3d1c03493d83e670e37df088d4b676c4aa1dc720
Signed-off-by: Akilesh Kailash <akailash@google.com>
Change the meaning of batch_size_. Previously, a batch size of 200 meant
200 compressed data ops. With variable block size, each compressed data
op can be up to 256k uncompressed size -> batch size meaning should be
changed to 200 blocks of block size.
With this being said, the default batch size can be increased to 4mb to
better accomodate variable block size
The way we calculate the number of blocks to compress at once also
needs to be changed. Since there's no way of determining the comperssed
data size ahead of time, allow overwriting the cache by batch_size_ and
then flushing the cache as needed
Bug: 322279333
Test: Ota on pixel and measuring system image cow
Change-Id: Ie8e08d109dc5c3b4f5f36a740bbbcd37362a7ab3