ShirkNeko
049865daea
Remove duplicate get_cred_rcu backport
2025-05-15 21:26:12 +08:00
backslashxx
e3b6f4d35d
kernel: sucompat: sucompat toggle support for non-kp (tiann#2506)
...
kernel/selinux: fix pointer mismatch with 32-bit ksud on 64-bit kernels
Since KernelSU Manager can now be built for 32-bit, theres this problematic
setup where userspace is 32-bit (armeabi-v7a) and kernel is 64bit (aarch64).
On 64-bit kernels with CONFIG_COMPAT=y, 32-bit userspace passes 32-bit pointers.
These values are interpreted as 64-bit pointers without proper casting and that
results in invalid or near-null memory access.
This patch adds proper compat-mode handling with the ff changes:
- introduce a dedicated struct (`sepol_compat_data`) using u32 fields
- use `compat_ptr()` to safely convert 32-bit user pointers to kernel pointers
- adding a runtime `ksu_is_compat` flag to dynamically select between struct layouts
This prevents a near-null pointer dereference when handling SELinux
policy updates from 32-bit ksud in a 64-bit kernel.
Truth table:
kernel 32 + ksud 32, struct is u32, no compat_ptr
kernel 64 + ksud 32, struct is u32, yes compat_ptr
kernel 64 + ksud 64, struct is u64, no compat_ptr
Preprocessor check
64BIT=y COMPAT=y: define both structs, select dynamically
64BIT=y COMPAT=n: struct u64
64BIT=n: struct u32
kernel/throne_tracker: we just uninstalled the manager, stop looking for it
When the manager UID disappears from packages.list, we correctly
invalidate it — good. But, in the very next breath, we start scanning
/data/app hoping to find it again?
This event is just unnecessary I/O, exactly when we should be doing less.
Apparently this causes hangups and stuckups which is REALLY noticeable
on Ultra-Legacy devices.
Skip the scan — we’ll catch the reinstall next time packages.list updates.
This is done like how vfs_read_hook, input_hook and execve_hook is disabled.
While this is not exactly the same thing, this CAN achieve the same results.
The complete disabling of all KernelSU hooks.
While this is likely unneeded, It keeps feature parity to non-kprobe builds.
adapted from upstream:
kernel: Allow to re-enable sucompat - 4593ae81c7
Rejected: https://github.com/tiann/KernelSU/pull/2506
Signed-off-by: backslashxx <118538522+backslashxx@users.noreply.github.com >
2025-05-15 20:23:18 +08:00
ShirkNeko
682fdf0afe
Prioritize sukisu recognition.
...
Simplified manual hooks
2025-05-10 14:38:45 +08:00
ShirkNeko
d77ee31bce
Add support for KERNEL_VERSION_4_10 in super_access.c and move variable declarations in for loops outside the loop to improve code readability
2025-04-25 19:12:53 +08:00
ShirkNeko
41b8f854a4
Add KSU_CMDLINE configuration to enable the KernelSU command line option and implement the corresponding status read function
...
Co-authored-by: rsuntk <rsuntk@yukiprjkt.my.id >
Co-authored-by: ShirkNeko <109797057+ShirkNeko@users.noreply.github.com >
Signed-off-by: ShirkNeko <109797057+ShirkNeko@users.noreply.github.com >
2025-04-24 15:03:09 +08:00
ShirkNeko
069a671bf1
Remove unnecessary conditional compilation code to simplify the definition of kprobe structures
2025-04-23 17:26:00 +08:00
ShirkNeko
13c5aae85e
Move variable declarations in the for loop outside the loop in sucompat.c
2025-04-23 17:16:10 +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
527d362b85
Add support for Kprobe, extend su_kps array to 6 elements to accommodate more hook functions
2025-04-23 15:08:05 +08:00
ShirkNeko
dfaada7134
Patch update SuSFS version to 1.5.6
2025-04-22 16:20:41 +08:00
ShirkNeko
2c65af9e80
Add a dependency for KPM in Kconfig to ensure that KPM functionality can only be activated when KSU is enabled
2025-04-21 10:42:52 +08:00
ShirkNeko
f0a14e54e6
在core_hook.c中添加对KPM的条件编译支持
2025-04-21 10:31:50 +08:00
ShirkNeko
970e7651a5
Refactoring Kconfig and Makefile to optimize KernelSU configuration logic and simplify kernel type determination
2025-04-19 16:02:18 +08:00
ShirkNeko
1a563bb3e1
Update Makefile to add support for kernel version 6 and optimize KERNEL_TYPE judgment logic.
2025-04-19 14:44:49 +08:00
ShirkNeko
bd56bcf538
Refactoring Kconfig to optimize KernelSU-related configuration and simplify conditional dependency logic
2025-04-19 14:02:12 +08:00
ShirkNeko
6c2e67cd50
更新Makefile,添加内核类型判断逻辑并输出相关信息
2025-04-17 20:07:02 +08:00
ShirkNeko
be8d6ca052
重构Makefile中的KPROBES钩子逻辑,简化条件编译信息输出
2025-04-17 19:53:21 +08:00
ShirkNeko
b72ab79e06
简化Makefile中的内核版本判断逻辑,移除冗余的条件编译代码
2025-04-17 19:52: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
140ebd196f
Add support for kernel version 6.12, update conditional compilation definitions in super_access.c
2025-04-15 16:13:16 +08:00
ShirkNeko
8ada7757ea
Update Makefile
2025-04-15 15:14:20 +08:00
liankong
b7b739824e
添加super_access对task_struct的支持
2025-04-13 14:23:53 +08:00
ShirkNeko
e2f89709d1
Remove macro definitions in super_access.c for kernel version 4.14 to simplify structural definitions
2025-04-12 19:31:39 +08:00
ShirkNeko
546929da55
Remove conditional compilation for kernel version 4.14 in super_access.c to simplify kprobe structure definition
2025-04-12 19:30:55 +08:00
ShirkNeko
97aaea7d86
Remove macro definitions for kernel versions 5.0 and 5.10 in super_access.c, and adjust conditional compilation to support kernel versions 4.14 and 5.15.
2025-04-12 19:07:33 +08:00
ShirkNeko
2cbe1b9e9a
Update kernel version macro definitions to add support for kernel version 5.0 and adjust conditional compilation for newer versions
2025-04-12 19:02:52 +08:00
ShirkNeko
51a0357f0f
在 super_access.c 中添加对内核版本 6.6 和 5.15 的宏定义,并调整条件编译以适应新的内核版本
2025-04-12 16:23:27 +08:00
ShirkNeko
44d85cfdd7
在 super_access.c 中添加对内核版本 4.14 的宏定义,并根据内核版本条件编译相关成员
2025-04-12 16:16:06 +08:00
ShirkNeko
662d5494b2
更新内核版本宏定义为 6.1,并相应调整条件编译的成员定义
2025-04-12 16:12:28 +08:00
ShirkNeko
10e05689e5
在 super_access.c 中添加对 linux/version.h 的引用,并根据内核版本条件定义相关成员
2025-04-12 16:09:48 +08:00
ShirkNeko
fd0066cdf6
更改 sukisu_is_current_uid_manager 函数以使用 ksu_is_manager 代替 is_manager
2025-04-12 15:28:38 +08:00
ShirkNeko
84b215f989
移除 super_access.c 中不必要的 break_handler 成员定义
2025-04-12 15:20:44 +08:00
ShirkNeko
4e950183e3
移除 super_access.c 中不必要的 linux/nsproxy.h 头文件引用
2025-04-12 15:19:29 +08:00
ShirkNeko
95d3eac98e
在 super_access.c 中添加对 fs/mount.h 的引用
2025-04-12 15:15:56 +08:00
ShirkNeko
61eb7203c4
在 super_access.c 中添加对 linux/nsproxy.h 的引用
2025-04-12 15:02:44 +08:00
ShirkNeko
a96367a177
Remove unnecessary header file fs/mount.h and use linux/mount.h instead.
2025-04-12 14:53:00 +08:00
ShirkNeko
80a9ec1498
更新 Makefile,将 super_access.c 更改为 super_access.o
2025-04-12 14:43:55 +08:00
liankong
b002bcd38a
Add super_access.c and super_access.h files to define the functions related to dynamically accessing structures.
2025-04-12 13:57:59 +08:00
ShirkNeko
04f2b53754
Add the definition of the get_cred_rcu function to the Makefile to support SukiSU compatibility
2025-04-11 23:40:30 +08:00
ShirkNeko
3923007430
Add the KSU_COMPAT_GET_CRED_RCU flag to the Makefile to support the compatibility feature
2025-04-11 20:51:24 +08:00
ShirkNeko
d240c1035f
Fix spelling error in SELinux driver check to ensure current_sid function is recognized correctly
2025-04-11 20:46:52 +08:00
ShirkNeko
6060fdd4ab
Remove the KSU_COMPAT_GET_CRED_RCU flag from the Makefile and add a compile check for the path_umount function to ensure that the necessary validation is done before compilation.
2025-04-11 20:44:45 +08:00
ShirkNeko
e54785c069
Update Makefile to support SukiSU, add get_cred_rcu, can_umount, and path_umount functions, and change information to reflect the new name.
2025-04-11 20:39:43 +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
bae61b03c5
Add dynamic structure metadata support to enhance readability and maintainability of kernel modules
2025-04-11 17:33:47 +08:00
ShirkNeko
ef4c1f50ab
Update the log message prefixes in the Makefile to uniformly format the output
2025-04-11 04:07:29 +08:00
ShirkNeko
ad051ce22b
Remove definition checks for atomic functions in the kernel Makefile to simplify path unloading logic
2025-04-11 04:04:55 +08:00
ShirkNeko
aee56e803d
Add the definitions of the get_cred_rcu, can_umount, and path_umount functions to the Makefile to enhance the readability and maintainability of the path unloading logic
2025-04-11 03:59:31 +08:00
ShirkNeko
3c0944530d
Add error checking to the kernel Makefile to ensure that the atomic_inc_not_zero or atomic_long_inc_not_zero functions are found in kernel/cred.c
2025-04-11 03:57:23 +08:00
ShirkNeko
549dc132a4
Add the definitions of the get_cred_rcu, can_umount, and path_umount functions to the Makefile to enhance the readability and maintainability of the path unloading logic
2025-04-11 03:55:23 +08:00