ksud: support common & module boot-completed.sh

This commit is contained in:
weishu
2023-07-31 19:50:53 +08:00
parent d0b8144b96
commit e95c5a9675
2 changed files with 19 additions and 12 deletions

View File

@@ -195,25 +195,29 @@ pub fn on_post_data_fs() -> Result<()> {
Ok(())
}
pub fn on_services() -> Result<()> {
fn run_stage(stage: &str) {
utils::umask(0);
if utils::has_magisk() {
warn!("Magisk detected, skip services!");
return Ok(());
warn!("Magisk detected, skip {stage}");
return;
}
if crate::utils::is_safe_mode() {
warn!("safe mode, skip service.d scripts");
return Ok(());
warn!("safe mode, skip {stage} scripts");
return;
}
if let Err(e) = crate::module::exec_common_scripts("service.d", false) {
warn!("Failed to exec common service scripts: {}", e);
if let Err(e) = crate::module::exec_common_scripts(&format!("{stage}.d"), false) {
warn!("Failed to exec common {stage} scripts: {e}");
}
if let Err(e) = crate::module::exec_services() {
warn!("Failed to exec service scripts: {}", e);
if let Err(e) = crate::module::exec_stage_scripts(stage) {
warn!("Failed to exec {stage} scripts: {e}");
}
}
pub fn on_services() -> Result<()> {
run_stage("service");
Ok(())
}
@@ -232,6 +236,9 @@ pub fn on_boot_completed() -> Result<()> {
std::fs::remove_file(module_update_img).with_context(|| "Failed to remove image!")?;
}
}
run_stage("boot-completed");
Ok(())
}

View File

@@ -276,10 +276,10 @@ pub fn exec_common_scripts(dir: &str, wait: bool) -> Result<()> {
Ok(())
}
/// execute every modules' service.sh
pub fn exec_services() -> Result<()> {
/// execute every modules' [stage].sh (service.sh, boot-completed.sh)
pub fn exec_stage_scripts(stage: &str) -> Result<()> {
foreach_active_module(|module| {
let service = module.join("service.sh");
let service = module.join(format!("{stage}.sh"));
if !service.exists() {
return Ok(());
}