kernel: Add KSU_MANUAL_HOOK configuration for manual KernelSU syscall hooking
This commit is contained in:
@@ -46,6 +46,12 @@ config KSU_TRACEPOINT_HOOK
|
|||||||
help
|
help
|
||||||
If enabled, Hook required KernelSU syscalls with Tracepoint.
|
If enabled, Hook required KernelSU syscalls with Tracepoint.
|
||||||
|
|
||||||
|
config KSU_MANUAL_HOOK
|
||||||
|
bool "Hook KernelSU manually"
|
||||||
|
depends on KSU != m
|
||||||
|
help
|
||||||
|
If enabled, Hook required KernelSU syscalls with manually-patched function.
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|||||||
@@ -98,6 +98,8 @@ ifeq ($(strip $(CONFIG_KSU_KPROBES_HOOK)),y)
|
|||||||
$(info -- SukiSU: CONFIG_KSU_KPROBES_HOOK)
|
$(info -- SukiSU: CONFIG_KSU_KPROBES_HOOK)
|
||||||
else ifeq ($(strip $(CONFIG_KSU_TRACEPOINT_HOOK)),y)
|
else ifeq ($(strip $(CONFIG_KSU_TRACEPOINT_HOOK)),y)
|
||||||
$(info -- SukiSU: CONFIG_KSU_TRACEPOINT_HOOK)
|
$(info -- SukiSU: CONFIG_KSU_TRACEPOINT_HOOK)
|
||||||
|
else ifeq ($(strip $(CONFIG_KSU_MANUAL_HOOK)),y)
|
||||||
|
$(info -- SukiSU: CONFIG_KSU_MANUAL_HOOK)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
KERNEL_VERSION := $(VERSION).$(PATCHLEVEL)
|
KERNEL_VERSION := $(VERSION).$(PATCHLEVEL)
|
||||||
|
|||||||
@@ -544,12 +544,11 @@ int ksu_handle_prctl(int option, unsigned long arg2, unsigned long arg3,
|
|||||||
|
|
||||||
// Checking hook usage
|
// Checking hook usage
|
||||||
if (arg2 == CMD_HOOK_TYPE) {
|
if (arg2 == CMD_HOOK_TYPE) {
|
||||||
const char *hook_type;
|
const char *hook_type = "Kprobes";
|
||||||
|
#if defined(CONFIG_KSU_TRACEPOINT_HOOK)
|
||||||
#ifdef CONFIG_KSU_TRACEPOINT_HOOK
|
|
||||||
hook_type = "Tracepoint";
|
hook_type = "Tracepoint";
|
||||||
#else
|
#elif defined(CONFIG_KSU_MANUAL_HOOK)
|
||||||
hook_type = "Kprobes";
|
hook_type = "Manual";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
size_t len = strlen(hook_type) + 1;
|
size_t len = strlen(hook_type) + 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user