diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2018-04-26 09:22:32 +0200 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2018-04-26 09:22:32 +0200 |
commit | 896de5423db1ec3824797e11199a08be20b02d1d (patch) | |
tree | d0ff1850afc0fc757ed674222b143160404c8ce1 | |
parent | Snap for 4722539 from eacb9c069756ff31df55f38d91610887ae079ac0 to pi-release (diff) | |
parent | Wipe the metadata partition when we wipe data. (diff) | |
download | android_bootable_recovery-896de5423db1ec3824797e11199a08be20b02d1d.tar android_bootable_recovery-896de5423db1ec3824797e11199a08be20b02d1d.tar.gz android_bootable_recovery-896de5423db1ec3824797e11199a08be20b02d1d.tar.bz2 android_bootable_recovery-896de5423db1ec3824797e11199a08be20b02d1d.tar.lz android_bootable_recovery-896de5423db1ec3824797e11199a08be20b02d1d.tar.xz android_bootable_recovery-896de5423db1ec3824797e11199a08be20b02d1d.tar.zst android_bootable_recovery-896de5423db1ec3824797e11199a08be20b02d1d.zip |
-rw-r--r-- | recovery.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/recovery.cpp b/recovery.cpp index d887d07fb..07ec5cfb6 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; } |