libsnapshot: Enable snapshots during OTA install for S vendor

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>
This commit is contained in:
Akilesh Kailash 2024-03-25 11:32:27 -07:00
parent da9db4f396
commit 35d5c94bb0

View file

@ -3288,8 +3288,11 @@ Return SnapshotManager::CreateUpdateSnapshots(const DeltaArchiveManifest& manife
}
}
LOG(INFO) << "userspace snapshots: " << userspace_snapshots
<< " legacy_snapuserd: " << legacy_compression;
if (!userspace_snapshots && is_legacy_snapuserd && legacy_compression) {
userspace_snapshots = true;
LOG(INFO) << "Vendor from Android 12. Enabling userspace snapshot for OTA install";
}
const bool using_snapuserd = userspace_snapshots || legacy_compression;
if (!using_snapuserd) {
LOG(INFO) << "Using legacy Virtual A/B (dm-snapshot)";
@ -3389,6 +3392,7 @@ Return SnapshotManager::CreateUpdateSnapshots(const DeltaArchiveManifest& manife
}
if (is_legacy_snapuserd) {
LOG(INFO) << "Setting legacy_snapuserd to true";
status.set_legacy_snapuserd(true);
}
} else if (legacy_compression) {