Manager: Added functionality to clean up the user-mode scanning environment after execution

fmt ksud
This commit is contained in:
ShirkNeko
2025-09-19 22:04:14 +08:00
parent 9a9623f578
commit a77faa1fe2
5 changed files with 56 additions and 2 deletions

View File

@@ -47,6 +47,7 @@ import com.sukisu.ultra.ui.theme.CardConfig.cardAlpha
import com.sukisu.ultra.ui.theme.getCardColors
import com.sukisu.ultra.ui.theme.getCardElevation
import com.sukisu.ultra.ui.util.LocalSnackbarHost
import com.sukisu.ultra.ui.util.cleanRuntimeEnvironment
import com.sukisu.ultra.ui.util.getBugreportFile
import com.sukisu.ultra.ui.util.setUidAutoScan
import com.sukisu.ultra.ui.util.setUidMultiUserScan
@@ -252,6 +253,38 @@ fun SettingScreen(navigator: DestinationsNavigator) {
}
)
}
// 清理运行环境
AnimatedVisibility(
visible = uidAutoScanEnabled,
enter = fadeIn() + expandVertically(),
exit = fadeOut() + shrinkVertically()
) {
val confirmDialog = rememberConfirmDialog()
val scope = rememberCoroutineScope()
SettingItem(
icon = Icons.Filled.CleaningServices,
title = stringResource(R.string.clean_runtime_environment),
summary = stringResource(R.string.clean_runtime_environment_summary),
onClick = {
scope.launch {
val result = confirmDialog.awaitConfirm(
title = context.getString(R.string.clean_runtime_environment),
content = context.getString(R.string.clean_runtime_environment_confirm)
)
if (result == ConfirmResult.Confirmed) {
uidAutoScanEnabled = false
prefs.edit { putBoolean("uid_auto_scan", false) }
uidMultiUserScanEnabled = false
prefs.edit { putBoolean("uid_multi_user_scan", false) }
snackBarHost.showSnackbar(context.getString(R.string.clean_runtime_environment_success))
}
}
}
)
}
}
}
)

View File

@@ -614,3 +614,13 @@ fun setUidMultiUserScan(enabled: Boolean): Boolean {
val result = ShellUtils.fastCmdResult(shell, cmd)
return result
}
fun cleanRuntimeEnvironment(): Boolean {
val shell = getRootShell()
val cmd = "$targetPath stop && rm -f /data/misc/user_uid && rm -rf $targetPath && rm -rf /data/adb/ksu/bin/user_uid && rm -rf /data/adb/service.d/uid_scanner.sh"
return try {
ShellUtils.fastCmdResult(shell, cmd)
} catch (_: Exception) {
false
}
}