From f67f16733f90b77ff345ae17aec71ba343d6ed85 Mon Sep 17 00:00:00 2001 From: ShirkNeko <109797057+ShirkNeko@users.noreply.github.com> Date: Mon, 31 Mar 2025 23:22:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96KPM=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E9=80=BB=E8=BE=91=EF=BC=8C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=AD=97=E7=AC=A6=E4=B8=B2=E8=B5=84=E6=BA=90?= =?UTF-8?q?=EF=BC=8C=E8=B0=83=E6=95=B4KPM=E7=89=88=E6=9C=AC=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/shirkneko/zako/sukisu/ui/screen/Home.kt | 13 ++++++------- .../java/shirkneko/zako/sukisu/ui/screen/kpm.kt | 16 +++++++++++----- .../app/src/main/res/values-zh-rCN/strings.xml | 10 +++++----- manager/app/src/main/res/values/strings.xml | 10 +++++----- 4 files changed, 27 insertions(+), 22 deletions(-) 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