2024-02-26 00:26:23 -08:00
|
|
|
#![feature(format_args_nl)]
|
|
|
|
|
2023-06-22 02:23:27 -07:00
|
|
|
use logging::setup_klog;
|
2024-02-27 03:14:26 -08:00
|
|
|
use mount::{is_device_mounted, switch_root};
|
2024-02-26 00:26:23 -08:00
|
|
|
use rootdir::inject_magisk_rc;
|
2023-05-24 19:11:56 -07:00
|
|
|
// Has to be pub so all symbols in that crate is included
|
|
|
|
pub use magiskpolicy;
|
2022-07-05 21:13:09 -07:00
|
|
|
|
|
|
|
mod logging;
|
2024-02-27 03:14:26 -08:00
|
|
|
mod mount;
|
2024-02-26 00:26:23 -08:00
|
|
|
mod rootdir;
|
2022-07-05 21:13:09 -07:00
|
|
|
|
2023-05-23 21:50:13 -07:00
|
|
|
#[cxx::bridge]
|
|
|
|
pub mod ffi {
|
|
|
|
#[namespace = "rust"]
|
2022-07-05 21:13:09 -07:00
|
|
|
extern "Rust" {
|
|
|
|
fn setup_klog();
|
2024-02-26 00:26:23 -08:00
|
|
|
fn inject_magisk_rc(fd: i32, tmp_dir: Utf8CStrRef);
|
2024-02-27 03:14:26 -08:00
|
|
|
fn switch_root(path: Utf8CStrRef);
|
|
|
|
fn is_device_mounted(dev: u64, mnt_point: &mut Vec<u8>) -> bool;
|
2024-02-26 00:26:23 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
unsafe extern "C++" {
|
|
|
|
include!("../base/include/base.hpp");
|
|
|
|
|
|
|
|
#[namespace = "rust"]
|
|
|
|
#[cxx_name = "Utf8CStr"]
|
|
|
|
type Utf8CStrRef<'a> = base::ffi::Utf8CStrRef<'a>;
|
2022-07-05 21:13:09 -07:00
|
|
|
}
|
|
|
|
}
|