Skip to content

Commit 60001bd

Browse files
committed
kernel: ksu: printout quirks / backports / etc on init
Signed-off-by: backslashxx <[email protected]>
1 parent b5cf506 commit 60001bd

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

kernel/ksu.c

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
#include <linux/fs.h>
33
#include <linux/kobject.h>
44
#include <linux/module.h>
5+
#include <generated/utsrelease.h>
6+
#include <generated/compile.h>
57
#include <linux/version.h> /* LINUX_VERSION_CODE, KERNEL_VERSION macros */
68
#include <linux/workqueue.h>
79

@@ -26,8 +28,88 @@ bool ksu_queue_work(struct work_struct *work)
2628
return queue_work(ksu_workqueue, work);
2729
}
2830

31+
// track backports and other quirks here
32+
// ref: kernel_compat.c, Makefile
33+
// yes looks nasty
34+
#if defined(CONFIG_KSU_KPROBES_KSUD)
35+
#define FEAT_1 " +kprobes_ksud"
36+
#else
37+
#define FEAT_1 ""
38+
#endif
39+
40+
#if defined(CONFIG_KSU_KRETPROBES_SUCOMPAT)
41+
#define FEAT_2 " +kretprobes_sucompat"
42+
#else
43+
#define FEAT_2 ""
44+
#endif
45+
46+
#if defined(CONFIG_KSU_THRONE_TRACKER_ALWAYS_THREADED)
47+
#define FEAT_3 " +throne_always_threaded"
48+
#else
49+
#define FEAT_3 ""
50+
#endif
51+
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) && !defined(CONFIG_KSU_LSM_SECURITY_HOOKS)
52+
#define FEAT_4 " -lsm_hooks"
53+
#else
54+
#define FEAT_4 ""
55+
#endif
56+
#if !(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)) && defined(CONFIG_KSU_ALLOWLIST_WORKAROUND)
57+
#define FEAT_5 " +allowlist_workaround"
58+
#else
59+
#define FEAT_5 ""
60+
#endif
61+
#if !(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)) && defined(KSU_HAS_MODERN_EXT4)
62+
#define FEAT_6 " +ext4_unregister_sysfs"
63+
#else
64+
#define FEAT_6 ""
65+
#endif
66+
#if !(LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)) && defined(KSU_HAS_PATH_UMOUNT)
67+
#define FEAT_7 " +path_umount"
68+
#else
69+
#define FEAT_7 ""
70+
#endif
71+
#if !(LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) && defined(KSU_COPY_FROM_USER_NOFAULT)
72+
#define FEAT_8 " +copy_from_user_nofault"
73+
#else
74+
#define FEAT_8 ""
75+
#endif
76+
#if !(LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) && defined(KSU_PROBE_USER_READ)
77+
#define FEAT_9 " +probe_user_read"
78+
#else
79+
#define FEAT_9 ""
80+
#endif
81+
#if !(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)) && defined(KSU_NEW_KERNEL_READ)
82+
#define FEAT_10 " +new_kernel_read"
83+
#else
84+
#define FEAT_10 ""
85+
#endif
86+
#if !(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)) && defined(KSU_NEW_KERNEL_WRITE)
87+
#define FEAT_11 " +new_kernel_write"
88+
#else
89+
#define FEAT_11 ""
90+
#endif
91+
#if !(LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)) && defined(KSU_HAS_SELINUX_INODE)
92+
#define FEAT_12 " +selinux_inode"
93+
#else
94+
#define FEAT_12 ""
95+
#endif
96+
#if !(LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0)) && defined(KSU_HAS_FOP_READ_ITER)
97+
#define FEAT_13 " +read_iter"
98+
#else
99+
#define FEAT_13 ""
100+
#endif
101+
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 11, 0) && defined(KSU_HAS_ITERATE_DIR)
102+
#define FEAT_14 " +iterate_dir"
103+
#else
104+
#define FEAT_14 ""
105+
#endif
106+
107+
#define EXTRA_FEATURES FEAT_1 FEAT_2 FEAT_3 FEAT_4 FEAT_5 FEAT_6 FEAT_7 FEAT_8 FEAT_9 FEAT_10 FEAT_11 FEAT_12 FEAT_13 FEAT_14
108+
29109
int __init kernelsu_init(void)
30110
{
111+
pr_info("Initialized on: %s (%s) with ksuver: %s%s\n", UTS_RELEASE, UTS_MACHINE, __stringify(KSU_VERSION), EXTRA_FEATURES);
112+
31113
#ifdef CONFIG_KSU_DEBUG
32114
pr_alert("*************************************************************");
33115
pr_alert("** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **");

0 commit comments

Comments
 (0)