From c574f39ae3caf117bcae3deea7782ced335bf881 Mon Sep 17 00:00:00 2001 From: ShirkNeko <109797057+ShirkNeko@users.noreply.github.com> Date: Thu, 20 Nov 2025 20:28:00 +0800 Subject: [PATCH] kernel/manager: No longer need to add unmounting for default mount points --- kernel/umount_manager.c | 34 +------------- .../ultra/ui/screen/UmountManagerScreen.kt | 46 +++++++------------ userspace/ksud/src/init_event.rs | 6 +-- userspace/ksud/src/umount_manager.rs | 2 +- 4 files changed, 22 insertions(+), 66 deletions(-) diff --git a/kernel/umount_manager.c b/kernel/umount_manager.c index b901a19b..31e45b1e 100644 --- a/kernel/umount_manager.c +++ b/kernel/umount_manager.c @@ -33,44 +33,12 @@ static struct umount_entry *find_entry_locked(const char *path) return NULL; } -static int init_default_entries(void) -{ - int ret; - - const struct { - const char *path; - int flags; - } defaults[] = { - { "/odm", 0 }, - { "/system", 0 }, - { "/vendor", 0 }, - { "/product", 0 }, - { "/system_ext", 0 }, - { "/data/adb/modules", MNT_DETACH }, - { "/debug_ramdisk", MNT_DETACH }, - }; - - for (int i = 0; i < ARRAY_SIZE(defaults); i++) { - ret = ksu_umount_manager_add(defaults[i].path, - defaults[i].flags, - true); // is_default = true - if (ret) { - pr_err("Failed to add default entry: %s, ret=%d\n", - defaults[i].path, ret); - return ret; - } - } - - pr_info("Initialized %zu default umount entries\n", ARRAY_SIZE(defaults)); - return 0; -} - int ksu_umount_manager_init(void) { INIT_LIST_HEAD(&g_umount_mgr.entry_list); spin_lock_init(&g_umount_mgr.lock); - return init_default_entries(); + return 0; } void ksu_umount_manager_exit(void) diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/UmountManagerScreen.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/UmountManagerScreen.kt index 0e2206e3..a93de1d7 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/UmountManagerScreen.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/UmountManagerScreen.kt @@ -39,7 +39,6 @@ private val SPACING_LARGE = 16.dp data class UmountPathEntry( val path: String, val flags: Int, - val isDefault: Boolean ) @OptIn(ExperimentalMaterial3Api::class) @@ -291,10 +290,7 @@ fun UmountPathCard( Icon( imageVector = Icons.Filled.Folder, contentDescription = null, - tint = if (entry.isDefault) - MaterialTheme.colorScheme.primary - else - MaterialTheme.colorScheme.secondary, + tint = MaterialTheme.colorScheme.primary, modifier = Modifier.size(24.dp) ) @@ -311,35 +307,28 @@ fun UmountPathCard( append(context.getString(R.string.flags)) append(": ") append(entry.flags.toUmountFlagName(context)) - if (entry.isDefault) { - append(" | ") - append(context.getString(R.string.default_entry)) - } }, style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant ) } - - if (!entry.isDefault) { - IconButton( - onClick = { - scope.launch { - if (confirmDialog.awaitConfirm( - title = context.getString(R.string.confirm_delete), - content = context.getString(R.string.confirm_delete_umount_path, entry.path) - ) == ConfirmResult.Confirmed) { - onDelete() - } + IconButton( + onClick = { + scope.launch { + if (confirmDialog.awaitConfirm( + title = context.getString(R.string.confirm_delete), + content = context.getString(R.string.confirm_delete_umount_path, entry.path) + ) == ConfirmResult.Confirmed) { + onDelete() } } - ) { - Icon( - imageVector = Icons.Filled.Delete, - contentDescription = null, - tint = MaterialTheme.colorScheme.error - ) } + ) { + Icon( + imageVector = Icons.Filled.Delete, + contentDescription = null, + tint = MaterialTheme.colorScheme.error + ) } } } @@ -404,11 +393,10 @@ private fun parseUmountPaths(output: String): List { return lines.drop(2).mapNotNull { line -> val parts = line.trim().split(Regex("\\s+")) - if (parts.size >= 3) { + if (parts.size >= 2) { UmountPathEntry( path = parts[0], - flags = parts[1].toIntOrNull() ?: -1, - isDefault = parts[2].equals("Yes", ignoreCase = true) + flags = parts[1].toIntOrNull() ?: -1 ) } else null } diff --git a/userspace/ksud/src/init_event.rs b/userspace/ksud/src/init_event.rs index fafc0f28..674826e7 100644 --- a/userspace/ksud/src/init_event.rs +++ b/userspace/ksud/src/init_event.rs @@ -1,6 +1,3 @@ -use anyhow::{Context, Result}; -use log::{info, warn}; -use std::path::Path; #[cfg(target_arch = "aarch64")] use crate::kpm; use crate::module::{handle_updated_modules, prune_modules}; @@ -9,6 +6,9 @@ use crate::{ assets, defs, ksucalls, metamodule, restorecon, utils::{self}, }; +use anyhow::{Context, Result}; +use log::{info, warn}; +use std::path::Path; pub fn on_post_data_fs() -> Result<()> { ksucalls::report_post_fs_data(); diff --git a/userspace/ksud/src/umount_manager.rs b/userspace/ksud/src/umount_manager.rs index 578f2f39..c6711194 100644 --- a/userspace/ksud/src/umount_manager.rs +++ b/userspace/ksud/src/umount_manager.rs @@ -170,7 +170,7 @@ impl UmountManager { } pub fn init_umount_manager() -> Result { - let mut manager = UmountManager::new(None)?; + let manager = UmountManager::new(None)?; if !Path::new(CONFIG_FILE).exists() { manager.save_config()?;