From f5a8449664cc17533e8dc3bf27d3bfd087266224 Mon Sep 17 00:00:00 2001 From: Prateek <129204458+prateek-who@users.noreply.github.com> Date: Fri, 13 Feb 2026 20:29:15 +0530 Subject: [PATCH 1/4] Update PatchCommand.kt --- src/main/kotlin/app/morphe/cli/command/PatchCommand.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt b/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt index 2987f03..98219a0 100644 --- a/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt @@ -556,10 +556,7 @@ internal object PatchCommand : Callable { this@filterPatchSelection.withIndex().forEach patchLoop@{ (i, patch) -> val patchName = patch.name!! - val isManuallyDisabled = patchName in disabledPatches || i in disabledPatchesByIndex - if (isManuallyDisabled) return@patchLoop logger.info("\"$patchName\" disabled manually") - - // Make sure the patch is compatible with the supplied APK files package name and version. + // Check package compatibility first to avoid duplicate logs for multi-app patches. patch.compatiblePackages?.let { packages -> packages.singleOrNull { (name, _) -> name == packageName }?.let { (_, versions) -> if (versions?.isEmpty() == true) { @@ -587,6 +584,9 @@ internal object PatchCommand : Callable { return@let } ?: logger.fine("\"$patchName\" has no package constraints") + val isManuallyDisabled = patchName in disabledPatches || i in disabledPatchesByIndex + if (isManuallyDisabled) return@patchLoop logger.info("\"$patchName\" disabled manually") + val isEnabled = !exclusive && patch.use val isManuallyEnabled = patchName in enabledPatchesByName || i in enabledPatchesByIndex From dfe550d3e05936be0f5d1964920f706023b88707 Mon Sep 17 00:00:00 2001 From: Prateek <129204458+prateek-who@users.noreply.github.com> Date: Sat, 14 Feb 2026 15:18:49 +0530 Subject: [PATCH 2/4] Update PatchCommand.kt --- src/main/kotlin/app/morphe/cli/command/PatchCommand.kt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt b/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt index 3d2a348..f7cfafd 100644 --- a/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt @@ -556,10 +556,7 @@ internal object PatchCommand : Callable { this@filterPatchSelection.withIndex().forEach patchLoop@{ (i, patch) -> val patchName = patch.name!! - val isManuallyDisabled = patchName.lowercase() in disabledPatches || i in disabledPatchesByIndex - if (isManuallyDisabled) return@patchLoop logger.info("\"$patchName\" disabled manually") - - // Make sure the patch is compatible with the supplied APK files package name and version. + // Check package compatibility first to avoid duplicate logs for multi-app patches. patch.compatiblePackages?.let { packages -> packages.singleOrNull { (name, _) -> name == packageName }?.let { (_, versions) -> if (versions?.isEmpty() == true) { @@ -587,7 +584,7 @@ internal object PatchCommand : Callable { return@let } ?: logger.fine("\"$patchName\" has no package constraints") - val isManuallyDisabled = patchName in disabledPatches || i in disabledPatchesByIndex + val isManuallyDisabled = patchName.lowercase() in disabledPatches || i in disabledPatchesByIndex if (isManuallyDisabled) return@patchLoop logger.info("\"$patchName\" disabled manually") val isEnabled = !exclusive && patch.use From 4a8632ed62adb3ea14d008abf5725bfc74cbbf26 Mon Sep 17 00:00:00 2001 From: Prateek <129204458+prateek-who@users.noreply.github.com> Date: Sat, 14 Feb 2026 15:43:37 +0530 Subject: [PATCH 3/4] Update PatchCommand.kt --- src/main/kotlin/app/morphe/cli/command/PatchCommand.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt b/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt index f7cfafd..4619c78 100644 --- a/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt @@ -380,8 +380,11 @@ internal object PatchCommand : Callable { selection.filter { it.enabled != null }.associate { val enabledSelection = it.enabled!! - (enabledSelection.selector.name ?: patchesList[enabledSelection.selector.index!!].name!!) to - enabledSelection.options + val resolvedName = enabledSelection.selector.name?.let { userInput -> + patchesList.firstOrNull { it.name?.lowercase() == userInput.lowercase() }?.name ?: userInput + } ?: patchesList[enabledSelection.selector.index!!].name!! + + resolvedName to enabledSelection.options }.let(filteredPatches::setOptions) patcher += filteredPatches From a0385118db4b3b820c19f7fc80b889a57a268546 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sat, 14 Feb 2026 11:27:33 +0100 Subject: [PATCH 4/4] refactor --- src/main/kotlin/app/morphe/cli/command/PatchCommand.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt b/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt index 4619c78..56526e8 100644 --- a/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/morphe/cli/command/PatchCommand.kt @@ -381,7 +381,7 @@ internal object PatchCommand : Callable { val enabledSelection = it.enabled!! val resolvedName = enabledSelection.selector.name?.let { userInput -> - patchesList.firstOrNull { it.name?.lowercase() == userInput.lowercase() }?.name ?: userInput + patchesList.firstOrNull { it.name.equals(userInput, ignoreCase = true) }?.name ?: userInput } ?: patchesList[enabledSelection.selector.index!!].name!! resolvedName to enabledSelection.options