Refactor sepolicy.rules resolve app

This commit is contained in:
vvb2060
2023-03-08 14:43:41 +08:00
committed by John Wu
parent 362eea741f
commit 84e1bd7bc3
4 changed files with 14 additions and 7 deletions

View File

@@ -10,7 +10,7 @@ import com.topjohnwu.magisk.ui.home.HomeViewModel
import com.topjohnwu.magisk.view.MagiskDialog
import kotlinx.coroutines.launch
class EnvFixDialog(private val vm: HomeViewModel) : DialogEvent() {
class EnvFixDialog(private val vm: HomeViewModel, private val code: Int) : DialogEvent() {
override fun build(dialog: MagiskDialog) {
dialog.apply {
@@ -38,8 +38,10 @@ class EnvFixDialog(private val vm: HomeViewModel) : DialogEvent() {
}
}
if (Info.env.versionCode != BuildConfig.VERSION_CODE ||
if (code == 2 || // No rules block, module policy not loaded
Info.env.versionCode != BuildConfig.VERSION_CODE ||
Info.env.versionString != BuildConfig.VERSION_NAME) {
dialog.setMessage(R.string.env_full_fix_msg)
dialog.setButton(MagiskDialog.ButtonType.POSITIVE) {
text = android.R.string.ok
onClick {

View File

@@ -135,8 +135,9 @@ class HomeViewModel(
private suspend fun ensureEnv() {
if (magiskState == State.INVALID || checkedEnv) return
val cmd = "env_check ${Info.env.versionString} ${Info.env.versionCode}"
if (!Shell.cmd(cmd).await().isSuccess) {
EnvFixDialog(this).publish()
val code = Shell.cmd(cmd).await().code
if (code != 0) {
EnvFixDialog(this, code).publish()
}
checkedEnv = true
}