Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 945548ef authored by Elliott Hughes's avatar Elliott Hughes
Browse files

Split WipeData into PreWipeData and PostWipeData.

Bug: http://b/21760064
Change-Id: Idde268fe4d7e27586ca4469de16783f1ffdc5069
parent 3f9db6af
Loading
Loading
Loading
Loading
+10 −7
Original line number Original line Diff line number Diff line
@@ -91,13 +91,16 @@ class Device {
    static const int kHighlightDown = -3;
    static const int kHighlightDown = -3;
    static const int kInvokeItem = -4;
    static const int kInvokeItem = -4;


    // Called when we do a wipe data/factory reset operation (either via a
    // Called before and after we do a wipe data/factory reset operation,
    // reboot from the main system with the --wipe_data flag, or when the
    // either via a reboot from the main system with the --wipe_data flag,
    // user boots into recovery manually and selects the option from the
    // or when the user boots into recovery image manually and selects the
    // menu.)  Can perform whatever device-specific wiping actions are
    // option from the menu, to perform whatever device-specific wiping
    // needed.  Return 0 on success.  The userdata and cache partitions
    // actions are needed.
    // are erased AFTER this returns (whether it returns success or not).
    // Return true on success; returning false from PreWipeData will prevent
    virtual int WipeData() { return 0; }
    // the regular wipe, and returning false from PostWipeData will cause
    // the wipe to be considered a failure.
    virtual bool PreWipeData() { return true; }
    virtual bool PostWipeData() { return true; }


  private:
  private:
    RecoveryUI* ui_;
    RecoveryUI* ui_;
+12 −17
Original line number Original line Diff line number Diff line
@@ -421,8 +421,7 @@ typedef struct _saved_log_file {
    struct _saved_log_file* next;
    struct _saved_log_file* next;
} saved_log_file;
} saved_log_file;


static int
static bool erase_volume(const char* volume) {
erase_volume(const char *volume) {
    bool is_cache = (strcmp(volume, CACHE_ROOT) == 0);
    bool is_cache = (strcmp(volume, CACHE_ROOT) == 0);


    ui->SetBackground(RecoveryUI::ERASING);
    ui->SetBackground(RecoveryUI::ERASING);
@@ -503,7 +502,7 @@ erase_volume(const char *volume) {
        copy_logs();
        copy_logs();
    }
    }


    return result;
    return (result == 0);
}
}


static int
static int
@@ -677,13 +676,13 @@ static bool wipe_data(int should_confirm, Device* device) {
    modified_flash = true;
    modified_flash = true;


    ui->Print("\n-- Wiping data...\n");
    ui->Print("\n-- Wiping data...\n");
    if (device->WipeData() == 0 && erase_volume("/data") == 0 && erase_volume("/cache") == 0) {
    bool success =
        ui->Print("Data wipe complete.\n");
        device->PreWipeData() &&
        return true;
        erase_volume("/data") &&
    } else {
        erase_volume("/cache") &&
        ui->Print("Data wipe failed.\n");
        device->PostWipeData();
        return false;
    ui->Print("Data wipe %s.\n", success ? "complete" : "failed");
    }
    return success;
}
}


// Return true on success.
// Return true on success.
@@ -695,13 +694,9 @@ static bool wipe_cache(bool should_confirm, Device* device) {
    modified_flash = true;
    modified_flash = true;


    ui->Print("\n-- Wiping cache...\n");
    ui->Print("\n-- Wiping cache...\n");
    if (erase_volume("/cache") == 0) {
    bool success = erase_volume("/cache");
        ui->Print("Cache wipe complete.\n");
    ui->Print("Cache wipe %s.\n", success ? "complete" : "failed");
        return true;
    return success;
    } else {
        ui->Print("Cache wipe failed.\n");
        return false;
    }
}
}


static void choose_recovery_file(Device* device) {
static void choose_recovery_file(Device* device) {