diff options
author | Paul Crowley <paulcrowley@google.com> | 2018-04-25 04:54:43 +0200 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-04-25 04:54:43 +0200 |
commit | bd56ab163a4afd6dd02c042206ad1abc721f54dc (patch) | |
tree | cc62dfe270c6a3ef015f2be0c02cf88360e25fbe /recovery.cpp | |
parent | Merge "Dump debug information for apply_patch unit tests" am: fe527cced4 (diff) | |
parent | Merge "Wipe the metadata partition when we wipe data." (diff) | |
download | android_bootable_recovery-bd56ab163a4afd6dd02c042206ad1abc721f54dc.tar android_bootable_recovery-bd56ab163a4afd6dd02c042206ad1abc721f54dc.tar.gz android_bootable_recovery-bd56ab163a4afd6dd02c042206ad1abc721f54dc.tar.bz2 android_bootable_recovery-bd56ab163a4afd6dd02c042206ad1abc721f54dc.tar.lz android_bootable_recovery-bd56ab163a4afd6dd02c042206ad1abc721f54dc.tar.xz android_bootable_recovery-bd56ab163a4afd6dd02c042206ad1abc721f54dc.tar.zst android_bootable_recovery-bd56ab163a4afd6dd02c042206ad1abc721f54dc.zip |
Diffstat (limited to 'recovery.cpp')
-rw-r--r-- | recovery.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/recovery.cpp b/recovery.cpp index e266d9312..15af9f05a 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -108,6 +108,7 @@ static const char *CONVERT_FBE_DIR = "/tmp/convert_fbe"; static const char *CONVERT_FBE_FILE = "/tmp/convert_fbe/convert_fbe"; static const char *CACHE_ROOT = "/cache"; static const char *DATA_ROOT = "/data"; +static const char* METADATA_ROOT = "/metadata"; static const char *SDCARD_ROOT = "/sdcard"; static const char *TEMPORARY_LOG_FILE = "/tmp/recovery.log"; static const char *TEMPORARY_INSTALL_FILE = "/tmp/last_install"; @@ -752,11 +753,19 @@ static bool wipe_data(Device* device) { modified_flash = true; ui->Print("\n-- Wiping data...\n"); - bool success = - device->PreWipeData() && - erase_volume("/data") && - (has_cache ? erase_volume("/cache") : true) && - device->PostWipeData(); + bool success = device->PreWipeData(); + if (success) { + success &= erase_volume(DATA_ROOT); + if (has_cache) { + success &= erase_volume(CACHE_ROOT); + } + if (volume_for_mount_point(METADATA_ROOT) != nullptr) { + success &= erase_volume(METADATA_ROOT); + } + } + if (success) { + success &= device->PostWipeData(); + } ui->Print("Data wipe %s.\n", success ? "complete" : "failed"); return success; } |