From 6e8771b8d939cbffa20ad4923c416de7b1a6be61 Mon Sep 17 00:00:00 2001 From: tiann Date: Thu, 26 Jan 2023 17:27:06 +0800 Subject: [PATCH] manager: check overlayfs support --- .../src/main/java/me/weishu/kernelsu/ui/screen/Module.kt | 9 +++++++++ .../src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt | 6 ++++++ manager/app/src/main/res/values-zh-rCN/strings.xml | 1 + manager/app/src/main/res/values-zh-rHK/strings.xml | 1 + manager/app/src/main/res/values-zh-rTW/strings.xml | 1 + manager/app/src/main/res/values/strings.xml | 1 + 6 files changed, 19 insertions(+) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Module.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Module.kt index 4a5081bc..33c7b371 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Module.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Module.kt @@ -32,6 +32,7 @@ import me.weishu.kernelsu.Natives import me.weishu.kernelsu.R import me.weishu.kernelsu.ui.screen.destinations.InstallScreenDestination import me.weishu.kernelsu.ui.util.LocalSnackbarHost +import me.weishu.kernelsu.ui.util.overlayFsAvailable import me.weishu.kernelsu.ui.util.toggleModule import me.weishu.kernelsu.ui.util.uninstallModule import me.weishu.kernelsu.ui.viewmodel.ModuleViewModel @@ -105,6 +106,14 @@ fun ModuleScreen(navigator: DestinationsNavigator) { .padding(16.dp) .fillMaxSize() ) { + val isOverlayAvailable = overlayFsAvailable() + if (!isOverlayAvailable) { + swipeState.isRefreshing = false + Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { + Text(stringResource(R.string.module_overlay_fs_not_available)) + } + return@SwipeRefresh + } val isEmpty = viewModel.moduleList.isEmpty() if (isEmpty) { swipeState.isRefreshing = false 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 10fb4456..f0dc048d 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 @@ -102,4 +102,10 @@ fun reboot(reason: String = "") { ShellUtils.fastCmd(shell, "/system/bin/input keyevent 26") } ShellUtils.fastCmd(shell, "/system/bin/svc power reboot $reason || /system/bin/reboot $reason") +} + +fun overlayFsAvailable(): Boolean { + val shell = createRootShell() + // check /proc/filesystems + return ShellUtils.fastCmdResult(shell, "cat /proc/filesystems | grep overlay") } \ No newline at end of file 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 4a16d391..26bb9750 100644 --- a/manager/app/src/main/res/values-zh-rCN/strings.xml +++ b/manager/app/src/main/res/values-zh-rCN/strings.xml @@ -45,4 +45,5 @@ 卸载失败: %s 版本 作者 + 内核不支持 overlayfs,模块功能无法运作! diff --git a/manager/app/src/main/res/values-zh-rHK/strings.xml b/manager/app/src/main/res/values-zh-rHK/strings.xml index 0fa36b13..449660a8 100644 --- a/manager/app/src/main/res/values-zh-rHK/strings.xml +++ b/manager/app/src/main/res/values-zh-rHK/strings.xml @@ -45,4 +45,5 @@ 卸載失敗: %s 版本 作者 + 內核不支持 overlayfs,模塊功能無法運作! diff --git a/manager/app/src/main/res/values-zh-rTW/strings.xml b/manager/app/src/main/res/values-zh-rTW/strings.xml index 6f3d7f06..074cab32 100644 --- a/manager/app/src/main/res/values-zh-rTW/strings.xml +++ b/manager/app/src/main/res/values-zh-rTW/strings.xml @@ -45,4 +45,5 @@ 卸載失敗: %s 版本 作者 + 內核不支持 overlayfs,模塊功能無法運作! diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml index 7fc1ded8..ee91352f 100644 --- a/manager/app/src/main/res/values/strings.xml +++ b/manager/app/src/main/res/values/strings.xml @@ -49,5 +49,6 @@ Failed to uninstall: %s Version Author + overlayfs is not available, module cannot work!