2024-02-26 00:26:23 -08:00
|
|
|
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
|
2024-02-26 00:26:23 -08:00
|
|
|
|
|
|
|
on property:vold.decrypt=trigger_restart_framework
|
2024-03-03 15:15:42 +08:00
|
|
|
exec {0} 0 0 -- {1}/magisk --service
|
2024-02-26 00:26:23 -08:00
|
|
|
|
|
|
|
on nonencrypted
|
2024-03-03 15:15:42 +08:00
|
|
|
exec {0} 0 0 -- {1}/magisk --service
|
2024-02-26 00:26:23 -08:00
|
|
|
|
|
|
|
on property:sys.boot_completed=1
|
2024-03-03 15:15:42 +08:00
|
|
|
exec {0} 0 0 -- {1}/magisk --boot-complete
|
2024-02-26 00:26:23 -08:00
|
|
|
|
|
|
|
on property:init.svc.zygote=stopped
|
2024-03-03 15:15:42 +08:00
|
|
|
exec {0} 0 0 -- {1}/magisk --zygote-restart
|
2024-02-26 00:26:23 -08:00
|
|
|
"#,
|
2024-03-03 15:15:42 +08:00
|
|
|
"u:r:magisk:s0", tmp_dir
|
2024-02-26 00:26:23 -08:00
|
|
|
)
|
|
|
|
.ok();
|
|
|
|
|
|
|
|
mem::forget(file)
|
|
|
|
}
|