diff options
author | Eric Biggers <ebiggers@google.com> | 2022-03-10 23:13:39 +0100 |
---|---|---|
committer | Eric Biggers <ebiggers@google.com> | 2022-03-10 23:48:49 +0100 |
commit | fde69fbd8ab174dbc9f828785c435a7d52311386 (patch) | |
tree | 2a0820b1c0944841852af90638b80e1b7cc16ee6 | |
parent | Merge "Merge Android 12L" (diff) | |
download | android_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.cpp | 2 | ||||
-rw-r--r-- | install/include/install/wipe_data.h | 2 | ||||
-rw-r--r-- | install/install.cpp | 2 | ||||
-rw-r--r-- | install/wipe_data.cpp | 38 | ||||
-rw-r--r-- | recovery.cpp | 10 |
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) { |