diff options
Diffstat (limited to 'recovery.cpp')
-rw-r--r-- | recovery.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/recovery.cpp b/recovery.cpp index d3f9c47ae..a076f1e37 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -1434,15 +1434,18 @@ static bool bootreason_in_blacklist() { } static void log_failure_code(ErrorCode code, const char *update_package) { - FILE* install_log = fopen_path(TEMPORARY_INSTALL_FILE, "w"); - if (install_log != nullptr) { - fprintf(install_log, "%s\n", update_package); - fprintf(install_log, "0\n"); - fprintf(install_log, "error: %d\n", code); - fclose(install_log); - } else { - PLOG(ERROR) << "failed to open last_install"; + std::vector<std::string> log_buffer = { + update_package, + "0", // install result + "error: " + std::to_string(code), + }; + std::string log_content = android::base::Join(log_buffer, "\n"); + if (!android::base::WriteStringToFile(log_content, TEMPORARY_INSTALL_FILE)) { + PLOG(ERROR) << "failed to write " << TEMPORARY_INSTALL_FILE; } + + // Also write the info into last_log. + LOG(INFO) << log_content; } static ssize_t logbasename( |