diff --git a/src/main/kotlin/app/revanced/cli/MainCommand.kt b/src/main/kotlin/app/revanced/cli/MainCommand.kt index f46096a9..c78072f0 100644 --- a/src/main/kotlin/app/revanced/cli/MainCommand.kt +++ b/src/main/kotlin/app/revanced/cli/MainCommand.kt @@ -2,7 +2,7 @@ package app.revanced.cli import app.revanced.patcher.annotation.Name import app.revanced.patcher.extensions.findAnnotationRecursively -import app.revanced.patcher.util.patch.PatchLoader +import app.revanced.patcher.util.patch.implementation.JarPatchBundle import app.revanced.utils.adb.Adb import app.revanced.utils.patcher.addPatchesFiltered import app.revanced.utils.signature.Signature @@ -20,7 +20,7 @@ internal object MainCommand : Runnable { internal var includedPatches = arrayOf() @Option(names = ["-p", "--patches"], description = ["One or more bundles of patches"]) - internal var patchBundles = arrayOf() + internal var patchBundles = arrayOf() @Option(names = ["-t", "--temp-dir"], description = ["Temporal resource cache directory"], required = true) internal lateinit var cacheDirectory: String @@ -54,8 +54,8 @@ internal object MainCommand : Runnable { override fun run() { if (listOnly) { - for (patchBundle in patchBundles) - for (it in PatchLoader.loadFromFile(patchBundle)) + for (patchBundlePath in patchBundles) + for (it in JarPatchBundle(patchBundlePath).loadPatches()) println( "[available] ${ it.javaClass.findAnnotationRecursively( @@ -90,7 +90,7 @@ internal object MainCommand : Runnable { if (clean) File(cacheDirectory).deleteRecursively() adb?.deploy() - + if (clean) outputFile.delete() } } diff --git a/src/main/kotlin/app/revanced/utils/patcher/Patcher.kt b/src/main/kotlin/app/revanced/utils/patcher/Patcher.kt index fc2cf62a..92c31647 100644 --- a/src/main/kotlin/app/revanced/utils/patcher/Patcher.kt +++ b/src/main/kotlin/app/revanced/utils/patcher/Patcher.kt @@ -7,7 +7,7 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.data.base.Data import app.revanced.patcher.extensions.findAnnotationRecursively import app.revanced.patcher.patch.base.Patch -import app.revanced.patcher.util.patch.PatchLoader +import app.revanced.patcher.util.patch.implementation.JarPatchBundle fun Patcher.addPatchesFiltered( packageCompatibilityFilter: Boolean = true, @@ -19,7 +19,7 @@ fun Patcher.addPatchesFiltered( MainCommand.patchBundles.forEach { bundle -> val includedPatches = mutableListOf>() - PatchLoader.loadFromFile(bundle).forEach patch@{ p -> + JarPatchBundle(bundle).loadPatches().forEach patch@{ p -> val patch = p.getDeclaredConstructor().newInstance() val compatibilityAnnotation = patch.javaClass.findAnnotationRecursively(Compatibility::class.java) @@ -41,13 +41,13 @@ fun Patcher.addPatchesFiltered( } - for (compatiblePackage in compatibilityAnnotation.compatiblePackages) { + compatibilityAnnotation.compatiblePackages.forEach { compatiblePackage -> if (packageCompatibilityFilter && compatiblePackage.name != packageName) { println("$prefix: Package name not matching ${compatiblePackage.name}.") return@patch } - if (!packageVersionCompatibilityFilter || compatiblePackage.versions.any { it == packageVersion }) continue + if (!packageVersionCompatibilityFilter || compatiblePackage.versions.any { it == packageVersion }) return@patch println("$prefix: Unsupported version.") return@patch } @@ -61,8 +61,13 @@ fun Patcher.addPatchesFiltered( } fun Patcher.applyPatchesPrint() { - for ((patch, result) in this.applyPatches()) { - println("[${if (result.isFailure) "error" else "success"}] $patch") + this.applyPatches().forEach { (patch, result) -> + if (result.isSuccess) { + println("[success] $patch") + return@forEach + } + println("[error] $patch:") + result.exceptionOrNull()!!.printStackTrace() } }