From 5db51b0715996d932646711a7b1f73a612026df9 Mon Sep 17 00:00:00 2001 From: weishu Date: Fri, 2 Feb 2024 12:25:30 +0800 Subject: [PATCH] manager: fix misleading tips when grant root failed. --- .../app/src/main/java/me/weishu/kernelsu/ui/MainActivity.kt | 3 ++- .../app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt | 5 +++++ .../app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt | 5 +++++ manager/app/src/main/res/values-zh-rCN/strings.xml | 3 +++ manager/app/src/main/res/values/strings.xml | 1 + 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/MainActivity.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/MainActivity.kt index 74af1c5b..c5a7e671 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/MainActivity.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/MainActivity.kt @@ -32,6 +32,7 @@ import me.weishu.kernelsu.ui.screen.NavGraphs import me.weishu.kernelsu.ui.theme.KernelSUTheme import me.weishu.kernelsu.ui.util.LocalDialogHost import me.weishu.kernelsu.ui.util.LocalSnackbarHost +import me.weishu.kernelsu.ui.util.rootAvailable class MainActivity : ComponentActivity() { @@ -66,7 +67,7 @@ class MainActivity : ComponentActivity() { @Composable private fun BottomBar(navController: NavHostController) { val isManager = Natives.becomeManager(ksuApp.packageName) - val fullFeatured = isManager && !Natives.requireNewKernel() + val fullFeatured = isManager && !Natives.requireNewKernel() && rootAvailable() NavigationBar(tonalElevation = 8.dp) { BottomBarDestination.values().forEach { destination -> if (!fullFeatured && destination.rootRequired) return@forEach diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt index c8ff7c1a..d7affe1d 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt @@ -69,6 +69,11 @@ fun HomeScreen(navigator: DestinationsNavigator) { ) ) } + if (!rootAvailable()) { + WarningCard( + stringResource(id = R.string.grant_root_failed) + ) + } val checkUpdate = LocalContext.current.getSharedPreferences("settings", Context.MODE_PRIVATE) .getBoolean("check_update", true) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt index 2af97e03..56372779 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt @@ -140,6 +140,11 @@ fun reboot(reason: String = "") { ShellUtils.fastCmd(shell, "/system/bin/svc power reboot $reason || /system/bin/reboot $reason") } +fun rootAvailable(): Boolean { + val shell = getRootShell() + return shell.isRoot +} + fun overlayFsAvailable(): Boolean { val shell = getRootShell() // check /proc/filesystems 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 d6a9d912..af912046 100644 --- a/manager/app/src/main/res/values-zh-rCN/strings.xml +++ b/manager/app/src/main/res/values-zh-rCN/strings.xml @@ -102,4 +102,7 @@ 模版保存失败! 剪切板为空! 获取更新日志失败:%s + 检查更新 + 在应用启动后自动检查是否有最新版 + 获取 root 失败! \ No newline at end of file diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml index 58add6e9..9675566a 100644 --- a/manager/app/src/main/res/values/strings.xml +++ b/manager/app/src/main/res/values/strings.xml @@ -106,4 +106,5 @@ Fetch changelog failed: %s Check update Automatically check for updates when opening the app + Failed to grant root!