You've already forked KernelSU-Next
mirror of
https://github.com/KernelSU-Next/KernelSU-Next.git
synced 2025-08-27 23:46:34 +00:00
manager: try detect susfs prctl and
show if susfs supported and version on HomeScreen
This commit is contained in:
@@ -30,6 +30,8 @@ object Natives {
|
||||
System.loadLibrary("kernelsu")
|
||||
}
|
||||
|
||||
external fun getSusfsVersion(): String
|
||||
|
||||
// become root manager, return true if success.
|
||||
external fun becomeManager(pkg: String?): Boolean
|
||||
val version: Int
|
||||
|
||||
@@ -268,10 +268,15 @@ private fun StatusCard(
|
||||
style = MaterialTheme.typography.bodyMedium
|
||||
)
|
||||
Spacer(Modifier.height(4.dp))
|
||||
Text(
|
||||
text = stringResource(R.string.home_susfs, getSuSFS()),
|
||||
style = MaterialTheme.typography.bodyMedium
|
||||
)
|
||||
|
||||
val suSFS = getSuSFS()
|
||||
if (suSFS != "Unsupported") {
|
||||
Text(
|
||||
text = stringResource(R.string.home_susfs, suSFS),
|
||||
style = MaterialTheme.typography.bodyMedium
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -400,14 +405,16 @@ private fun InfoCard() {
|
||||
)
|
||||
|
||||
Spacer(Modifier.height(16.dp))
|
||||
val suSfsStatus = getSuSFS()
|
||||
if (suSfsStatus != "Unsupported") {
|
||||
|
||||
val suSFS = getSuSFS()
|
||||
if (suSFS != "Unsupported") {
|
||||
InfoCardItem(
|
||||
label = stringResource(R.string.home_susfs_version),
|
||||
content = getSuSFSVersion(),
|
||||
icon = Icons.Filled.SettingsSuggest,
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,25 +120,27 @@ fun getModuleCount(): Int {
|
||||
}.getOrElse { return 0 }
|
||||
}
|
||||
|
||||
// TODO: Try fixing Prctl method to get CMD_SUSFS_SHOW_VERSION 0x555e1
|
||||
fun getSuSFS(): String {
|
||||
val shell = getRootShell()
|
||||
val result = ShellUtils.fastCmd(shell, "dmesg | grep -i susfs")
|
||||
|
||||
return if (result.isNotBlank()) {
|
||||
"Supported"
|
||||
} else {
|
||||
"Unsupported"
|
||||
return try {
|
||||
val sus_version = Natives.getSusfsVersion()
|
||||
if (sus_version.startsWith("v")) {
|
||||
"Supported"
|
||||
} else {
|
||||
"Unsupported"
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
"Error: ${e.message}"
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Try fixing Prctl method to get CMD_SUSFS_SHOW_VERSION 0x555e1
|
||||
fun getSuSFSVersion(): String {
|
||||
val shell = getRootShell()
|
||||
val result = ShellUtils.fastCmd(shell, "su -c ksu_susfs show version")
|
||||
|
||||
return if (result.startsWith("v")) {
|
||||
result
|
||||
} else {
|
||||
"Unavailable"
|
||||
return try {
|
||||
val sus_version = Natives.getSusfsVersion()
|
||||
sus_version ?: "Unknown version"
|
||||
} catch (e: Exception) {
|
||||
"Error: ${e.message}"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user