From b3f073a21bd76af4078b9deab269f7f81bfb8996 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Tue, 3 Aug 2021 17:44:27 -0700 Subject: [PATCH] system reset improvements (#21844) * reset improvements * cleanup Co-authored-by: Comma Device old-commit-hash: 4f9e568019492126e236da85b5ca0a059f292900 --- selfdrive/ui/qt/setup/reset.cc | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/selfdrive/ui/qt/setup/reset.cc b/selfdrive/ui/qt/setup/reset.cc index 7355a9338d..84b7773314 100644 --- a/selfdrive/ui/qt/setup/reset.cc +++ b/selfdrive/ui/qt/setup/reset.cc @@ -12,22 +12,22 @@ #define USERDATA "/dev/disk/by-partlabel/userdata" void Reset::doReset() { - std::vector cmds = { - "sudo umount " NVME " || true", - "yes | sudo mkfs.ext4 " NVME " || true", - "sudo umount " USERDATA " || true", - "yes | sudo mkfs.ext4 " USERDATA, - "sudo reboot", - }; - - for (auto &cmd : cmds) { - int ret = std::system(cmd); - if (ret != 0) { - body->setText("Reset failed. Reboot to try again."); - rebootBtn->show(); - return; - } + // best effort to wipe nvme + std::system("sudo umount " NVME); + std::system("yes | sudo mkfs.ext4 " NVME); + + // we handle two cases here + // * user-prompted factory reset + // * recovering from a corrupt userdata by formatting + int rm = std::system("sudo rm -rf /data/*"); + std::system("sudo umount " USERDATA); + int fmt = std::system("yes | sudo mkfs.ext4 " USERDATA); + + if (rm == 0 || fmt == 0) { + std::system("sudo reboot"); } + body->setText("Reset failed. Reboot to try again."); + rebootBtn->show(); } void Reset::confirm() {