diff --git a/manager/app/src/main/cpp/jni.cc b/manager/app/src/main/cpp/jni.cc index 0eaf7074..85867951 100644 --- a/manager/app/src/main/cpp/jni.cc +++ b/manager/app/src/main/cpp/jni.cc @@ -28,11 +28,8 @@ Java_com_rifsxd_ksunext_Natives_getVersion(JNIEnv *env, jobject) { extern "C" JNIEXPORT jstring JNICALL Java_com_rifsxd_ksunext_Natives_getHookMode(JNIEnv *env, jobject) { - char mode[16] = {0}; - if (get_hook_mode(mode, sizeof(mode))) { - return env->NewStringUTF(mode); - } - return nullptr; + const char* mode = get_hook_mode(); + return env->NewStringUTF(mode); } extern "C" diff --git a/manager/app/src/main/cpp/ksu.cc b/manager/app/src/main/cpp/ksu.cc index 3567c003..4d53bc1d 100644 --- a/manager/app/src/main/cpp/ksu.cc +++ b/manager/app/src/main/cpp/ksu.cc @@ -62,10 +62,10 @@ int get_version() { return version; } -bool get_hook_mode(char *mode, int mode_len) { - if (!mode || mode_len == 0) return false; - memset(mode, 0, mode_len); - return ksuctl(CMD_HOOK_MODE, mode, nullptr); +const char* get_hook_mode() { + static char mode[16]; + ksuctl(CMD_HOOK_MODE, mode, nullptr); + return mode; } bool get_allow_list(int *uids, int *size) { diff --git a/manager/app/src/main/cpp/ksu.h b/manager/app/src/main/cpp/ksu.h index 14be847b..17394da5 100644 --- a/manager/app/src/main/cpp/ksu.h +++ b/manager/app/src/main/cpp/ksu.h @@ -11,7 +11,7 @@ bool become_manager(const char *); int get_version(); -bool get_hook_mode(char *mode, int mode_len); +const char* get_hook_mode(); bool get_allow_list(int *uids, int *size);