Loading install/adb_install.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -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); }); Loading install/include/install/wipe_data.h +1 −1 Original line number Diff line number Diff line Loading @@ -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); install/install.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -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; } Loading install/wipe_data.cpp +7 −31 Original line number Diff line number Diff line Loading @@ -16,9 +16,7 @@ #include "install/wipe_data.h" #include <stdio.h> #include <string.h> #include <sys/stat.h> #include <functional> #include <vector> Loading @@ -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) { Loading @@ -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); Loading @@ -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); Loading @@ -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) { Loading recovery.cpp +4 −6 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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) { Loading Loading
install/adb_install.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -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); }); Loading
install/include/install/wipe_data.h +1 −1 Original line number Diff line number Diff line Loading @@ -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);
install/install.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -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; } Loading
install/wipe_data.cpp +7 −31 Original line number Diff line number Diff line Loading @@ -16,9 +16,7 @@ #include "install/wipe_data.h" #include <stdio.h> #include <string.h> #include <sys/stat.h> #include <functional> #include <vector> Loading @@ -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) { Loading @@ -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); Loading @@ -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); Loading @@ -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) { Loading
recovery.cpp +4 −6 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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) { Loading