diff options
-rw-r--r-- | bootstat/bootstat.cpp | 18 | ||||
-rw-r--r-- | rootdir/init.rc | 1 |
2 files changed, 17 insertions, 2 deletions
diff --git a/bootstat/bootstat.cpp b/bootstat/bootstat.cpp index 3609127ed..f8eaa1cd3 100644 --- a/bootstat/bootstat.cpp +++ b/bootstat/bootstat.cpp @@ -129,6 +129,7 @@ void SetProperty(const char* key, const char* val) { property_set(key, val); } +constexpr int32_t kEmptyBootReason = 0; constexpr int32_t kUnknownBootReason = 1; // A mapping from boot reason string, as read from the ro.boot.bootreason @@ -136,6 +137,7 @@ constexpr int32_t kUnknownBootReason = 1; // the boot_reason metric may refer to this mapping to discern the histogram // values. const std::map<std::string, int32_t> kBootReasonMap = { + {"empty", kEmptyBootReason}, {"unknown", kUnknownBootReason}, {"normal", 2}, {"recovery", 3}, @@ -221,6 +223,10 @@ int32_t BootReasonStrToEnum(const std::string& boot_reason) { return mapping->second; } + if (boot_reason.empty()) { + return kEmptyBootReason; + } + LOG(INFO) << "Unknown boot reason: " << boot_reason; return kUnknownBootReason; } @@ -752,8 +758,16 @@ void RecordBootComplete() { // property. void RecordBootReason() { const std::string reason(GetProperty(bootloader_reboot_reason_property)); - android::metricslogger::LogMultiAction(android::metricslogger::ACTION_BOOT, - android::metricslogger::FIELD_PLATFORM_REASON, reason); + + if (reason.empty()) { + // Log an empty boot reason value as '<EMPTY>' to ensure the value is intentional + // (and not corruption anywhere else in the reporting pipeline). + android::metricslogger::LogMultiAction(android::metricslogger::ACTION_BOOT, + android::metricslogger::FIELD_PLATFORM_REASON, "<EMPTY>"); + } else { + android::metricslogger::LogMultiAction(android::metricslogger::ACTION_BOOT, + android::metricslogger::FIELD_PLATFORM_REASON, reason); + } // Log the raw bootloader_boot_reason property value. int32_t boot_reason = BootReasonStrToEnum(reason); diff --git a/rootdir/init.rc b/rootdir/init.rc index fb1fbd4f1..d503ffe4f 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -721,6 +721,7 @@ service console /system/bin/sh user shell group shell log readproc seclabel u:r:shell:s0 + setenv HOSTNAME console on property:ro.debuggable=1 # Give writes to anyone for the trace folder on debug builds. |