From f894b96a9211dcefb83b175720b53a2e49b8e463 Mon Sep 17 00:00:00 2001 From: Tim Murray Date: Mon, 22 Aug 2016 09:13:24 -0700 Subject: [PATCH] Restrict pmsg use to eng builds. bug 30375418 Change-Id: I50c6c74a2373593495cf6a3b94b31f9a865c950c --- liblog/pmsg_writer.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/liblog/pmsg_writer.c b/liblog/pmsg_writer.c index 944febae8..b338dca4c 100644 --- a/liblog/pmsg_writer.c +++ b/liblog/pmsg_writer.c @@ -31,6 +31,8 @@ #include #include +#include + #include "config_write.h" #include "log_portability.h" #include "logger.h" @@ -51,8 +53,25 @@ LIBLOG_HIDDEN struct android_log_transport_write pmsgLoggerWrite = { .write = pmsgWrite, }; +static bool pmsgShouldUse = false; + +// Only use pmsg on eng builds +static bool pmsgIsEng() { + char buf[PROP_VALUE_MAX]; + + if (__system_property_get("ro.build.type", buf) == 0) { + return false; + } + + if (!strncmp(buf, "eng", sizeof("eng"))) { + return true; + } + return false; +} + static int pmsgOpen() { + pmsgShouldUse = pmsgIsEng(); if (pmsgLoggerWrite.context.fd < 0) { pmsgLoggerWrite.context.fd = TEMP_FAILURE_RETRY(open("/dev/pmsg0", O_WRONLY | O_CLOEXEC)); } @@ -75,7 +94,7 @@ static int pmsgAvailable(log_id_t logId) } if ((logId != LOG_ID_SECURITY) && (logId != LOG_ID_EVENTS) && - !__android_log_is_debuggable()) { + (!pmsgShouldUse || !__android_log_is_debuggable())) { return -EINVAL; } if (pmsgLoggerWrite.context.fd < 0) { @@ -105,7 +124,7 @@ static int pmsgWrite(log_id_t logId, struct timespec *ts, size_t i, payloadSize; ssize_t ret; - if ((logId == LOG_ID_EVENTS) && !__android_log_is_debuggable()) { + if ((logId == LOG_ID_EVENTS) && (!pmsgShouldUse || !__android_log_is_debuggable())) { if (vec[0].iov_len < 4) { return -EINVAL; }