aboutsummaryrefslogtreecommitdiff
path: root/install
diff options
context:
space:
mode:
authorMichael Bestas <mkbestas@lineageos.org>2019-09-27 19:52:13 +0300
committerTim Zimmermann <tim@linux4.de>2022-08-23 17:55:21 +0200
commitb7e71ff78c6e1306292993ba8da16b0a96d18a0a (patch)
tree1286dd7fc9d4d26140192d2babfc5abbf59ffc77 /install
parent0242aa21a94c674390874a50158a5b99f2094562 (diff)
recovery: Add wipe system partition option
Change-Id: Id606cef249a7464037443de6265055803c290d82
Diffstat (limited to 'install')
-rw-r--r--install/include/install/wipe_data.h3
-rw-r--r--install/wipe_data.cpp12
2 files changed, 15 insertions, 0 deletions
diff --git a/install/include/install/wipe_data.h b/install/include/install/wipe_data.h
index 42cad871..fc8f365c 100644
--- a/install/include/install/wipe_data.h
+++ b/install/include/install/wipe_data.h
@@ -28,3 +28,6 @@ bool WipeCache(RecoveryUI* ui, const std::function<bool()>& confirm);
// Returns true on success.
bool WipeData(Device* device);
+
+// Returns true on success.
+bool WipeSystem(RecoveryUI* ui, const std::function<bool()>& confirm);
diff --git a/install/wipe_data.cpp b/install/wipe_data.cpp
index 57565e24..821a1e32 100644
--- a/install/wipe_data.cpp
+++ b/install/wipe_data.cpp
@@ -24,6 +24,7 @@
#include <android-base/file.h>
#include <android-base/logging.h>
#include <android-base/stringprintf.h>
+#include <fs_mgr/roots.h>
#include "install/snapshot_utils.h"
#include "otautil/dirutil.h"
@@ -110,3 +111,14 @@ bool WipeData(Device* device) {
ui->Print("Data wipe %s.\n", success ? "complete" : "failed");
return success;
}
+
+bool WipeSystem(RecoveryUI* ui, const std::function<bool()>& confirm_func) {
+ if (confirm_func && !confirm_func()) {
+ return false;
+ }
+
+ ui->Print("\n-- Wiping system...\n");
+ bool success = EraseVolume(android::fs_mgr::GetSystemRoot().c_str(), ui);
+ ui->Print("System wipe %s.\n", success ? "complete" : "failed");
+ return success;
+}