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

Commit 84d61ce3 authored by Ethan Yonker's avatar Ethan Yonker
Browse files

Update TWRP to AOSP 7.1.2

Change-Id: I19c1546efb4182aac62c690e3cc05b04e3a9a32e
parents 6355b56c f1278966
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -652,9 +652,9 @@ ifeq ($(shell test $(PLATFORM_SDK_VERSION) -gt 22; echo $$?),0)
    include $(commands_recovery_local_path)/minadbd/Android.mk \
    include $(commands_recovery_local_path)/minadbd/Android.mk \
        $(commands_recovery_local_path)/minui/Android.mk
        $(commands_recovery_local_path)/minui/Android.mk
else
else
    TARGET_GLOBAL_CFLAGS += -DTW_USE_OLD_MINUI_H
    TARGET_GLOBAL_CFLAGS += -DTW_USE_MINUI_21
    include $(commands_recovery_local_path)/minadbd.old/Android.mk \
    include $(commands_recovery_local_path)/minadbd21/Android.mk \
        $(commands_recovery_local_path)/minui.old/Android.mk
        $(commands_recovery_local_path)/minui21/Android.mk
endif
endif


#includes for TWRP
#includes for TWRP
+22 −0
Original line number Original line Diff line number Diff line
@@ -44,4 +44,26 @@ enum CauseCode {
    kVendorFailure = 200
    kVendorFailure = 200
};
};


enum UncryptErrorCode {
    kUncryptNoError = -1,
    kUncryptErrorPlaceholder = 50,
    kUncryptTimeoutError = 100,
    kUncryptFileRemoveError,
    kUncryptFileOpenError,
    kUncryptSocketOpenError,
    kUncryptSocketWriteError,
    kUncryptSocketListenError,
    kUncryptSocketAcceptError,
    kUncryptFstabReadError,
    kUncryptFileStatError,
    kUncryptBlockOpenError,
    kUncryptIoctlError,
    kUncryptReadError,
    kUncryptWriteError,
    kUncryptFileSyncError,
    kUncryptFileCloseError,
    kUncryptFileRenameError,
    kUncryptPackageMissingError,
};

#endif
#endif
+41 −19
Original line number Original line Diff line number Diff line
@@ -30,6 +30,7 @@
#include <string>
#include <string>
#include <vector>
#include <vector>


#include <android-base/file.h>
#include <android-base/parseint.h>
#include <android-base/parseint.h>
#include <android-base/stringprintf.h>
#include <android-base/stringprintf.h>
#include <android-base/strings.h>
#include <android-base/strings.h>
@@ -54,6 +55,7 @@ static constexpr const char* AB_OTA_PAYLOAD_PROPERTIES = "payload_properties.txt
static constexpr const char* AB_OTA_PAYLOAD = "payload.bin";
static constexpr const char* AB_OTA_PAYLOAD = "payload.bin";
#define PUBLIC_KEYS_FILE "/res/keys"
#define PUBLIC_KEYS_FILE "/res/keys"
static constexpr const char* METADATA_PATH = "META-INF/com/android/metadata";
static constexpr const char* METADATA_PATH = "META-INF/com/android/metadata";
static constexpr const char* UNCRYPT_STATUS = "/cache/recovery/uncrypt_status";


// Default allocation of progress bar segments to operations
// Default allocation of progress bar segments to operations
static const int VERIFICATION_PROGRESS_TIME = 60;
static const int VERIFICATION_PROGRESS_TIME = 60;
@@ -371,6 +373,14 @@ try_update_binary(const char* path, ZipArchive* zip, bool* wipe_cache,
    }
    }


    pid_t pid = fork();
    pid_t pid = fork();

    if (pid == -1) {
        close(pipefd[0]);
        close(pipefd[1]);
        LOGE("Failed to fork update binary: %s\n", strerror(errno));
        return INSTALL_ERROR;
    }

    if (pid == 0) {
    if (pid == 0) {
        umask(022);
        umask(022);
        close(pipefd[0]);
        close(pipefd[0]);
@@ -511,13 +521,6 @@ install_package(const char* path, bool* wipe_cache, const char* install_file,
    modified_flash = true;
    modified_flash = true;
    auto start = std::chrono::system_clock::now();
    auto start = std::chrono::system_clock::now();


    FILE* install_log = fopen_path(install_file, "w");
    if (install_log) {
        fputs(path, install_log);
        fputc('\n', install_log);
    } else {
        LOGE("failed to open last_install: %s\n", strerror(errno));
    }
    int result;
    int result;
    std::vector<std::string> log_buffer;
    std::vector<std::string> log_buffer;
    if (setup_install_mounts() != 0) {
    if (setup_install_mounts() != 0) {
@@ -526,21 +529,40 @@ install_package(const char* path, bool* wipe_cache, const char* install_file,
    } else {
    } else {
        result = really_install_package(path, wipe_cache, needs_mount, log_buffer, retry_count);
        result = really_install_package(path, wipe_cache, needs_mount, log_buffer, retry_count);
    }
    }
    if (install_log != nullptr) {

        fputc(result == INSTALL_SUCCESS ? '1' : '0', install_log);
    // Measure the time spent to apply OTA update in seconds.
        fputc('\n', install_log);
    std::chrono::duration<double> duration = std::chrono::system_clock::now() - start;
    std::chrono::duration<double> duration = std::chrono::system_clock::now() - start;
        int count = static_cast<int>(duration.count());
    int time_total = static_cast<int>(duration.count());
        // Report the time spent to apply OTA update in seconds.
        fprintf(install_log, "time_total: %d\n", count);
        fprintf(install_log, "retry: %d\n", retry_count);


        for (const auto& s : log_buffer) {
    if (ensure_path_mounted(UNCRYPT_STATUS) != 0) {
            fprintf(install_log, "%s\n", s.c_str());
        LOGW("Can't mount %s\n", UNCRYPT_STATUS);
    } else {
        std::string uncrypt_status;
        if (!android::base::ReadFileToString(UNCRYPT_STATUS, &uncrypt_status)) {
            LOGW("failed to read uncrypt status: %s\n", strerror(errno));
        } else if (!android::base::StartsWith(uncrypt_status, "uncrypt_")) {
            LOGW("corrupted uncrypt_status: %s: %s\n", uncrypt_status.c_str(), strerror(errno));
        } else {
            log_buffer.push_back(android::base::Trim(uncrypt_status));
        }
    }
    }


        fclose(install_log);
    // The first two lines need to be the package name and install result.
    std::vector<std::string> log_header = {
        path,
        result == INSTALL_SUCCESS ? "1" : "0",
        "time_total: " + std::to_string(time_total),
        "retry: " + std::to_string(retry_count),
    };
    std::string log_content = android::base::Join(log_header, "\n") + "\n" +
            android::base::Join(log_buffer, "\n");
    if (!android::base::WriteStringToFile(log_content, install_file)) {
        LOGE("failed to write %s: %s\n", install_file, strerror(errno));
    }
    }

    // Write a copy into last_log.
    LOGI("%s\n", log_content.c_str());

    return result;
    return result;
}
}


+0 −0

File moved.

+0 −0

File moved.

Loading