Commit 350144df authored by vvb2060's avatar vvb2060 Committed by John Wu

Do not allow remove the module to be updated

parent 9ac0f11d
...@@ -5,6 +5,7 @@ import com.topjohnwu.superuser.Shell ...@@ -5,6 +5,7 @@ import com.topjohnwu.superuser.Shell
import com.topjohnwu.superuser.io.SuFile import com.topjohnwu.superuser.io.SuFile
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import java.util.*
class LocalModule(path: String) : Module() { class LocalModule(path: String) : Module() {
override var id: String = "" override var id: String = ""
...@@ -44,13 +45,14 @@ class LocalModule(path: String) : Module() { ...@@ -44,13 +45,14 @@ class LocalModule(path: String) : Module() {
get() = removeFile.exists() get() = removeFile.exists()
set(remove) { set(remove) {
if (remove) { if (remove) {
if (updateFile.exists()) return
removeFile.createNewFile() removeFile.createNewFile()
if (Const.Version.atLeast_21_2()) if (Const.Version.atLeast_21_2())
Shell.su("copy_sepolicy_rules").submit() Shell.su("copy_sepolicy_rules").submit()
else else
Shell.su("rm -rf $PERSIST/$id").submit() Shell.su("rm -rf $PERSIST/$id").submit()
} else { } else {
!removeFile.delete() removeFile.delete()
if (Const.Version.atLeast_21_2()) if (Const.Version.atLeast_21_2())
Shell.su("copy_sepolicy_rules").submit() Shell.su("copy_sepolicy_rules").submit()
else else
...@@ -83,7 +85,7 @@ class LocalModule(path: String) : Module() { ...@@ -83,7 +85,7 @@ class LocalModule(path: String) : Module() {
.orEmpty() .orEmpty()
.filter { !it.isFile } .filter { !it.isFile }
.map { LocalModule("${Const.MAGISK_PATH}/${it.name}") } .map { LocalModule("${Const.MAGISK_PATH}/${it.name}") }
.sortedBy { it.name.toLowerCase() } .sortedBy { it.name.lowercase(Locale.ROOT) }
} }
} }
} }
...@@ -138,6 +138,7 @@ ...@@ -138,6 +138,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clickable="true" android:clickable="true"
android:enabled="@{!item.updated}"
android:focusable="true" android:focusable="true"
android:onClick="@{() -> item.delete(viewModel)}" android:onClick="@{() -> item.delete(viewModel)}"
android:text="@{item.removed ? @string/module_state_restore : @string/module_state_remove}" android:text="@{item.removed ? @string/module_state_restore : @string/module_state_remove}"
......
...@@ -765,6 +765,8 @@ install_module() { ...@@ -765,6 +765,8 @@ install_module() {
if $BOOTMODE; then if $BOOTMODE; then
# Update info for Magisk app # Update info for Magisk app
mktouch $NVBASE/modules/$MODID/update mktouch $NVBASE/modules/$MODID/update
rm -rf $NVBASE/modules/$MODID/remove 2>/dev/null
rm -rf $NVBASE/modules/$MODID/disable 2>/dev/null
cp -af $MODPATH/module.prop $NVBASE/modules/$MODID/module.prop cp -af $MODPATH/module.prop $NVBASE/modules/$MODID/module.prop
fi fi
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment