manager: Add the ability to get the hook type
This commit is contained in:
@@ -311,3 +311,8 @@ extern "C" JNIEXPORT jboolean JNICALL
|
|||||||
Java_com_sukisu_ultra_Natives_isKPMEnabled(JNIEnv *env, jobject) {
|
Java_com_sukisu_ultra_Natives_isKPMEnabled(JNIEnv *env, jobject) {
|
||||||
return is_KPM_enable();
|
return is_KPM_enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" JNIEXPORT jboolean JNICALL
|
||||||
|
Java_com_sukisu_ultra_Natives_getHookType(JNIEnv *env, jobject) {
|
||||||
|
return get_hook_type();
|
||||||
|
}
|
||||||
@@ -30,6 +30,7 @@
|
|||||||
#define CMD_IS_SU_ENABLED 14
|
#define CMD_IS_SU_ENABLED 14
|
||||||
#define CMD_ENABLE_SU 15
|
#define CMD_ENABLE_SU 15
|
||||||
#define CMD_ENABLE_KPM 100
|
#define CMD_ENABLE_KPM 100
|
||||||
|
#define CMD_HOOK_TYPE 101
|
||||||
|
|
||||||
static bool ksuctl(int cmd, void* arg1, void* arg2) {
|
static bool ksuctl(int cmd, void* arg1, void* arg2) {
|
||||||
int32_t result = 0;
|
int32_t result = 0;
|
||||||
@@ -103,3 +104,8 @@ bool is_KPM_enable() {
|
|||||||
bool enabled = false;
|
bool enabled = false;
|
||||||
return ksuctl(CMD_ENABLE_KPM, &enabled, nullptr), enabled;
|
return ksuctl(CMD_ENABLE_KPM, &enabled, nullptr), enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool get_hook_type() {
|
||||||
|
bool enabled = false;
|
||||||
|
return ksuctl(CMD_HOOK_TYPE, &enabled, nullptr), enabled;
|
||||||
|
}
|
||||||
@@ -85,4 +85,6 @@ bool is_su_enabled();
|
|||||||
|
|
||||||
bool is_KPM_enable();
|
bool is_KPM_enable();
|
||||||
|
|
||||||
|
bool get_hook_type();
|
||||||
|
|
||||||
#endif //KERNELSU_KSU_H
|
#endif //KERNELSU_KSU_H
|
||||||
@@ -69,6 +69,7 @@ object Natives {
|
|||||||
external fun isSuEnabled(): Boolean
|
external fun isSuEnabled(): Boolean
|
||||||
external fun setSuEnabled(enabled: Boolean): Boolean
|
external fun setSuEnabled(enabled: Boolean): Boolean
|
||||||
external fun isKPMEnabled(): Boolean
|
external fun isKPMEnabled(): Boolean
|
||||||
|
external fun getHookType(): Boolean
|
||||||
|
|
||||||
private const val NON_ROOT_DEFAULT_PROFILE_KEY = "$"
|
private const val NON_ROOT_DEFAULT_PROFILE_KEY = "$"
|
||||||
private const val NOBODY_UID = 9999
|
private const val NOBODY_UID = 9999
|
||||||
|
|||||||
@@ -731,7 +731,13 @@ private fun InfoCard(
|
|||||||
val isSUS_SU = systemInfo.suSFSFeatures == "CONFIG_KSU_SUSFS_SUS_SU"
|
val isSUS_SU = systemInfo.suSFSFeatures == "CONFIG_KSU_SUSFS_SUS_SU"
|
||||||
val infoText = buildString {
|
val infoText = buildString {
|
||||||
append(systemInfo.suSFSVersion)
|
append(systemInfo.suSFSVersion)
|
||||||
append(if (isSUS_SU) " (${systemInfo.suSFSVariant})" else " (${stringResource(R.string.manual_hook)})")
|
append(if (isSUS_SU && !Natives.getHookType()) " (${systemInfo.suSFSVariant})" else {
|
||||||
|
if (Natives.getHookType()) {
|
||||||
|
" (${stringResource(R.string.manual_hook)})"
|
||||||
|
} else {
|
||||||
|
"Unknown"
|
||||||
|
}
|
||||||
|
})
|
||||||
if (isSUS_SU) {
|
if (isSUS_SU) {
|
||||||
if (systemInfo.susSUMode.isNotEmpty()) {
|
if (systemInfo.susSUMode.isNotEmpty()) {
|
||||||
append(" ${stringResource(R.string.sus_su_mode)} ${systemInfo.susSUMode}")
|
append(" ${stringResource(R.string.sus_su_mode)} ${systemInfo.susSUMode}")
|
||||||
|
|||||||
Reference in New Issue
Block a user