Magisk/native/src/init/rootdir.rs

37 lines
764 B
Rust
Raw Normal View History

use std::fs::File;
use std::io::Write;
use std::mem;
use std::os::fd::{FromRawFd, RawFd};
use base::{debug, Utf8CStr};
pub fn inject_magisk_rc(fd: RawFd, tmp_dir: &Utf8CStr) {
debug!("Injecting magisk rc");
let mut file = unsafe { File::from_raw_fd(fd) };
write!(
file,
r#"
on post-fs-data
2024-03-03 15:15:42 +08:00
exec {0} 0 0 -- {1}/magisk --post-fs-data
on property:vold.decrypt=trigger_restart_framework
2024-03-03 15:15:42 +08:00
exec {0} 0 0 -- {1}/magisk --service
on nonencrypted
2024-03-03 15:15:42 +08:00
exec {0} 0 0 -- {1}/magisk --service
on property:sys.boot_completed=1
2024-03-03 15:15:42 +08:00
exec {0} 0 0 -- {1}/magisk --boot-complete
on property:init.svc.zygote=stopped
2024-03-03 15:15:42 +08:00
exec {0} 0 0 -- {1}/magisk --zygote-restart
"#,
2024-03-03 15:15:42 +08:00
"u:r:magisk:s0", tmp_dir
)
.ok();
mem::forget(file)
}