You've already forked KernelSU-Next
mirror of
https://github.com/KernelSU-Next/KernelSU-Next.git
synced 2025-08-27 23:46:34 +00:00
manager: keep mount system preference persistent
This commit is contained in:
@@ -165,9 +165,7 @@ fun BackupRestoreScreen(navigator: DestinationsNavigator) {
|
|||||||
val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE)
|
val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE)
|
||||||
|
|
||||||
var useOverlayFs by rememberSaveable {
|
var useOverlayFs by rememberSaveable {
|
||||||
mutableStateOf(
|
mutableStateOf(readMountSystemFile())
|
||||||
prefs.getBoolean("use_overlay_fs", false)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val moduleRestore = stringResource(id = R.string.module_restore)
|
val moduleRestore = stringResource(id = R.string.module_restore)
|
||||||
|
|||||||
@@ -224,9 +224,11 @@ fun SettingScreen(navigator: DestinationsNavigator) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var useOverlayFs by rememberSaveable {
|
var useOverlayFs by rememberSaveable {
|
||||||
mutableStateOf(
|
mutableStateOf(readMountSystemFile())
|
||||||
prefs.getBoolean("use_overlay_fs", false)
|
}
|
||||||
)
|
|
||||||
|
LaunchedEffect(Unit) {
|
||||||
|
useOverlayFs = readMountSystemFile()
|
||||||
}
|
}
|
||||||
|
|
||||||
var showRebootDialog by remember { mutableStateOf(false) }
|
var showRebootDialog by remember { mutableStateOf(false) }
|
||||||
@@ -244,8 +246,10 @@ fun SettingScreen(navigator: DestinationsNavigator) {
|
|||||||
useOverlayFs = it
|
useOverlayFs = it
|
||||||
if (useOverlayFs) {
|
if (useOverlayFs) {
|
||||||
moduleBackup()
|
moduleBackup()
|
||||||
|
updateMountSystemFile(true)
|
||||||
} else {
|
} else {
|
||||||
moduleMigration()
|
moduleMigration()
|
||||||
|
updateMountSystemFile(false)
|
||||||
}
|
}
|
||||||
if (isManager) install()
|
if (isManager) install()
|
||||||
showRebootDialog = true
|
showRebootDialog = true
|
||||||
|
|||||||
@@ -37,10 +37,16 @@ private fun ksuDaemonOverlayfsPath(): String {
|
|||||||
return ksuApp.applicationInfo.nativeLibraryDir + File.separator + "libksud_overlayfs.so"
|
return ksuApp.applicationInfo.nativeLibraryDir + File.separator + "libksud_overlayfs.so"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun readMountSystemFile(): Boolean {
|
||||||
|
val shell = getRootShell()
|
||||||
|
val filePath = "/data/adb/ksu/mount_system"
|
||||||
|
val result = ShellUtils.fastCmd(shell, "cat $filePath").trim()
|
||||||
|
return result == "OVERLAYFS"
|
||||||
|
}
|
||||||
|
|
||||||
// Get the path based on the user's choice
|
// Get the path based on the user's choice
|
||||||
fun getKsuDaemonPath(): String {
|
fun getKsuDaemonPath(): String {
|
||||||
val prefs = ksuApp.getSharedPreferences("settings", Context.MODE_PRIVATE)
|
val useOverlayFs = readMountSystemFile()
|
||||||
val useOverlayFs = prefs.getBoolean("use_overlay_fs", false)
|
|
||||||
|
|
||||||
return if (useOverlayFs) {
|
return if (useOverlayFs) {
|
||||||
ksuDaemonOverlayfsPath()
|
ksuDaemonOverlayfsPath()
|
||||||
@@ -49,6 +55,16 @@ fun getKsuDaemonPath(): String {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun updateMountSystemFile(useOverlayFs: Boolean) {
|
||||||
|
val shell = getRootShell()
|
||||||
|
val filePath = "/data/adb/ksu/mount_system"
|
||||||
|
if (useOverlayFs) {
|
||||||
|
ShellUtils.fastCmd(shell, "echo -n OVERLAYFS > $filePath")
|
||||||
|
} else {
|
||||||
|
ShellUtils.fastCmd(shell, "echo -n MAGIC_MOUNT > $filePath")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data class FlashResult(val code: Int, val err: String, val showReboot: Boolean) {
|
data class FlashResult(val code: Int, val err: String, val showReboot: Boolean) {
|
||||||
constructor(result: Shell.Result, showReboot: Boolean) : this(result.code, result.err.joinToString("\n"), showReboot)
|
constructor(result: Shell.Result, showReboot: Boolean) : this(result.code, result.err.joinToString("\n"), showReboot)
|
||||||
constructor(result: Shell.Result) : this(result, result.isSuccess)
|
constructor(result: Shell.Result) : this(result, result.isSuccess)
|
||||||
|
|||||||
Reference in New Issue
Block a user