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

Commit 6d232ab4 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Fix early init logging."

parents 47b077a4 35f5d046
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -118,7 +118,7 @@ void Action::ExecuteCommand(const Command& command) const {
    Timer t;
    int result = command.InvokeFunc();

    if (klog_get_level() >= KLOG_INFO_LEVEL) {
    if (klog_get_level() >= KLOG_DEBUG_LEVEL) {
        std::string trigger_name = BuildTriggersString();
        std::string cmd_str = command.BuildCommandString();
        std::string source = command.BuildSourceString();
+5 −4
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@
#include <sys/mount.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/sysmacros.h>
#include <sys/types.h>
#include <sys/un.h>
#include <sys/wait.h>
@@ -487,12 +488,11 @@ int main(int argc, char** argv) {
        mount("proc", "/proc", "proc", 0, "hidepid=2,gid=" MAKE_STR(AID_READPROC));
        mount("sysfs", "/sys", "sysfs", 0, NULL);
        mount("selinuxfs", "/sys/fs/selinux", "selinuxfs", 0, NULL);
        mknod("/dev/kmsg", S_IFCHR | 0600, makedev(1, 11));
    }

    // We must have some place other than / to create the device nodes for
    // kmsg and null, otherwise we won't be able to remount / read-only
    // later on. Now that tmpfs is mounted on /dev, we can actually talk
    // to the outside world.
    // Now that tmpfs is mounted on /dev and we have /dev/kmsg, we can actually
    // talk to the outside world...
    InitKernelLogging(argv);

    LOG(INFO) << "init " << (is_first_stage ? "first stage" : "second stage") << " started!";
@@ -536,6 +536,7 @@ int main(int argc, char** argv) {
    // This must happen before /dev is populated by ueventd.
    LOG(INFO) << "Running restorecon...";
    restorecon("/dev");
    restorecon("/dev/kmsg");
    restorecon("/dev/socket");
    restorecon("/dev/__properties__");
    restorecon("/property_contexts");
+7 −3
Original line number Diff line number Diff line
@@ -26,8 +26,12 @@
#include <selinux/selinux.h>

static const int kLogSeverityToKLogLevel[] = {
    KLOG_NOTICE_LEVEL, KLOG_DEBUG_LEVEL, KLOG_INFO_LEVEL,
    KLOG_WARNING_LEVEL, KLOG_ERROR_LEVEL, KLOG_ERROR_LEVEL,
    [android::base::VERBOSE] = KLOG_DEBUG_LEVEL,
    [android::base::DEBUG] = KLOG_DEBUG_LEVEL,
    [android::base::INFO] = KLOG_INFO_LEVEL,
    [android::base::WARNING] = KLOG_WARNING_LEVEL,
    [android::base::ERROR] = KLOG_ERROR_LEVEL,
    [android::base::FATAL] = KLOG_ERROR_LEVEL,
};
static_assert(arraysize(kLogSeverityToKLogLevel) == android::base::FATAL + 1,
              "Mismatch in size of kLogSeverityToKLogLevel and values in LogSeverity");
@@ -68,7 +72,7 @@ void InitKernelLogging(char* argv[]) {
    if (fd > 2) close(fd);

    android::base::InitLogging(argv, &KernelLogger);
    klog_set_level(KLOG_NOTICE_LEVEL);
    klog_set_level(KLOG_INFO_LEVEL);
}

int selinux_klog_callback(int type, const char *fmt, ...) {
+1 −9
Original line number Diff line number Diff line
@@ -37,15 +37,7 @@ void klog_set_level(int level) {
}

static int __open_klog(void) {
    int fd = open("/dev/kmsg", O_WRONLY | O_CLOEXEC);
    if (fd == -1) {
        static const char* name = "/dev/__kmsg__";
        if (mknod(name, S_IFCHR | 0600, (1 << 8) | 11) == 0) {
            fd = open(name, O_WRONLY | O_CLOEXEC);
            unlink(name);
        }
    }
    return fd;
    return TEMP_FAILURE_RETRY(open("/dev/kmsg", O_WRONLY | O_CLOEXEC));
}

#define LOG_BUF_MAX 512