diff --git a/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/Home.kt b/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/Home.kt
index de7fe75b..364c2584 100644
--- a/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/Home.kt
+++ b/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/Home.kt
@@ -347,13 +347,6 @@ private fun StatusCard(
style = MaterialTheme.typography.bodyMedium
)
}
- Spacer(modifier = Modifier.height(4.dp))
-
- val kpmVersion = getKpmVersion()
- Text(
- text = stringResource(R.string.home_kpm_version, kpmVersion),
- style = MaterialTheme.typography.bodyMedium
- )
}
}
@@ -555,6 +548,12 @@ private fun InfoCard() {
InfoCardItem(stringResource(R.string.home_selinux_status), getSELinuxStatus())
+ if (!isSimpleMode) {
+ Spacer(Modifier.height(16.dp))
+ InfoCardItem(stringResource(R.string.home_kpm_version), getKpmVersion())
+ }
+
+
if (!isSimpleMode) {
Spacer(modifier = Modifier.height(16.dp))
diff --git a/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/kpm.kt b/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/kpm.kt
index 7054a447..6c7729ba 100644
--- a/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/kpm.kt
+++ b/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/kpm.kt
@@ -102,19 +102,25 @@ fun KpmScreen(
if (confirmResult == ConfirmResult.Confirmed) {
val success = loadingDialog.withLoading {
- loadKpmModule(tempFile.absolutePath)
+ try {
+ val process = ProcessBuilder("nsenter", "-t", "1", "-m").start()
+ process.waitFor()
+ loadKpmModule(tempFile.absolutePath)
+ } catch (e: Exception) {
+ Log.e("KsuCli", "Failed to execute nsenter command: ${e.message}")
+ "failed"
+ }
}
Log.d("KsuCli", "loadKpmModule result: $success")
- if (success == "success") {
+ if (success.contains("Success", ignoreCase = true)) {
viewModel.fetchModuleList()
snackBarHost.showSnackbar(
message = kpmInstallSuccess,
duration = SnackbarDuration.Long
)
} else {
- // 修正为显示安装失败的消息
snackBarHost.showSnackbar(
message = kpmInstallFailed,
duration = SnackbarDuration.Long
@@ -157,7 +163,7 @@ fun KpmScreen(
onClick = {
selectPatchLauncher.launch(
Intent(Intent.ACTION_GET_CONTENT).apply {
- type = "application/*"
+ type = "*/*"
}
)
},
@@ -238,7 +244,7 @@ fun KpmScreen(
unloadKpmModule(module.id)
}
Log.d("KsuCli", "unloadKpmModule result: $success")
- if (success == "success") {
+ if (success.contains("Success", ignoreCase = true)) {
viewModel.fetchModuleList()
snackBarHost.showSnackbar(
message = kpmUninstallSuccess,
diff --git a/manager/app/src/main/res/values-zh-rCN/strings.xml b/manager/app/src/main/res/values-zh-rCN/strings.xml
index 7a345adc..08e3f5be 100644
--- a/manager/app/src/main/res/values-zh-rCN/strings.xml
+++ b/manager/app/src/main/res/values-zh-rCN/strings.xml
@@ -230,11 +230,11 @@
确定要卸载内核模块 %1$s 吗?
卸载成功
卸载失败
- 安装kpm模块
- 确认安装吗?
- 安装kpm模块成功
- 安装kpm模块失败
- KPM 版本: %s
+ 加载kpm模块
+ 确认加载吗?
+ 加载kpm模块成功
+ 加载kpm模块失败
+ KPM 版本
关闭
以下内核模块功能由KernelPatch开发,经过修改后加入SukiSU Ultra的内核模块功能
SukiSU Ultra展望
diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml
index 861e94c3..c24c465c 100644
--- a/manager/app/src/main/res/values/strings.xml
+++ b/manager/app/src/main/res/values/strings.xml
@@ -232,13 +232,13 @@
Determine the kernel module to uninstall: %1$s ?
Uninstalled successfully
Failed to uninstall
- Installing the kpm module
- Confirm installation?
- Installation of kpm module successful
- Installation of kpm module failed
+ Load the kpm module
+ Confirm Load?
+ Load of kpm module successful
+ Load of kpm module failed
kpm parameters
kpm control
- KPM Version: %s
+ KPM Version
close
The following kernel module functions were developed by KernelPatch and modified to include the kernel module functions of SukiSU Ultra
SukiSU Ultra Look forward to