diff --git a/kernel/ksu.c b/kernel/ksu.c index 7dbdf16e..d63bdd28 100644 --- a/kernel/ksu.c +++ b/kernel/ksu.c @@ -17,49 +17,10 @@ #include #endif -#ifdef CONFIG_KSU_CMDLINE -#include - -// use get_ksu_state()! -unsigned int enable_kernelsu = 1; // enabled by default -static int __init read_kernelsu_state(char *s) -{ - if (s) - enable_kernelsu = simple_strtoul(s, NULL, 0); - return 1; -} -__setup("kernelsu.enabled=", read_kernelsu_state); - -bool get_ksu_state(void) { return enable_kernelsu >= 1; } -#else -bool get_ksu_state(void) { return true; } -#endif /* CONFIG_KSU_CMDLINE */ - -static struct workqueue_struct *ksu_workqueue; - -bool ksu_queue_work(struct work_struct *work) -{ - return queue_work(ksu_workqueue, work); -} - -extern int ksu_handle_execveat_sucompat(int *fd, struct filename **filename_ptr, - void *argv, void *envp, int *flags); - -extern int ksu_handle_execveat_ksud(int *fd, struct filename **filename_ptr, - void *argv, void *envp, int *flags); - -int ksu_handle_execveat(int *fd, struct filename **filename_ptr, void *argv, - void *envp, int *flags) -{ - ksu_handle_execveat_ksud(fd, filename_ptr, argv, envp, flags); - return ksu_handle_execveat_sucompat(fd, filename_ptr, argv, envp, - flags); -} - -extern void ksu_sucompat_init(void); -extern void ksu_sucompat_exit(void); -extern void ksu_ksud_init(void); -extern void ksu_ksud_exit(void); +extern void ksu_sucompat_init(); +extern void ksu_sucompat_exit(); +extern void ksu_ksud_init(); +extern void ksu_ksud_exit(); extern void ksu_supercalls_init(); int __init kernelsu_init(void) @@ -67,13 +28,6 @@ int __init kernelsu_init(void) pr_info("kernelsu.enabled=%d\n", (int)get_ksu_state()); -#ifdef CONFIG_KSU_CMDLINE - if (!get_ksu_state()) { - pr_info_once("drivers is disabled."); - return 0; - } -#endif - #ifdef CONFIG_KSU_DEBUG pr_alert("*************************************************************"); pr_alert("** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **"); @@ -94,15 +48,12 @@ int __init kernelsu_init(void) ksu_core_init(); - ksu_workqueue = alloc_ordered_workqueue("kernelsu_work_queue", 0); - ksu_allowlist_init(); ksu_throne_tracker_init(); - ksu_sucompat_init(); - #ifdef KSU_KPROBES_HOOK + ksu_sucompat_init(); ksu_ksud_init(); #else pr_debug("init ksu driver\n"); @@ -118,21 +69,15 @@ int __init kernelsu_init(void) void kernelsu_exit(void) { -#ifdef CONFIG_KSU_CMDLINE - if (!get_ksu_state()) { - return; - } -#endif ksu_allowlist_exit(); ksu_observer_exit(); ksu_throne_tracker_exit(); - destroy_workqueue(ksu_workqueue); - #ifdef KSU_KPROBES_HOOK ksu_ksud_exit(); + ksu_sucompat_exit(); #endif diff --git a/kernel/ksu.h b/kernel/ksu.h index f3693e1a..724451bd 100644 --- a/kernel/ksu.h +++ b/kernel/ksu.h @@ -95,8 +95,6 @@ struct app_profile { }; }; -bool ksu_queue_work(struct work_struct *work); - static inline int startswith(char *s, char *prefix) { return strncmp(s, prefix, strlen(prefix));