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>
diff --git a/fs_mgr/libsnapshot/snapshot.cpp b/fs_mgr/libsnapshot/snapshot.cpp
index b4892b4..6d344bd 100644
--- a/fs_mgr/libsnapshot/snapshot.cpp
+++ b/fs_mgr/libsnapshot/snapshot.cpp
@@ -3288,8 +3288,11 @@
}
}
- 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 @@
}
if (is_legacy_snapuserd) {
+ LOG(INFO) << "Setting legacy_snapuserd to true";
status.set_legacy_snapuserd(true);
}
} else if (legacy_compression) {