Refactoring KPM support to check KPM status using CMD_ENABLE_KPM

This commit is contained in:
ShirkNeko
2025-05-24 03:28:28 +08:00
parent b3e2f9b7ff
commit d619f5fafc
7 changed files with 39 additions and 52 deletions

View File

@@ -305,4 +305,10 @@ extern "C"
JNIEXPORT jboolean JNICALL
Java_com_sukisu_ultra_Natives_setSuEnabled(JNIEnv *env, jobject thiz, jboolean enabled) {
return set_su_enabled(enabled);
}
extern "C"
JNIEXPORT jboolean JNICALL
Java_com_sukisu_ultra_Natives_isKPMEnabled(JNIEnv *env, jclass clazz) {
return (jboolean)is_KPM_enable();
}

View File

@@ -29,6 +29,7 @@
#define CMD_IS_UID_SHOULD_UMOUNT 13
#define CMD_IS_SU_ENABLED 14
#define CMD_ENABLE_SU 15
#define CMD_ENABLE_KPM 100
static bool ksuctl(int cmd, void* arg1, void* arg2) {
int32_t result = 0;
@@ -96,4 +97,10 @@ 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;
}
bool is_KPM_enable() {
bool enabled = false;
ksuctl(CMD_ENABLE_KPM, &enabled, nullptr);
return enabled;
}

View File

@@ -83,4 +83,6 @@ bool set_su_enabled(bool enabled);
bool is_su_enabled();
bool is_KPM_enable();
#endif //KERNELSU_KSU_H