From 9a64eaa930d2ba0dc17c4e18a384f9ffa5f39f9d Mon Sep 17 00:00:00 2001 From: NkBe Date: Fri, 27 Jun 2025 14:17:31 +0800 Subject: [PATCH] manger: fix lkm detection (#2654) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原因请看 https://github.com/SukiSU-Ultra/SukiSU-Ultra/pull/217#issuecomment-3004461174 文中介绍的是lkm的问题 但实测下来gki也有这样的问题 但修复方法通用 --- manager/app/src/main/cpp/ksu.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/manager/app/src/main/cpp/ksu.cc b/manager/app/src/main/cpp/ksu.cc index 720c5fd0..dda51d7e 100644 --- a/manager/app/src/main/cpp/ksu.cc +++ b/manager/app/src/main/cpp/ksu.cc @@ -50,12 +50,13 @@ bool become_manager(const char* pkg) { } // cache the result to avoid unnecessary syscall -static bool is_lkm; -int get_version() { +static bool is_lkm = false; + +int get_version(void) { int32_t version = -1; - int32_t lkm = 0; - ksuctl(CMD_GET_VERSION, &version, &lkm); - if (!is_lkm && lkm != 0) { + int32_t flags = 0; + ksuctl(CMD_GET_VERSION, &version, &flags); + if (!is_lkm && (flags & 0x1)) { is_lkm = true; } return version; @@ -96,4 +97,4 @@ bool is_su_enabled() { // if ksuctl failed, we assume su is enabled, and it cannot be disabled. ksuctl(CMD_IS_SU_ENABLED, &enabled, nullptr); return enabled; -} \ No newline at end of file +}