Log a copy of recovery log to kernel logs

Currently, recovery logs are only saved to /tmp/recovery.log . That's
bad, because /tmp/recovery.log would not be available after reboot. To
help debugging recovery issues, log a copy to kernel log, which will be
saved in pstore after device reboots.

Bug: 228893064
Change-Id: I0f97b402726ecabe644f3ff5182f71bd16d0b111
This commit is contained in:
Kelvin Zhang 2022-04-20 14:51:30 -07:00
parent 5887c94640
commit 3d0d9c35f6

View file

@ -73,12 +73,12 @@ static bool IsDeviceUnlocked() {
return "orange" == android::base::GetProperty("ro.boot.verifiedbootstate", ""); return "orange" == android::base::GetProperty("ro.boot.verifiedbootstate", "");
} }
static void UiLogger(android::base::LogId /* id */, android::base::LogSeverity severity, static void UiLogger(android::base::LogId log_buffer_id, android::base::LogSeverity severity,
const char* /* tag */, const char* /* file */, unsigned int /* line */, const char* tag, const char* file, unsigned int line, const char* message) {
const char* message) { android::base::KernelLogger(log_buffer_id, severity, tag, file, line, message);
static constexpr char log_characters[] = "VDIWEF"; static constexpr auto&& log_characters = "VDIWEF";
if (severity >= android::base::ERROR && ui != nullptr) { if (severity >= android::base::ERROR && ui != nullptr) {
ui->Print("E:%s\n", message); ui->Print("ERROR: %10s: %s\n", tag, message);
} else { } else {
fprintf(stdout, "%c:%s\n", log_characters[severity], message); fprintf(stdout, "%c:%s\n", log_characters[severity], message);
} }