From 2cd673d77619a454375817e4e531831c67b43c48 Mon Sep 17 00:00:00 2001 From: ShirkNeko <109797057+ShirkNeko@users.noreply.github.com> Date: Fri, 7 Nov 2025 11:08:27 +0800 Subject: [PATCH] manager: fix where the option displays "Temporary enable" after device reboot Co-authored-by: YuKongA <70465933+YuKongA@users.noreply.github.com> --- .../com/sukisu/ultra/ui/screen/Settings.kt | 32 +++++++++++-------- .../src/main/res/values-zh-rCN/strings.xml | 4 +-- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Settings.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Settings.kt index 137483da..b9135477 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Settings.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Settings.kt @@ -10,8 +10,6 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.animation.* import androidx.compose.foundation.background import androidx.compose.foundation.clickable -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.interaction.collectIsPressedAsState import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.rememberScrollState @@ -143,9 +141,11 @@ fun SettingScreen(navigator: DestinationsNavigator) { ) var enhancedSecurityMode by rememberSaveable { mutableIntStateOf( - prefs.getInt( - "enhanced_security_mode", if (Natives.isEnhancedSecurityEnabled()) 1 else 0 - ) + run { + val currentEnabled = Natives.isEnhancedSecurityEnabled() + val savedPersist = prefs.getInt("enhanced_security_mode", 0) + if (savedPersist == 2) 2 else if (currentEnabled) 1 else 0 + } ) } SettingDropdown( @@ -167,7 +167,7 @@ fun SettingScreen(navigator: DestinationsNavigator) { 1 -> if (Natives.setEnhancedSecurityEnabled(false)) { execKsud("feature save", true) if (Natives.setEnhancedSecurityEnabled(true)) { - prefs.edit { putInt("enhanced_security_mode", 1) } + prefs.edit { putInt("enhanced_security_mode", 0) } enhancedSecurityMode = 1 } } @@ -184,9 +184,11 @@ fun SettingScreen(navigator: DestinationsNavigator) { var suCompatMode by rememberSaveable { mutableIntStateOf( - prefs.getInt( - "su_compat_mode", if (!Natives.isSuEnabled()) 1 else 0 - ) + run { + val currentEnabled = Natives.isSuEnabled() + val savedPersist = prefs.getInt("su_compat_mode", 0) + if (savedPersist == 2) 2 else if (!currentEnabled) 1 else 0 + } ) } SettingDropdown( @@ -208,7 +210,7 @@ fun SettingScreen(navigator: DestinationsNavigator) { 1 -> if (Natives.setSuEnabled(true)) { execKsud("feature save", true) if (Natives.setSuEnabled(false)) { - prefs.edit { putInt("su_compat_mode", 1) } + prefs.edit { putInt("su_compat_mode", 0) } suCompatMode = 1 } } @@ -225,9 +227,11 @@ fun SettingScreen(navigator: DestinationsNavigator) { var kernelUmountMode by rememberSaveable { mutableIntStateOf( - prefs.getInt( - "kernel_umount_mode", if (!Natives.isKernelUmountEnabled()) 1 else 0 - ) + run { + val currentEnabled = Natives.isKernelUmountEnabled() + val savedPersist = prefs.getInt("kernel_umount_mode", 0) + if (savedPersist == 2) 2 else if (!currentEnabled) 1 else 0 + } ) } SettingDropdown( @@ -249,7 +253,7 @@ fun SettingScreen(navigator: DestinationsNavigator) { 1 -> if (Natives.setKernelUmountEnabled(true)) { execKsud("feature save", true) if (Natives.setKernelUmountEnabled(false)) { - prefs.edit { putInt("kernel_umount_mode", 1) } + prefs.edit { putInt("kernel_umount_mode", 0) } kernelUmountMode = 1 } } 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 e52ee6ca..c27db912 100644 --- a/manager/app/src/main/res/values-zh-rCN/strings.xml +++ b/manager/app/src/main/res/values-zh-rCN/strings.xml @@ -168,8 +168,8 @@ 禁止任何应用通过 su 命令获取 root 权限(已运行的 root 进程不受影响)。 关闭内核 umount 关闭 KernelSU 控制的内核级 umount 行为。 - 启用增强安全 - 启用更严格的安全策略。 + 增强安全性 + 使用更严格的安全策略。 默认 临时启用 始终启用