manager: extract flashWithIO
This commit is contained in:
@@ -47,7 +47,7 @@ import me.weishu.kernelsu.ui.component.KeyEventBlocker
|
|||||||
import me.weishu.kernelsu.ui.util.LkmSelection
|
import me.weishu.kernelsu.ui.util.LkmSelection
|
||||||
import me.weishu.kernelsu.ui.util.LocalSnackbarHost
|
import me.weishu.kernelsu.ui.util.LocalSnackbarHost
|
||||||
import me.weishu.kernelsu.ui.util.installBoot
|
import me.weishu.kernelsu.ui.util.installBoot
|
||||||
import me.weishu.kernelsu.ui.util.installModule
|
import me.weishu.kernelsu.ui.util.flashModule
|
||||||
import me.weishu.kernelsu.ui.util.reboot
|
import me.weishu.kernelsu.ui.util.reboot
|
||||||
import me.weishu.kernelsu.ui.util.restoreBoot
|
import me.weishu.kernelsu.ui.util.restoreBoot
|
||||||
import me.weishu.kernelsu.ui.util.uninstallPermanently
|
import me.weishu.kernelsu.ui.util.uninstallPermanently
|
||||||
@@ -194,7 +194,7 @@ fun flashIt(
|
|||||||
onStderr
|
onStderr
|
||||||
)
|
)
|
||||||
|
|
||||||
is FlashIt.FlashModule -> installModule(flashIt.uri, onFinish, onStdout, onStderr)
|
is FlashIt.FlashModule -> flashModule(flashIt.uri, onFinish, onStdout, onStderr)
|
||||||
|
|
||||||
FlashIt.FlashRestore -> restoreBoot(onFinish, onStdout, onStderr)
|
FlashIt.FlashRestore -> restoreBoot(onFinish, onStdout, onStderr)
|
||||||
|
|
||||||
|
|||||||
@@ -126,7 +126,30 @@ fun uninstallModule(id: String): Boolean {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
fun installModule(
|
private fun flashWithIO(
|
||||||
|
cmd: String,
|
||||||
|
onStdout: (String) -> Unit,
|
||||||
|
onStderr: (String) -> Unit
|
||||||
|
): Shell.Result {
|
||||||
|
|
||||||
|
val stdoutCallback: CallbackList<String?> = object : CallbackList<String?>() {
|
||||||
|
override fun onAddElement(s: String?) {
|
||||||
|
onStdout(s ?: "")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val stderrCallback: CallbackList<String?> = object : CallbackList<String?>() {
|
||||||
|
override fun onAddElement(s: String?) {
|
||||||
|
onStderr(s ?: "")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return withNewRootShell {
|
||||||
|
newJob().add(cmd).to(stdoutCallback, stderrCallback).exec()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun flashModule(
|
||||||
uri: Uri,
|
uri: Uri,
|
||||||
onFinish: (Boolean, Int) -> Unit,
|
onFinish: (Boolean, Int) -> Unit,
|
||||||
onStdout: (String) -> Unit,
|
onStdout: (String) -> Unit,
|
||||||
@@ -139,22 +162,7 @@ fun installModule(
|
|||||||
this?.copyTo(output)
|
this?.copyTo(output)
|
||||||
}
|
}
|
||||||
val cmd = "module install ${file.absolutePath}"
|
val cmd = "module install ${file.absolutePath}"
|
||||||
|
val result = flashWithIO("${getKsuDaemonPath()} $cmd", onStdout, onStderr)
|
||||||
val stdoutCallback: CallbackList<String?> = object : CallbackList<String?>() {
|
|
||||||
override fun onAddElement(s: String?) {
|
|
||||||
onStdout(s ?: "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val stderrCallback: CallbackList<String?> = object : CallbackList<String?>() {
|
|
||||||
override fun onAddElement(s: String?) {
|
|
||||||
onStderr(s ?: "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val result = withNewRootShell {
|
|
||||||
newJob().add("${getKsuDaemonPath()} $cmd").to(stdoutCallback, stderrCallback).exec()
|
|
||||||
}
|
|
||||||
Log.i("KernelSU", "install module $uri result: $result")
|
Log.i("KernelSU", "install module $uri result: $result")
|
||||||
|
|
||||||
file.delete()
|
file.delete()
|
||||||
@@ -168,25 +176,7 @@ fun restoreBoot(
|
|||||||
onFinish: (Boolean, Int) -> Unit, onStdout: (String) -> Unit, onStderr: (String) -> Unit
|
onFinish: (Boolean, Int) -> Unit, onStdout: (String) -> Unit, onStderr: (String) -> Unit
|
||||||
): Boolean {
|
): Boolean {
|
||||||
val magiskboot = File(ksuApp.applicationInfo.nativeLibraryDir, "libmagiskboot.so")
|
val magiskboot = File(ksuApp.applicationInfo.nativeLibraryDir, "libmagiskboot.so")
|
||||||
|
val result = flashWithIO("${getKsuDaemonPath()} boot-restore -f --magiskboot $magiskboot", onStdout, onStderr)
|
||||||
val stdoutCallback: CallbackList<String?> = object : CallbackList<String?>() {
|
|
||||||
override fun onAddElement(s: String?) {
|
|
||||||
onStdout(s ?: "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val stderrCallback: CallbackList<String?> = object : CallbackList<String?>() {
|
|
||||||
override fun onAddElement(s: String?) {
|
|
||||||
onStderr(s ?: "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val result = withNewRootShell {
|
|
||||||
newJob().add("${getKsuDaemonPath()} boot-restore -f --magiskboot $magiskboot")
|
|
||||||
.to(stdoutCallback, stderrCallback)
|
|
||||||
.exec()
|
|
||||||
}
|
|
||||||
|
|
||||||
onFinish(result.isSuccess, result.code)
|
onFinish(result.isSuccess, result.code)
|
||||||
return result.isSuccess
|
return result.isSuccess
|
||||||
}
|
}
|
||||||
@@ -195,25 +185,7 @@ fun uninstallPermanently(
|
|||||||
onFinish: (Boolean, Int) -> Unit, onStdout: (String) -> Unit, onStderr: (String) -> Unit
|
onFinish: (Boolean, Int) -> Unit, onStdout: (String) -> Unit, onStderr: (String) -> Unit
|
||||||
): Boolean {
|
): Boolean {
|
||||||
val magiskboot = File(ksuApp.applicationInfo.nativeLibraryDir, "libmagiskboot.so")
|
val magiskboot = File(ksuApp.applicationInfo.nativeLibraryDir, "libmagiskboot.so")
|
||||||
|
val result = flashWithIO("${getKsuDaemonPath()} uninstall --magiskboot $magiskboot", onStdout, onStderr)
|
||||||
val stdoutCallback: CallbackList<String?> = object : CallbackList<String?>() {
|
|
||||||
override fun onAddElement(s: String?) {
|
|
||||||
onStdout(s ?: "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val stderrCallback: CallbackList<String?> = object : CallbackList<String?>() {
|
|
||||||
override fun onAddElement(s: String?) {
|
|
||||||
onStderr(s ?: "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val result = withNewRootShell {
|
|
||||||
newJob().add("${getKsuDaemonPath()} uninstall --magiskboot $magiskboot")
|
|
||||||
.to(stdoutCallback, stderrCallback)
|
|
||||||
.exec()
|
|
||||||
}
|
|
||||||
|
|
||||||
onFinish(result.isSuccess, result.code)
|
onFinish(result.isSuccess, result.code)
|
||||||
return result.isSuccess
|
return result.isSuccess
|
||||||
}
|
}
|
||||||
@@ -292,21 +264,7 @@ fun installBoot(
|
|||||||
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
|
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
|
||||||
cmd += " -o $downloadsDir"
|
cmd += " -o $downloadsDir"
|
||||||
|
|
||||||
val stdoutCallback: CallbackList<String?> = object : CallbackList<String?>() {
|
val result = flashWithIO("${getKsuDaemonPath()} $cmd", onStdout, onStderr)
|
||||||
override fun onAddElement(s: String?) {
|
|
||||||
onStdout(s ?: "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val stderrCallback: CallbackList<String?> = object : CallbackList<String?>() {
|
|
||||||
override fun onAddElement(s: String?) {
|
|
||||||
onStderr(s ?: "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val result = withNewRootShell {
|
|
||||||
newJob().add("${getKsuDaemonPath()} $cmd").to(stdoutCallback, stderrCallback).exec()
|
|
||||||
}
|
|
||||||
Log.i("KernelSU", "install boot result: ${result.isSuccess}")
|
Log.i("KernelSU", "install boot result: ${result.isSuccess}")
|
||||||
|
|
||||||
bootFile?.delete()
|
bootFile?.delete()
|
||||||
|
|||||||
Reference in New Issue
Block a user