diff --git a/userspace/ksud/src/boot_patch.rs b/userspace/ksud/src/boot_patch.rs index f8fa6a9d..7c135779 100644 --- a/userspace/ksud/src/boot_patch.rs +++ b/userspace/ksud/src/boot_patch.rs @@ -69,9 +69,13 @@ fn parse_kmi_from_uname() -> Result { #[cfg(target_os = "android")] fn parse_kmi_from_modules() -> Result { use std::io::BufRead; - let output = Command::new("modinfo") - .arg("/vendor/lib/modules/fips140.ko") - .output()?; + // find a *.ko in /vendor/lib/modules + let modfile = std::fs::read_dir("/vendor/lib/modules")? + .filter_map(Result::ok) + .find(|entry| entry.path().extension().map_or(false, |ext| ext == "ko")) + .map(|entry| entry.path()) + .ok_or_else(|| anyhow!("No kernel module found"))?; + let output = Command::new("modinfo").arg(modfile).output()?; for line in output.stdout.lines().map_while(Result::ok) { if line.starts_with("vermagic") { return parse_kmi(&line);