You've already forked Magisk
mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-09-06 06:36:58 +00:00
Move all logging into Rust
This commit is contained in:
@@ -1 +1,11 @@
|
||||
pub use base;
|
||||
pub use logging::*;
|
||||
|
||||
mod logging;
|
||||
|
||||
#[cxx::bridge(namespace = "rust")]
|
||||
pub mod ffi2 {
|
||||
extern "Rust" {
|
||||
fn setup_klog();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
use std::fmt::Arguments;
|
||||
use base::*;
|
||||
|
||||
extern "C" {
|
||||
fn klog_write(msg: *const u8, len: i32);
|
||||
}
|
||||
|
||||
pub fn setup_klog() {
|
||||
fn klog_impl(args: Arguments) {
|
||||
const PREFIX: &[u8; 12] = b"magiskinit: ";
|
||||
const PFX_LEN: usize = PREFIX.len();
|
||||
|
||||
let mut buf: [u8; 4096] = [0; 4096];
|
||||
buf[..PFX_LEN].copy_from_slice(PREFIX);
|
||||
let len = fmt_to_buf(&mut buf[PFX_LEN..], args) + PFX_LEN;
|
||||
unsafe {
|
||||
klog_write(buf.as_ptr(), len as i32);
|
||||
}
|
||||
}
|
||||
|
||||
let logger = Logger {
|
||||
d: klog_impl,
|
||||
i: klog_impl,
|
||||
w: klog_impl,
|
||||
e: klog_impl,
|
||||
};
|
||||
exit_on_error(false);
|
||||
unsafe {
|
||||
LOGGER = logger;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user