ShirkNeko
4a215511aa
kernel: refactor SUSFS feature status retrieval for improved readability and maintainability
2025-06-20 04:08:04 +08:00
ShirkNeko
8283b5597d
kernel: swap CONFIG_KSU_SUSFS_SUS_SU and CONFIG_KSU_SUSFS_HAS_MAGIC_MOUNT feature flags
2025-06-20 01:32:49 +08:00
rsuntk
103217755b
kernel: allow GKI kprobes to use LSM hook for ksu_handle_devpts
...
* Also minor changes on comments
Signed-off-by: rsuntk <rsuntk@yukiprjkt.my.id >
2025-06-20 00:30:15 +08:00
backslashxx
aa80661186
kernel: intercept devpts via security_inode_permission LSM
...
* This changes:
+ Avoid conflicts with other devpts hooks.
+ We keep pts_unix98_pre for KPROBES for simplifying things.
Signed-off-by: backslashxx <118538522+backslashxx@users.noreply.github.com >
Signed-off-by: rsuntk <rsuntk@yukiprjkt.my.id >
2025-06-19 18:26:15 +08:00
ShirkNeko
bce28cc3ca
kernel: add CMD_GET_SUSFS_FEATURE_STATUS command to get the correct functional state of SUSFS
2025-06-16 20:17:11 +08:00
古塵
20fa0a4a62
kernel: core_hook: Fix and complete try_umount renaming and usage ( #165 )
...
Fixed function definition and restored missing ksu_try_umount calls that were unintentionally removed in previous commits. This includes unmounts for:
- /debug_ramdisk
- /sbin
- /system/etc/hosts
- /apex/com.android.art/bin/dex2oat64
- /apex/com.android.art/bin/dex2oat32
Fixes: b443b11df9 ("kernel: Refactoring the mount point unloading logic")
Fixes: da7632470d ("kernel: 使用 try_umount 替换 ksu_try_umount 以统一卸载逻辑")
Signed-off-by: schqiushui <orochi9999@gmail.com >
2025-06-14 02:42:21 +08:00
ShirkNeko
15d1253d64
kernel: 使用 try_umount 替换 ksu_try_umount 以统一卸载逻辑
2025-06-13 19:50:53 +08:00
ShirkNeko
36cca65af3
kernel: Add CMD_HOOK_TYPE handling to core_hook.c to support state lookups for manual hooks
...
Co-authored-by: ShirkNeko <109797057+ShirkNeko@users.noreply.github.com >
Co-authored-by: rifsxd <rifat.44.azad.rifs@gmail.com >
Signed-off-by: ShirkNeko <109797057+ShirkNeko@users.noreply.github.com >
2025-06-13 15:42:34 +08:00
ShirkNeko
a873411a07
kernel: Bump SuSFS version to v1.5.8
2025-06-13 02:18:29 +08:00
rsuntk
ff328ed65a
kernel: mayfix freeze and reboot issue.
...
* When ksys_umount/sys_umount/path_umount were called,
we shouldn't call path_put again.
References:
https://elixir.bootlin.com/linux/v4.19.325/source/fs/namespace.c#L1671
https://elixir.bootlin.com/linux/v5.15.185/source/fs/namespace.c#L1759
Reported-by: NVG-064 <aryslow92@gmail.com >
Signed-off-by: rsuntk <rsuntk@yukiprjkt.my.id >
2025-06-12 18:24:15 +08:00
rsuntk
f709b0c232
[skip ci] kernel: core_hook: add missing path_put
...
[ 101.572296] CPU: 0 PID: 8674 Comm: main Tainted: G WC OE 5.15.148-Ghost@NVG-064-gce02b349fb2b #1
[ 101.572305] Hardware name: Qualcomm Technologies, Inc. KHAJE IDP nopmi topaz (DT)
[ 101.572309] pstate: 20400005 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 101.572315] pc : mntput_no_expire+0x25c/0x300
[ 101.572328] lr : mntput_no_expire+0x134/0x300
[ 101.572334] sp : ffffffc01d163c10
[ 101.572336] x29: ffffffc01d163c30 x28: ffffffdb2c74bff0 x27: 0000000000000000
[ 101.572345] x26: ffffff806cf11200 x25: ffffff806cf11200 x24: ffffffdb2db93000
[ 101.572353] x23: ffffff807df66da0 x22: ffffff807df66d80 x21: ffffff807df66d80
[ 101.572361] x20: ffffffdb2db89380 x19: ffffff806cf11200 x18: ffffffc013aad068
[ 101.572369] x17: 0000000000000001 x16: ffffffa6c928b000 x15: 0000000000000000
[ 101.572378] x14: 0000000000000020 x13: ffffffdb2db9f860 x12: 0000000000000020
[ 101.572385] x11: ffffffffffffffff x10: 00000000000000ff x9 : 0000000000000008
[ 101.572393] x8 : ffffff807df66d80 x7 : 61705f75736b203a x6 : 55536c656e72654b
[ 101.572401] x5 : ffffffdb2de14332 x4 : ffffff81f6c435c1 x3 : 0000000000000000
[ 101.572409] x2 : 0000000200000000 x1 : 0000000000000000 x0 : 00000000ffffffff
[ 101.572418] Call trace:
[ 101.572422] mntput_no_expire+0x25c/0x300
[ 101.572431] path_put+0x3c/0x58
[ 101.572438] ksu_try_umount+0x14c/0x174
[ 101.572445] susfs_try_umount_all+0x6c/0x190
[ 101.572450] ksu_handle_setuid+0x20c/0x320
[ 101.572454] ksu_task_fix_setuid+0x18/0x2c
[ 101.572459] __sys_setresuid+0x1e0/0x3dc
[ 101.572466] __arm64_sys_setresuid+0x28/0x38
[ 101.572472] invoke_syscall+0x64/0x154
[ 101.572479] el0_svc_common+0x90/0xf4
[ 101.572484] do_el0_svc+0x2c/0x9c
[ 101.572489] el0_svc+0x28/0x60
[ 101.572496] el0t_64_sync_handler+0xd4/0xf0
[ 101.572501] el0t_64_sync+0x1b8/0x1bc
[ 101.572508] ---[ end trace b57c69edb246930f ]---
[ 101.572626] ------------[ cut here ]------------
Suggested-by: backslashxx <118538522+backslashxx@users.noreply.github.com >
Signed-off-by: rsuntk <rsuntk@yukiprjkt.my.id >
2025-06-12 18:24:05 +08:00
backslashxx
70b4551936
kernel: core_hook: fix missed path_put
...
make sure to path_put() on all codepaths after kern_path() success
Signed-off-by: backslashxx <118538522+backslashxx@users.noreply.github.com >
Signed-off-by: rsuntk <90097027+rsuntk@users.noreply.github.com >
2025-06-12 18:23:36 +08:00
backslashxx
1726d0da58
kernel: core_hook: refactor escape_to_root
...
- Remove BUG_ON, bail out when failed
- Add put_cred
Signed-off-by: rsuntk <rissu.ntk@gmail.com >
2025-06-12 18:22:58 +08:00
ShirkNeko
b443b11df9
kernel: Refactoring the mount point unloading logic
2025-06-12 18:17:52 +08:00
rsuntk
9cbfe80640
[skip ci] kernel: minor changes on ksu_sys_umount
...
* Simplify value for 'ret', adding some comments
Signed-off-by: rsuntk <rsuntk@yukiprjkt.my.id >
2025-06-12 15:24:54 +08:00
ShirkNeko
788e4c2f2f
kernel: refactor umount functions for improved logging and clarity
...
Co-authored-by: rsuntk <rsuntk@yukiprjkt.my.id >
Signed-off-by: ShirkNeko <109797057+ShirkNeko@users.noreply.github.com >
2025-05-27 15:21:42 +08:00
rsuntk
61e3a9bcf2
kernel: fix ksu_sys_umount compatibility
...
* Some people reports about undefined reference to `sys_umount`
* Since ksys_umount exist on Linux 4.17-rc1, then we gonna use that one.
Rev 2: Use correct int instead of long for ksys_umount
Signed-off-by: rsuntk <90097027+rsuntk@users.noreply.github.com >
2025-05-27 01:13:54 +08:00
rsuntk
1ce706823e
kernel: guard nuke_ext4_sysfs
...
Rather than using depends on / select,
i just prefer this way, although, yes, it is
an ifdef hell.
Signed-off-by: rsuntk <rsuntk@yukiprjkt.my.id >
2025-05-24 15:03:24 +08:00
rsuntk
84a0ab78fb
kernel: make path_umount backporting as optional
...
Since https://github.com/backslashxx/KernelSU/commit/4f8943a , path_umount is no longer needed.
Signed-off-by: rsuntk <rsuntk@yukiprjkt.my.id >
2025-05-24 15:02:40 +08:00
backslashxx
cd32ee21be
kernel: core_hook: screw path_umount backport, call sys_umount directly
...
I am repasting here what I posted on the source code originally:
/*
* turns out path_umount backport is completely unneeded
* we copy the trick used on strncpy_from_unsafe_user / strncpy_from_user_nofault
* https://elixir.bootlin.com/linux/v4.4.302/source/mm/maccess.c#L184
* basically
*
* mm_segment_t old_fs = get_fs(); // remember original fs segment
* set_fs(USER_DS); // or KERNEL_DS *
* do_whatever_in_userspace();
* set_fs(old_fs); // restore fs segment
*
* * kernel -> user, KERNEL_DS, user -> kernel, USER_DS
*
* so yes, we can try to straight up call a syscall from kernel space
*
* NOTE: on newer kernels you can use force_uaccess_begin + force_uaccess_end
* ref: https://elixir.bootlin.com/linux/v5.10.237/source/mm/maccess.c#L250
*
*/
path_umount backport now optional — neat trick, werks, what can I say.
Backports? Nah, we’re good.
Signed-off-by: backslashxx <118538522+backslashxx@users.noreply.github.com >
2025-05-24 14:43:07 +08:00
ShirkNeko
bbb072b776
Refactoring KPM support to check KPM status using CMD_ENABLE_KPM
2025-05-24 14:36:41 +08:00
ShirkNeko
95c47b8602
Fixed misspelling of CONFIG_KSU_HOOK_KPROBES to CONFIG_KSU_KPROBES_HOOK in Makefile and related files.
2025-05-17 18:33:29 +08:00
ShirkNeko
d9063377af
Rearrange KSU related conditional compilation support in core_hook.c to improve code readability
2025-04-23 15:35:19 +08:00
ShirkNeko
dfaada7134
Patch update SuSFS version to 1.5.6
2025-04-22 16:20:41 +08:00
ShirkNeko
f0a14e54e6
在core_hook.c中添加对KPM的条件编译支持
2025-04-21 10:31:50 +08:00
ShirkNeko
28f006ed39
Refactor Kconfig and Makefile, update KPROBES related configurations, simplify conditional compilation logic
2025-04-17 19:46:14 +08:00
ShirkNeko
6cf8f77b61
Add an uninstall attempt for the “/data/adb/kpm” path in the kernel mount logic to enhance the integrity of path management
2025-04-11 20:22:48 +08:00
ShirkNeko
6c4b73a38e
更新 KPM 模块,调整函数参数以支持额外的用户结果返回
2025-03-31 20:10:32 +08:00
ShirkNeko
743ddce9f7
添加 KPM 模块支持,包括 KPM 配置选项、核心功能实现及相关头文件
2025-03-30 02:54:23 +08:00
樱檩殇雪
ad064fea9e
add susfs-dev branch files
2025-03-17 02:48:59 +08:00