Loading base/logging.cpp +19 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ #endif #include <android-base/macros.h> #include <android-base/parseint.h> #include <android-base/strings.h> #include <android-base/threads.h> Loading Loading @@ -82,6 +83,23 @@ const char* getprogname() { return progname; } #endif #if defined(__linux__) int OpenKmsg() { #if defined(__ANDROID__) // pick up 'file w /dev/kmsg' environment from daemon's init rc file const auto val = getenv("ANDROID_FILE__dev_kmsg"); if (val != nullptr) { int fd; if (android::base::ParseInt(val, &fd, 0)) { auto flags = fcntl(fd, F_GETFL); if ((flags != -1) && ((flags & O_ACCMODE) == O_WRONLY)) return fd; } } #endif return TEMP_FAILURE_RETRY(open("/dev/kmsg", O_WRONLY | O_CLOEXEC)); } #endif } // namespace namespace android { Loading Loading @@ -150,7 +168,7 @@ void KernelLogger(android::base::LogId, android::base::LogSeverity severity, static_assert(arraysize(kLogSeverityToKernelLogLevel) == android::base::FATAL + 1, "Mismatch in size of kLogSeverityToKernelLogLevel and values in LogSeverity"); static int klog_fd = TEMP_FAILURE_RETRY(open("/dev/kmsg", O_WRONLY | O_CLOEXEC)); static int klog_fd = OpenKmsg(); if (klog_fd == -1) return; int level = kLogSeverityToKernelLogLevel[severity]; Loading Loading
base/logging.cpp +19 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ #endif #include <android-base/macros.h> #include <android-base/parseint.h> #include <android-base/strings.h> #include <android-base/threads.h> Loading Loading @@ -82,6 +83,23 @@ const char* getprogname() { return progname; } #endif #if defined(__linux__) int OpenKmsg() { #if defined(__ANDROID__) // pick up 'file w /dev/kmsg' environment from daemon's init rc file const auto val = getenv("ANDROID_FILE__dev_kmsg"); if (val != nullptr) { int fd; if (android::base::ParseInt(val, &fd, 0)) { auto flags = fcntl(fd, F_GETFL); if ((flags != -1) && ((flags & O_ACCMODE) == O_WRONLY)) return fd; } } #endif return TEMP_FAILURE_RETRY(open("/dev/kmsg", O_WRONLY | O_CLOEXEC)); } #endif } // namespace namespace android { Loading Loading @@ -150,7 +168,7 @@ void KernelLogger(android::base::LogId, android::base::LogSeverity severity, static_assert(arraysize(kLogSeverityToKernelLogLevel) == android::base::FATAL + 1, "Mismatch in size of kLogSeverityToKernelLogLevel and values in LogSeverity"); static int klog_fd = TEMP_FAILURE_RETRY(open("/dev/kmsg", O_WRONLY | O_CLOEXEC)); static int klog_fd = OpenKmsg(); if (klog_fd == -1) return; int level = kLogSeverityToKernelLogLevel[severity]; Loading