在提交一个关于KernelSU解决方案的问题之前,请确保你已经完成了以下检查:

  1. 你已经搜索过现有的问题,并且没有找到任何相关的信息。
  2. 你将在KernelSU管理器中的设置-报告日志中上传bug报告文件。
  3. 你知道如何重现这个问题,而且这个问题可能并不特定于你的设备。

关于这个bug的描述:

当CONFIG_KSU_KPROBES_HOOK没有被启用时,会出现编译错误。在sucompat.c文件中的代码使用了su_kps数组而没有适当的条件编译保护:

../drivers/kernelsu/sucompat.c:400:29: error: use of undeclared identifier 'su_kps'
400 |         for (i = 0; i < ARRAY_SIZE(su_kps); i++) {
|                                    ^
../drivers/kernelsu/sucompat.c:400:29: error: use of undeclared identifier 'su_kps'
../drivers/kernelsu/sucompat.c:400:29: error: use of undeclared identifier 'su_kps'
../drivers/kernelsu/sucompat.c:401:7: error: use of undeclared identifier 'su_kps'
401 |                 if (su_kps[i]) {
|                     ^
4 errors generated.
make[3]: *** [../scripts/Makefile.build:359: drivers/kernelsu/sucompat.o] Error 1

如何重现这个问题:

(此处没有响应)

预期行为:

diff --git a/kernel/sucompat.c b/kernel/sucompat.c
index 69425add..6653657f 100644
--- a/kernel/sucompat.c
+++ b/kernel/sucompat.c
@@ -396,12 +396,14 @@ bool susfs_is_sus_su_hooks_enabled __read_mostly = false;
 int susfs_sus_su_working_mode = 0;
 
 static bool ksu_is_su_kps_enabled(void) {
+#ifdef CONFIG_KSU_KPROBES_HOOK
 int i;
 for (i = 0; i < ARRAY_SIZE(su_kps); i++) {
 if (su_kps[i]) {
 return true;
 }
 }
+#endif
 return false;
 }

截图:

(此处没有响应)

日志:

build.log

设备信息:

  • KernelSU版本:v3.2.0-7b46380d@susfs-main
  • 内核版本:4.14

附加信息:

(此处没有响应)