Open /dev/kmsg in Android

In Android, ordinary processes don't have privilege to open /dev/kmsg.
That has been done by letting init open it (via `file /dev/kmsg w`) and
share the file descriptor with the forked process. The file descriptor
number is passed via an environment variable.

Implement the procedure.

Bug: 189805435
Test: m
Change-Id: I8e39c9bd506fdc9d37a7fb5cd2b14e7d4a5074b7
2 files changed
tree: fceed0bba090b63f5735ecf91ac474c30841d9ea
  1. patches/
  2. src/
  3. Android.bp
  4. Cargo.toml
  5. LICENSE
  6. METADATA
  7. MODULE_LICENSE_MIT
  8. OWNERS
  9. README.md
README.md

Kernel logger for Rust

Logger implementation for low level kernel log (using /dev/kmsg)

Usually intended for low level implementations, like systemd generators, which have to use /dev/kmsg:

Since syslog is not available (see above) write log messages to /dev/kmsg instead.

Full documentation.

Usage

[dependencies]
log = "0.4"
kernlog = "0.3"
#[macro_use]
extern crate log;
extern crate kernlog;

fn main() {
    kernlog::init().unwrap();
    warn!("something strange happened");
}

Note you have to have permissions to write to /dev/kmsg, which normal users (not root) usually don't.