summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2022-03-10 23:13:39 +0100
committerEric Biggers <ebiggers@google.com>2022-03-10 23:48:49 +0100
commitfde69fbd8ab174dbc9f828785c435a7d52311386 (patch)
tree2a0820b1c0944841852af90638b80e1b7cc16ee6
parentMerge "Merge Android 12L" (diff)
downloadandroid_bootable_recovery-fde69fbd8ab174dbc9f828785c435a7d52311386.tar
android_bootable_recovery-fde69fbd8ab174dbc9f828785c435a7d52311386.tar.gz
android_bootable_recovery-fde69fbd8ab174dbc9f828785c435a7d52311386.tar.bz2
android_bootable_recovery-fde69fbd8ab174dbc9f828785c435a7d52311386.tar.lz
android_bootable_recovery-fde69fbd8ab174dbc9f828785c435a7d52311386.tar.xz
android_bootable_recovery-fde69fbd8ab174dbc9f828785c435a7d52311386.tar.zst
android_bootable_recovery-fde69fbd8ab174dbc9f828785c435a7d52311386.zip
-rw-r--r--install/adb_install.cpp2
-rw-r--r--install/include/install/wipe_data.h2
-rw-r--r--install/install.cpp2
-rw-r--r--install/wipe_data.cpp38
-rw-r--r--recovery.cpp10
5 files changed, 14 insertions, 40 deletions
diff --git a/install/adb_install.cpp b/install/adb_install.cpp
index 5cba7b67c..b12e52944 100644
--- a/install/adb_install.cpp
+++ b/install/adb_install.cpp
@@ -369,7 +369,7 @@ InstallResult ApplyFromAdb(Device* device, bool rescue_mode, Device::BuiltinActi
"to the device with \"adb sideload <filename>\"...\n");
} else {
command_map.emplace(MinadbdCommand::kWipeData, [&device]() {
- bool result = WipeData(device, false);
+ bool result = WipeData(device);
return std::make_pair(result, true);
});
command_map.emplace(MinadbdCommand::kNoOp, []() { return std::make_pair(true, true); });
diff --git a/install/include/install/wipe_data.h b/install/include/install/wipe_data.h
index b34891f3d..42cad871e 100644
--- a/install/include/install/wipe_data.h
+++ b/install/include/install/wipe_data.h
@@ -27,4 +27,4 @@ struct selabel_handle;
bool WipeCache(RecoveryUI* ui, const std::function<bool()>& confirm);
// Returns true on success.
-bool WipeData(Device* device, bool convert_fbe);
+bool WipeData(Device* device);
diff --git a/install/install.cpp b/install/install.cpp
index 811bcb021..83f3cad6b 100644
--- a/install/install.cpp
+++ b/install/install.cpp
@@ -347,7 +347,7 @@ static bool PerformPowerwashIfRequired(ZipArchiveHandle zip, Device *device) {
const auto payload_properties = ExtractPayloadProperties(zip);
if (payload_properties.find("POWERWASH=1") != std::string::npos) {
LOG(INFO) << "Payload properties has POWERWASH=1, wiping userdata...";
- return WipeData(device, true);
+ return WipeData(device);
}
return true;
}
diff --git a/install/wipe_data.cpp b/install/wipe_data.cpp
index 4eecf72c6..024c1e1d5 100644
--- a/install/wipe_data.cpp
+++ b/install/wipe_data.cpp
@@ -16,9 +16,7 @@
#include "install/wipe_data.h"
-#include <stdio.h>
#include <string.h>
-#include <sys/stat.h>
#include <functional>
#include <vector>
@@ -37,9 +35,8 @@ constexpr const char* CACHE_ROOT = "/cache";
constexpr const char* DATA_ROOT = "/data";
constexpr const char* METADATA_ROOT = "/metadata";
-static bool EraseVolume(const char* volume, RecoveryUI* ui, bool convert_fbe) {
+static bool EraseVolume(const char* volume, RecoveryUI* ui) {
bool is_cache = (strcmp(volume, CACHE_ROOT) == 0);
- bool is_data = (strcmp(volume, DATA_ROOT) == 0);
std::vector<saved_log_file> log_files;
if (is_cache) {
@@ -52,28 +49,7 @@ static bool EraseVolume(const char* volume, RecoveryUI* ui, bool convert_fbe) {
ensure_path_unmounted(volume);
- int result;
- if (is_data && convert_fbe) {
- constexpr const char* CONVERT_FBE_DIR = "/tmp/convert_fbe";
- constexpr const char* CONVERT_FBE_FILE = "/tmp/convert_fbe/convert_fbe";
- // Create convert_fbe breadcrumb file to signal init to convert to file based encryption, not
- // full disk encryption.
- if (mkdir(CONVERT_FBE_DIR, 0700) != 0) {
- PLOG(ERROR) << "Failed to mkdir " << CONVERT_FBE_DIR;
- return false;
- }
- FILE* f = fopen(CONVERT_FBE_FILE, "wbe");
- if (!f) {
- PLOG(ERROR) << "Failed to convert to file encryption";
- return false;
- }
- fclose(f);
- result = format_volume(volume, CONVERT_FBE_DIR);
- remove(CONVERT_FBE_FILE);
- rmdir(CONVERT_FBE_DIR);
- } else {
- result = format_volume(volume);
- }
+ int result = format_volume(volume);
if (is_cache) {
RestoreLogFilesAfterFormat(log_files);
@@ -97,12 +73,12 @@ bool WipeCache(RecoveryUI* ui, const std::function<bool()>& confirm_func) {
ui->SetBackground(RecoveryUI::ERASING);
ui->SetProgressType(RecoveryUI::INDETERMINATE);
- bool success = EraseVolume("/cache", ui, false);
+ bool success = EraseVolume("/cache", ui);
ui->Print("Cache wipe %s.\n", success ? "complete" : "failed");
return success;
}
-bool WipeData(Device* device, bool convert_fbe) {
+bool WipeData(Device* device) {
RecoveryUI* ui = device->GetUI();
ui->Print("\n-- Wiping data...\n");
ui->SetBackground(RecoveryUI::ERASING);
@@ -115,13 +91,13 @@ bool WipeData(Device* device, bool convert_fbe) {
bool success = device->PreWipeData();
if (success) {
- success &= EraseVolume(DATA_ROOT, ui, convert_fbe);
+ success &= EraseVolume(DATA_ROOT, ui);
bool has_cache = volume_for_mount_point("/cache") != nullptr;
if (has_cache) {
- success &= EraseVolume(CACHE_ROOT, ui, false);
+ success &= EraseVolume(CACHE_ROOT, ui);
}
if (volume_for_mount_point(METADATA_ROOT) != nullptr) {
- success &= EraseVolume(METADATA_ROOT, ui, false);
+ success &= EraseVolume(METADATA_ROOT, ui);
}
}
if (success) {
diff --git a/recovery.cpp b/recovery.cpp
index 0c977c361..4d3901959 100644
--- a/recovery.cpp
+++ b/recovery.cpp
@@ -207,8 +207,7 @@ static InstallResult prompt_and_wipe_data(Device* device) {
if (ask_to_wipe_data(device)) {
CHECK(device->GetReason().has_value());
- bool convert_fbe = device->GetReason().value() == "convert_fbe";
- if (WipeData(device, convert_fbe)) {
+ if (WipeData(device)) {
return INSTALL_SUCCESS;
} else {
return INSTALL_ERROR;
@@ -437,10 +436,10 @@ static Device::BuiltinAction PromptAndWait(Device* device, InstallResult status)
save_current_log = true;
if (ui->IsTextVisible()) {
if (ask_to_wipe_data(device)) {
- WipeData(device, false);
+ WipeData(device);
}
} else {
- WipeData(device, false);
+ WipeData(device);
return Device::NO_ACTION;
}
break;
@@ -794,8 +793,7 @@ Device::BuiltinAction start_recovery(Device* device, const std::vector<std::stri
} else if (should_wipe_data) {
save_current_log = true;
CHECK(device->GetReason().has_value());
- bool convert_fbe = device->GetReason().value() == "convert_fbe";
- if (!WipeData(device, convert_fbe)) {
+ if (!WipeData(device)) {
status = INSTALL_ERROR;
}
} else if (should_prompt_and_wipe_data) {