diff --git a/app/src/main/java/com/topjohnwu/magisk/model/entity/module/Module.kt b/app/src/main/java/com/topjohnwu/magisk/model/entity/module/Module.kt index 8017dea4d..1da190682 100644 --- a/app/src/main/java/com/topjohnwu/magisk/model/entity/module/Module.kt +++ b/app/src/main/java/com/topjohnwu/magisk/model/entity/module/Module.kt @@ -13,17 +13,21 @@ class Module(path: String) : BaseModule() { override var versionCode: Int = -1 override var description: String = "" - private val removeFile: SuFile = SuFile(path, "remove") - private val disableFile: SuFile = SuFile(path, "disable") - private val updateFile: SuFile = SuFile(path, "update") + private val removeFile = SuFile(path, "remove") + private val disableFile = SuFile(path, "disable") + private val updateFile = SuFile(path, "update") + private val ruleFile = SuFile(path, "sepolicy.rule") val updated: Boolean = updateFile.exists() var enable: Boolean = !disableFile.exists() set(enable) { + val dir = "$PERSIST/$id" field = if (enable) { + Shell.su("mkdir -p $dir", "cp -af $ruleFile $dir").submit() disableFile.delete() } else { + Shell.su("rm -rf $dir").submit() !disableFile.createNewFile() } } @@ -31,8 +35,10 @@ class Module(path: String) : BaseModule() { var remove: Boolean = removeFile.exists() set(remove) { field = if (remove) { + Shell.su("rm -rf $PERSIST/$id").submit() removeFile.createNewFile() } else { + Shell.su("cp -af $ruleFile $PERSIST/$id").submit() !removeFile.delete() } } @@ -54,6 +60,8 @@ class Module(path: String) : BaseModule() { companion object { + private const val PERSIST = "/sbin/.magisk/mirror/persist/magisk" + @WorkerThread fun loadModules(): List { val moduleList = mutableListOf()