From c375878b8e5befc194008a03ade95163724b0171 Mon Sep 17 00:00:00 2001 From: Akilesh Kailash Date: Mon, 25 Mar 2024 18:35:04 -0700 Subject: [PATCH] snapuserd: Use snapshots during install If on Androd 12, continue to use snapshots Bug: 304829384 Test: OTA on Pixel Change-Id: I94890c308e7f297b695ddbd71659ebb1cf4d278c Signed-off-by: Akilesh Kailash --- fs_mgr/libsnapshot/snapuserd/snapuserd_daemon.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/fs_mgr/libsnapshot/snapuserd/snapuserd_daemon.cpp b/fs_mgr/libsnapshot/snapuserd/snapuserd_daemon.cpp index e28dd472c..0ebe543df 100644 --- a/fs_mgr/libsnapshot/snapuserd/snapuserd_daemon.cpp +++ b/fs_mgr/libsnapshot/snapuserd/snapuserd_daemon.cpp @@ -34,6 +34,21 @@ namespace android { namespace snapshot { bool Daemon::IsUserspaceSnapshotsEnabled() { + const std::string UNKNOWN = "unknown"; + const std::string vendor_release = + android::base::GetProperty("ro.vendor.build.version.release_or_codename", UNKNOWN); + + // If the vendor is on Android S, install process will forcefully take the + // userspace snapshots path. + // + // We will not reach here post OTA reboot as the binary will be from vendor + // ramdisk which is on Android S. + if (vendor_release.find("12") != std::string::npos) { + LOG(INFO) << "Userspace snapshots enabled as vendor partition is on Android: " + << vendor_release; + return true; + } + return android::base::GetBoolProperty("ro.virtual_ab.userspace.snapshots.enabled", false); }