Manager: Added functionality to clean up the user-mode scanning environment after execution
fmt ksud
This commit is contained in:
@@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -660,4 +660,10 @@
|
||||
<string name="uid_multi_user_scan_summary">开启后将扫描所有用户的应用,包括工作资料等</string>
|
||||
<string name="uid_scanner_setting_failed">设置失败,请检查权限</string>
|
||||
<string name="uid_scanner_setting_error">设置失败: %s</string>
|
||||
<string name="clean_runtime_environment">清理运行环境</string>
|
||||
<string name="clean_runtime_environment_summary">清理运行时文件并停止扫描服务</string>
|
||||
<string name="clean_runtime_environment_confirm">您确定要清理运行环境吗?这将停止扫描服务并删除相关文件</string>
|
||||
<string name="clean_runtime_environment_success">运行环境清理成功</string>
|
||||
<string name="clean_runtime_environment_failed">运行环境清理失败</string>
|
||||
<string name="clean_runtime_environment_error">清理运行环境时出错:%s</string>
|
||||
</resources>
|
||||
|
||||
@@ -668,4 +668,10 @@ Important Note:\n
|
||||
<string name="uid_multi_user_scan_summary">When enabled, scans applications for all users, including work profiles</string>
|
||||
<string name="uid_scanner_setting_failed">Setting failed, please check permissions</string>
|
||||
<string name="uid_scanner_setting_error">Setting failed: %s</string>
|
||||
<string name="clean_runtime_environment">Clean Runtime Environment</string>
|
||||
<string name="clean_runtime_environment_summary">Clean up runtime files and stop the scanner service</string>
|
||||
<string name="clean_runtime_environment_confirm">Are you sure you want to clean the runtime environment? This will stop the scanner service and remove related files.</string>
|
||||
<string name="clean_runtime_environment_success">Runtime environment cleaned successfully</string>
|
||||
<string name="clean_runtime_environment_failed">Failed to clean runtime environment</string>
|
||||
<string name="clean_runtime_environment_error">Error cleaning runtime environment: %s</string>
|
||||
</resources>
|
||||
@@ -1,5 +1,4 @@
|
||||
use crate::utils;
|
||||
use anyhow::{Context, Result};
|
||||
use anyhow::Result;
|
||||
use log::{info, warn};
|
||||
use std::{
|
||||
fs,
|
||||
|
||||
Reference in New Issue
Block a user