kernel: suggest user to enable CONFIG_KSU_ALLOWLIST_WORKAROUND if -ENOKEY

It's better to give some suggestion regarding allowlist workaround, so its easier to know incase allowlist bug happened.

-ENOKEY or "No required key found" error is the most common issue on certain devices, and most peoples has proved that by enabling kernelsu's init_keyring, can fix this issue.

Rissu's note:
Yet, if you still get allowlist bug, even after enabling this workaround, please report it and provide logs.
This commit is contained in:
Rissu
2025-03-24 02:57:54 +07:00
committed by ShirkNeko
parent d6fd67646e
commit 08fc1be97f

View File

@@ -8,6 +8,7 @@
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/version.h>
#include <linux/kconfig.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
#include <linux/compiler_types.h>
#endif
@@ -367,7 +368,13 @@ static void do_save_allow_list(struct work_struct *work)
struct file *fp =
ksu_filp_open_compat(KERNEL_SU_ALLOWLIST, O_WRONLY | O_CREAT | O_TRUNC, 0644);
if (IS_ERR(fp)) {
pr_err("save_allow_list create file failed: %ld\n", PTR_ERR(fp));
if ((PTR_ERR(fp) == -ENOKEY) && !IS_ENABLED(CONFIG_KSU_ALLOWLIST_WORKAROUND)) {
pr_info("filp_open: required key not found! (-ENOKEY)\n");
pr_info("Try enable CONFIG_KSU_ALLOWLIST_WORKAROUND in your kernel.\n");
pr_info("If you still encountered issue with allowlist, please report it.\n");
return;
} else
pr_err("save_allow_list create file failed: %ld\n", PTR_ERR(fp));
return;
}