ksud: fix some module scripts won't add KSU_MODULE environment var#3445
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates ksud’s script execution environment handling so module-related scripts consistently receive the KSU_MODULE environment variable (not just scripts launched through exec_script), enabling module scripts like customize.sh / meta*.sh to use module-scoped commands (e.g., module config operations) without requiring --internal.
Changes:
- Refactors
get_common_script_envs()to accept an optionalmodule_idand injectKSU_MODULEwhen available/valid. - Ensures installer execution (
exec_install_script) propagatesKSU_MODULEby passing the installing module’s id into the common env set. - Updates metamodule script execution to pass a metamodule id into the common env set.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| userspace/ksud/src/module.rs | Refactors common script env generation to optionally include KSU_MODULE, and wires it into install script execution and exec_script(). |
| userspace/ksud/src/metamodule.rs | Adds metamodule id helper and passes an id into common envs for metamodule-run scripts. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
KSU_MODULE environment var will only pass in exec_script, that's cause only stage-scripts, action.sh and uninstall scripts have this environment var So, it cause customize.sh, and meta*.sh won't have this envionment var And module developers will see them can't use ksud module config set command, because ksud throw This command must be run in the context of a module or passed --internal <name> Signed-off-by: AlexLiuDev233 <wzylin11@outlook.com>
db5adeb to
7e57883
Compare
…iann/KernelSU#3445) KSU_MODULE environment var will only pass in exec_script, that's cause only stage-scripts, action.sh and uninstall scripts have this environment var So, it cause customize.sh, and meta*.sh won't have this envionment var And module developers will see them can't use ksud module config set command, because ksud throw `This command must be run in the context of a module or passed --internal <name>` Taking the magic_mount_rs module as an example: before: ``` KSU='true' KSU_KERNEL_VER_CODE='32481' KSU_VER='3.2.4-24-gcc83433b' KSU_VER_CODE='32481' ``` after: ``` KSU='true' KSU_KERNEL_VER_CODE='32481' KSU_MODULE='magic_mount_rs' KSU_VER='3.2.4-24-gcc83433b' KSU_VER_CODE='32481' ``` Signed-off-by: AlexLiuDev233 <wzylin11@outlook.com>
…iann/KernelSU#3445) KSU_MODULE environment var will only pass in exec_script, that's cause only stage-scripts, action.sh and uninstall scripts have this environment var So, it cause customize.sh, and meta*.sh won't have this envionment var And module developers will see them can't use ksud module config set command, because ksud throw `This command must be run in the context of a module or passed --internal <name>` Taking the magic_mount_rs module as an example: before: ``` KSU='true' KSU_KERNEL_VER_CODE='32481' KSU_VER='3.2.4-24-gcc83433b' KSU_VER_CODE='32481' ``` after: ``` KSU='true' KSU_KERNEL_VER_CODE='32481' KSU_MODULE='magic_mount_rs' KSU_VER='3.2.4-24-gcc83433b' KSU_VER_CODE='32481' ``` Signed-off-by: AlexLiuDev233 <wzylin11@outlook.com>
…iann/KernelSU#3445) KSU_MODULE environment var will only pass in exec_script, that's cause only stage-scripts, action.sh and uninstall scripts have this environment var So, it cause customize.sh, and meta*.sh won't have this envionment var And module developers will see them can't use ksud module config set command, because ksud throw `This command must be run in the context of a module or passed --internal <name>` Taking the magic_mount_rs module as an example: before: ``` KSU='true' KSU_KERNEL_VER_CODE='32481' KSU_VER='3.2.4-24-gcc83433b' KSU_VER_CODE='32481' ``` after: ``` KSU='true' KSU_KERNEL_VER_CODE='32481' KSU_MODULE='magic_mount_rs' KSU_VER='3.2.4-24-gcc83433b' KSU_VER_CODE='32481' ``` [cherry-picked from upstream commit tiann/KernelSU@2dc6f1e] Signed-off-by: AlexLiuDev233 <wzylin11@outlook.com>
…iann/KernelSU#3445) KSU_MODULE environment var will only pass in exec_script, that's cause only stage-scripts, action.sh and uninstall scripts have this environment var So, it cause customize.sh, and meta*.sh won't have this envionment var And module developers will see them can't use ksud module config set command, because ksud throw `This command must be run in the context of a module or passed --internal <name>` Taking the magic_mount_rs module as an example: before: ``` KSU='true' KSU_KERNEL_VER_CODE='32481' KSU_VER='3.2.4-24-gcc83433b' KSU_VER_CODE='32481' ``` after: ``` KSU='true' KSU_KERNEL_VER_CODE='32481' KSU_MODULE='magic_mount_rs' KSU_VER='3.2.4-24-gcc83433b' KSU_VER_CODE='32481' ``` Signed-off-by: AlexLiuDev233 <wzylin11@outlook.com>
…iann#3445) KSU_MODULE environment var will only pass in exec_script, that's cause only stage-scripts, action.sh and uninstall scripts have this environment var So, it cause customize.sh, and meta*.sh won't have this envionment var And module developers will see them can't use ksud module config set command, because ksud throw `This command must be run in the context of a module or passed --internal <name>` Taking the magic_mount_rs module as an example: before: ``` KSU='true' KSU_KERNEL_VER_CODE='32481' KSU_VER='3.2.4-24-gcc83433b' KSU_VER_CODE='32481' ``` after: ``` KSU='true' KSU_KERNEL_VER_CODE='32481' KSU_MODULE='magic_mount_rs' KSU_VER='3.2.4-24-gcc83433b' KSU_VER_CODE='32481' ``` Signed-off-by: AlexLiuDev233 <wzylin11@outlook.com>
|
KSU='true' |
4 similar comments
|
KSU='true' |
|
KSU='true' |
|
KSU='true' |
|
KSU='true' |
6ee2f7fd5b3f manager: fix crash in terminal screen (tiann/KernelSU#3474) 01f5b1408ca0 manager: sync translation from Crowdin (#196) 8a13b7e84d70 ci: let crowdin action use custom PAT (#194) 52368fb6b81a ksud: make cargo clippy 4137a56416ec ksud: cleanup f43736f4566a ksud: fix build on not aarch64/x86_64/arm android (#193) 6cf9d65b4a1f manager: refactor and modularize settings UI components dee5e2eba874 kernel: symbol_resolver: resolve symbol suffix starts with '$' 0309ffef8f29 ksud: make cargo clippy happy 3765c0d7dbff ksud: simplify dynamic_manager errors handler and hash parser 62976fbb6f68 manager: fix crash on rapid refresh button clicks (#190) 5f702753cf3d ksud: fix some module scripts won't add KSU_MODULE environment var (tiann/KernelSU#3445) a39b46869fd8 kernel: Prefer hashed .cfi_jt variants before bare symbols (tiann/KernelSU#3475) f6eba76f12df mamager: add KsuFullversion to basic.txt (#189) 7d41ac68c5e3 manager: Add kallsyms in bugreport (tiann/KernelSU#3479) fab88d00ddc6 kernel: handle backport for setprocattr and lsm name(#188) 8f2e7c387282 ci: fix upload mappings (#185) 1a2db2e96ff1 adbroot: support statically-linked GetProperty (tiann/KernelSU#3470) b9d44a338226 kernel: refine symbol_resolver (tiann/KernelSU#3469) c5002f5199d4 ksud: fix vendor_boot patch (#181) b6706363b955 kernel: fix double free when policydb_write failed ddcf5d77c3a1 kernel, ksud, manager: implement selinux_hide feature (#179) 3d790eaaabe9 ksud: su: support parsing arguments after user (tiann/KernelSU#3464) f36096a1c897 kernel: handle backport for policydb b09af429463d kernel: ensure session_keyring install only when CONFIG_KEYS enable 0d096be05c40 docs: Add contributing guidelines to CONTRIBUTING.md (#176) d4513aed447c manager: fix ScalePredictiveBackAnimation's clip & fix background color 51574f260ef8 manager: Restrict blur to Android version >= S f417f72a9d7f manager: custom predictive back animation api & switch to miuix blur 7ac0a90f98f1 manager: remove selinux config & dynamic manager config dialog 1b64087165fc kernel: backport remove_avtab_node for 4.1- cd4e3f1f779b kernel: fix kernel panic when sel_mutex not exported 71b1ae6176dc kernel: pr_alart -> pr_alert 1d822af2b8af kernel: fix klog.h not include 1ccbf7b64146 kernel: impl non-exported selinux lock warning (#175) 99ab70fe9cf7 ci: inital CodeQL check (#172) de9409dc7aed manager: fix HighContrastMode x2 7c8c92f8fbd2 manager: remove force fontSize for LabelText & fix HighContrastMode 2ef5d9d199bf kernel: GFP_ATOMIC -> GFP_KERNEL a7bd8e928da9 kernel: simpler copy policydb implementation 16d2976ed806 manager: fix sort settings are not persistent (#174) f2625dcce3da kernel: use GFP_ATOMIC for remove_avtab_node 47a539401c0c kernel: prune redundant avtab nodes after deny rules (tiann/KernelSU#3439) 185fa768e9c2 manager: fix wrongly alpha for TopBar/BottomBar again 3c969278a56f manager: fix wrongly alpha for TopBar/BottomBar fe387831a28b manager: standalone haze config & high contrast mode & useBackgroundSeedColor config 639e2e36b756 kernel: sync with latest susfs 8bcd0ab35bdf kernel: Replace bunch of if clauses with switch case in ksu_handle_sys_reboot() e767e59543aa manager: Close temp shell after module action (tiann/KernelSU#3438) 542cd2bce96b docs: revive features, compatibility status, add hook mode, fix license badge (#171) d7b47c0d1d26 ci: always do PR checks e274ccf68b37 docs: revive metamodule notice 24bede663d9a kernel: cleanup kernel compat checks 6c094b50ead8 manager: sync translation from Crowdin (#166) 130744ccfc6c kernel: add -dirty endfix on version if has untracked change (#169) aa9b043bac0c kernel: perf opt for throne_tracker & ensure syscalls.h only include in 5.9- 23675f295fa2 Revert "kernel: increase base.apk test performance" 2556a41d06b6 ci: Maximize the optimization of Rust cache (#168) d857f65728fc kernel: increase base.apk test performance cb0000a70e21 kernel: use flags for throne_tracker b16b25040801 ci: Delete gradle build artifacts after repack 7f9e2d4e9c85 ci: let pull request checks always trigger (#167) 1580d3d10797 kernel: fix base.apk mismatch 82d85024e4eb kernel: minor performance opt for install session keyring 74b9b48bc67d manager: bump androidx.compose.foundation:foundation from 1.10.6 to 1.11.0 in /manager in the maven group (#163) f067fdbb675e kernel: use static_key for sucompat if possible 2997fdd849de manager: fix restore-boot failed 10d73d2f1108 build(deps): bump the crates group in /userspace/ksuinit with 2 updates (#162) e269ad3d05c8 build(deps): bump the crates group in /userspace/ksud with 21 updates (#164) edd9f2fde8f7 kernel: lsm_hook: introduce selinux_ops LSM tampering for <4.2 196b75753912 ci: refactor manager type 2a7903624390 ci: Rename to EXPECTED_PR_BUILD_{SIZE|HASH} 4f7b76a40dfc ci: clean up code cb7126948195 ci: sign and upload manager when pr (tiann/KernelSU#3269) 2110e7fe0bea ci: parallel build manager and other components to reduce build time (tiann/KernelSU#3393) a4812466a7d8 kernel: fix include change (tiann/KernelSU#3428) git-subtree-dir: drivers/sukisu git-subtree-split: 6ee2f7fd5b3ff0a936cd39f88c9eacab698afc29
301b313cb7d3 manager: let ConfirmDialog use LazyColumn 6ee2f7fd5b3f manager: fix crash in terminal screen (tiann/KernelSU#3474) 01f5b1408ca0 manager: sync translation from Crowdin (#196) 8a13b7e84d70 ci: let crowdin action use custom PAT (#194) 52368fb6b81a ksud: make cargo clippy 4137a56416ec ksud: cleanup f43736f4566a ksud: fix build on not aarch64/x86_64/arm android (#193) 6cf9d65b4a1f manager: refactor and modularize settings UI components dee5e2eba874 kernel: symbol_resolver: resolve symbol suffix starts with '$' 0309ffef8f29 ksud: make cargo clippy happy 3765c0d7dbff ksud: simplify dynamic_manager errors handler and hash parser 62976fbb6f68 manager: fix crash on rapid refresh button clicks (#190) 5f702753cf3d ksud: fix some module scripts won't add KSU_MODULE environment var (tiann/KernelSU#3445) a39b46869fd8 kernel: Prefer hashed .cfi_jt variants before bare symbols (tiann/KernelSU#3475) f6eba76f12df mamager: add KsuFullversion to basic.txt (#189) 7d41ac68c5e3 manager: Add kallsyms in bugreport (tiann/KernelSU#3479) fab88d00ddc6 kernel: handle backport for setprocattr and lsm name(#188) 8f2e7c387282 ci: fix upload mappings (#185) 1a2db2e96ff1 adbroot: support statically-linked GetProperty (tiann/KernelSU#3470) b9d44a338226 kernel: refine symbol_resolver (tiann/KernelSU#3469) c5002f5199d4 ksud: fix vendor_boot patch (#181) b6706363b955 kernel: fix double free when policydb_write failed ddcf5d77c3a1 kernel, ksud, manager: implement selinux_hide feature (#179) git-subtree-dir: drivers/sukisu git-subtree-split: 301b313cb7d37bb8dfa9d0a827b9a7f779e6ac1c
ad02c6c6b332 ksud: bump deps (#203) 301b313cb7d3 manager: let ConfirmDialog use LazyColumn 6ee2f7fd5b3f manager: fix crash in terminal screen (tiann/KernelSU#3474) 01f5b1408ca0 manager: sync translation from Crowdin (#196) 8a13b7e84d70 ci: let crowdin action use custom PAT (#194) 52368fb6b81a ksud: make cargo clippy 4137a56416ec ksud: cleanup f43736f4566a ksud: fix build on not aarch64/x86_64/arm android (#193) 6cf9d65b4a1f manager: refactor and modularize settings UI components dee5e2eba874 kernel: symbol_resolver: resolve symbol suffix starts with '$' 0309ffef8f29 ksud: make cargo clippy happy 3765c0d7dbff ksud: simplify dynamic_manager errors handler and hash parser 62976fbb6f68 manager: fix crash on rapid refresh button clicks (#190) 5f702753cf3d ksud: fix some module scripts won't add KSU_MODULE environment var (tiann/KernelSU#3445) a39b46869fd8 kernel: Prefer hashed .cfi_jt variants before bare symbols (tiann/KernelSU#3475) f6eba76f12df mamager: add KsuFullversion to basic.txt (#189) 7d41ac68c5e3 manager: Add kallsyms in bugreport (tiann/KernelSU#3479) fab88d00ddc6 kernel: handle backport for setprocattr and lsm name(#188) 8f2e7c387282 ci: fix upload mappings (#185) 1a2db2e96ff1 adbroot: support statically-linked GetProperty (tiann/KernelSU#3470) b9d44a338226 kernel: refine symbol_resolver (tiann/KernelSU#3469) c5002f5199d4 ksud: fix vendor_boot patch (#181) b6706363b955 kernel: fix double free when policydb_write failed ddcf5d77c3a1 kernel, ksud, manager: implement selinux_hide feature (#179) git-subtree-dir: drivers/sukisu git-subtree-split: ad02c6c6b3326dba8e248b0a9b0a74f1a9da5fc4
KSU_MODULE environment var will only pass in exec_script, that's cause only stage-scripts, action.sh and uninstall scripts have this environment var
So, it cause customize.sh, and meta*.sh won't have this envionment var
And module developers will see them can't use ksud module config set command,
because ksud throw
This command must be run in the context of a module or passed --internal <name>Taking the magic_mount_rs module as an example:
before:
after: