manager: Add support to disable sucompat mode.

This commit is contained in:
weishu
2025-02-16 19:35:35 +08:00
committed by rifsxd
parent bb6c20339c
commit d05d16c15d
7 changed files with 62 additions and 2 deletions
@@ -158,7 +158,7 @@ fun SettingScreen(navigator: DestinationsNavigator) {
}
if (ksuVersion != null) {
SwitchItem(
icon = Icons.Filled.RemoveModerator,
icon = Icons.Filled.FolderDelete,
title = stringResource(id = R.string.settings_umount_modules_default),
summary = stringResource(id = R.string.settings_umount_modules_default_summary),
checked = umountChecked
@@ -170,6 +170,24 @@ fun SettingScreen(navigator: DestinationsNavigator) {
}
}
if (Natives.version >= Natives.MINIMAL_SUPPORTED_SU_COMPAT) {
var isSuDisabled by rememberSaveable {
mutableStateOf(!Natives.isSuEnabled())
}
SwitchItem(
icon = Icons.Filled.RemoveModerator,
title = stringResource(id = R.string.settings_disable_su),
summary = stringResource(id = R.string.settings_disable_su_summary),
checked = isSuDisabled,
enabled = !isSuDisabled // we can't re-enable su if it's disabled.
) { checked ->
val shouldEnable = !checked
if (Natives.setSuEnabled(shouldEnable)) {
isSuDisabled = !shouldEnable
}
}
}
val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE)
val suSFS = getSuSFS()