diff --git a/userspace/ksud/src/cli.rs b/userspace/ksud/src/cli.rs index 9c8f156c61d5..485ae223577f 100644 --- a/userspace/ksud/src/cli.rs +++ b/userspace/ksud/src/cli.rs @@ -48,6 +48,9 @@ enum Commands { command: Profile, }, + /// Print KernelSU tmpfs path + Path, + /// For developers Debug { #[command(subcommand)] @@ -228,6 +231,10 @@ pub fn run() -> Result<()> { Profile::DeleteTemplate { id } => crate::profile::delete_template(id), Profile::ListTemplates => crate::profile::list_templates(), }, + Commands::Path => { + println!("{}", utils::get_tmp_path()); + Ok(()) + } Commands::Debug { command } => match command { Debug::SetManager { apk } => debug::set_manager(&apk), diff --git a/userspace/ksud/src/defs.rs b/userspace/ksud/src/defs.rs index 5e6e24ba3841..d00c64d4ce9f 100644 --- a/userspace/ksud/src/defs.rs +++ b/userspace/ksud/src/defs.rs @@ -25,7 +25,8 @@ pub const MODULE_UPDATE_TMP_IMG: &str = concatcp!(WORKING_DIR, "update_tmp.img") // warning: this directory should not change, or you need to change the code in module_installer.sh!!! pub const MODULE_UPDATE_TMP_DIR: &str = concatcp!(ADB_DIR, "modules_update/"); -pub const TEMP_DIR: &str = "/debug_ramdisk/"; +pub const TEMP_DIR: &str = "/debug_ramdisk"; +pub const TEMP_DIR_LEGACY: &str = "/sbin"; pub const DISABLE_FILE_NAME: &str = "disable"; pub const UPDATE_FILE_NAME: &str = "update"; diff --git a/userspace/ksud/src/event.rs b/userspace/ksud/src/event.rs index b2106ee66f30..738c64a0a06e 100644 --- a/userspace/ksud/src/event.rs +++ b/userspace/ksud/src/event.rs @@ -179,7 +179,7 @@ pub fn on_post_data_fs() -> Result<()> { } // mount temp dir - if let Err(e) = mount::mount_tmpfs(defs::TEMP_DIR) { + if let Err(e) = mount::mount_tmpfs(utils::get_tmp_path()) { warn!("do temp dir mount failed: {}", e); } diff --git a/userspace/ksud/src/utils.rs b/userspace/ksud/src/utils.rs index 510f0fd9eafd..50b969621ac1 100644 --- a/userspace/ksud/src/utils.rs +++ b/userspace/ksud/src/utils.rs @@ -5,6 +5,8 @@ use std::{ path::Path, }; +use crate::defs; +use std::fs::metadata; #[allow(unused_imports)] use std::fs::{set_permissions, Permissions}; #[cfg(unix)] @@ -163,3 +165,13 @@ pub fn umask(_mask: u32) { pub fn has_magisk() -> bool { which::which("magisk").is_ok() } + +pub fn get_tmp_path() -> &'static str { + if metadata(defs::TEMP_DIR_LEGACY).is_ok() { + return defs::TEMP_DIR_LEGACY; + } + if metadata(defs::TEMP_DIR).is_ok() { + return defs::TEMP_DIR; + } + "" +}