diff --git a/manager/app/src/main/cpp/ksu.cc b/manager/app/src/main/cpp/ksu.cc index 720c5fd01026..dda51d7e10e4 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 +}