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

Commit a3a7a886 authored by Yabin Cui's avatar Yabin Cui Committed by Android (Google) Code Review
Browse files

Merge "init: write bootloader message directly." into nyc-dev

parents 3f283187 46e03798
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@ LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED)

LOCAL_STATIC_LIBRARIES := \
    libinit \
    libbootloader_message_writer \
    libfs_mgr \
    libfec \
    libfec_rs \
+5 −8
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@
#include <android-base/file.h>
#include <android-base/parseint.h>
#include <android-base/stringprintf.h>
#include <bootloader_message_writer.h>
#include <cutils/partition_utils.h>
#include <cutils/android_reboot.h>
#include <logwrap/logwrap.h>
@@ -450,14 +451,10 @@ exit_success:
}

static int wipe_data_via_recovery() {
    mkdir("/cache/recovery", 0700);
    int fd = open("/cache/recovery/command", O_RDWR|O_CREAT|O_TRUNC|O_CLOEXEC, 0600);
    if (fd >= 0) {
        write(fd, "--wipe_data\n", strlen("--wipe_data\n") + 1);
        write(fd, "--reason=wipe_data_via_recovery\n", strlen("--reason=wipe_data_via_recovery\n") + 1);
        close(fd);
    } else {
        ERROR("could not open /cache/recovery/command\n");
    const std::vector<std::string> options = {"--wipe_data", "--reason=wipe_data_via_recovery"};
    std::string err;
    if (!write_bootloader_message(options, &err)) {
        ERROR("failed to set bootloader message: %s", err.c_str());
        return -1;
    }
    android_reboot(ANDROID_RB_RESTART2, 0, "recovery");