Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f894b96a authored by Tim Murray's avatar Tim Murray
Browse files

Restrict pmsg use to eng builds.

bug 30375418

Change-Id: I50c6c74a2373593495cf6a3b94b31f9a865c950c
parent 0c28557e
Loading
Loading
Loading
Loading
+21 −2
Original line number Original line Diff line number Diff line
@@ -31,6 +31,8 @@
#include <private/android_filesystem_config.h>
#include <private/android_filesystem_config.h>
#include <private/android_logger.h>
#include <private/android_logger.h>


#include <sys/system_properties.h>

#include "config_write.h"
#include "config_write.h"
#include "log_portability.h"
#include "log_portability.h"
#include "logger.h"
#include "logger.h"
@@ -51,8 +53,25 @@ LIBLOG_HIDDEN struct android_log_transport_write pmsgLoggerWrite = {
    .write = pmsgWrite,
    .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()
static int pmsgOpen()
{
{
    pmsgShouldUse = pmsgIsEng();
    if (pmsgLoggerWrite.context.fd < 0) {
    if (pmsgLoggerWrite.context.fd < 0) {
        pmsgLoggerWrite.context.fd = TEMP_FAILURE_RETRY(open("/dev/pmsg0", O_WRONLY | O_CLOEXEC));
        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) &&
    if ((logId != LOG_ID_SECURITY) &&
            (logId != LOG_ID_EVENTS) &&
            (logId != LOG_ID_EVENTS) &&
            !__android_log_is_debuggable()) {
            (!pmsgShouldUse || !__android_log_is_debuggable())) {
        return -EINVAL;
        return -EINVAL;
    }
    }
    if (pmsgLoggerWrite.context.fd < 0) {
    if (pmsgLoggerWrite.context.fd < 0) {
@@ -105,7 +124,7 @@ static int pmsgWrite(log_id_t logId, struct timespec *ts,
    size_t i, payloadSize;
    size_t i, payloadSize;
    ssize_t ret;
    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) {
        if (vec[0].iov_len < 4) {
            return -EINVAL;
            return -EINVAL;
        }
        }