From a9665ced57ebd3f00f11cd8d9d99b33269687286 Mon Sep 17 00:00:00 2001 From: Alessio Balsini Date: Mon, 9 Dec 2019 09:26:05 +0000 Subject: Mount snapshotted /system in Virtual A/B devices Mounting /system in Virtual A/B devices may require the creation of the associated snapshot devices. This patch performs all the required initializations prior to attempting the mount of /system. Bug: 139157327 Test: manual /system partition mount on VAB device during OTA Depends-on: I7337bdd38d7016d12d3ee42be1c7893b10e9116d Change-Id: I71a9dfc57e1a1354f1f1edc5d287aca93c0c8924 Signed-off-by: Alessio Balsini --- recovery.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'recovery.cpp') diff --git a/recovery.cpp b/recovery.cpp index f59a940fc..e4b8e45fb 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -50,6 +50,7 @@ #include "install/fuse_install.h" #include "install/install.h" #include "install/package.h" +#include "install/snapshot_utils.h" #include "install/wipe_data.h" #include "install/wipe_device.h" #include "otautil/boot_state.h" @@ -437,7 +438,13 @@ static Device::BuiltinAction PromptAndWait(Device* device, InstallResult status) screen_ui->CheckBackgroundTextImages(); break; } + case Device::MOUNT_SYSTEM: + // For Virtual A/B, set up the snapshot devices (if exist). + if (!CreateSnapshotPartitions()) { + ui->Print("Virtual A/B: snapshot partitions creation failed.\n"); + break; + } if (ensure_path_mounted_at(android::fs_mgr::GetSystemRoot(), "/mnt/system") != -1) { ui->Print("Mounted /system.\n"); } -- cgit v1.2.3