From e8f2087a6ffa6077fb3a6a69e29f3aec72e2fc1b Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Fri, 25 Aug 2023 17:10:13 +0200 Subject: [PATCH 1/8] feat: load patches in lexicographical order This feature was lost in past commits --- src/main/kotlin/app/revanced/patcher/PatchBundleLoader.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/kotlin/app/revanced/patcher/PatchBundleLoader.kt b/src/main/kotlin/app/revanced/patcher/PatchBundleLoader.kt index c240152..160961f 100644 --- a/src/main/kotlin/app/revanced/patcher/PatchBundleLoader.kt +++ b/src/main/kotlin/app/revanced/patcher/PatchBundleLoader.kt @@ -3,6 +3,7 @@ package app.revanced.patcher import app.revanced.patcher.extensions.AnnotationExtensions.findAnnotationRecursively +import app.revanced.patcher.extensions.PatchExtensions.patchName import app.revanced.patcher.patch.Patch import app.revanced.patcher.patch.PatchClass import dalvik.system.DexClassLoader @@ -28,6 +29,8 @@ sealed class PatchBundleLoader private constructor( }.map { @Suppress("UNCHECKED_CAST") it as PatchClass + }.sortedBy { + it.patchName }.let { addAll(it) } } From 5ba0b47e60acd784faf794efa25626501ef09ac4 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 25 Aug 2023 15:12:46 +0000 Subject: [PATCH 2/8] chore(release): 14.2.0-dev.1 [skip ci] # [14.2.0-dev.1](https://github.com/ReVanced/revanced-patcher/compare/v14.1.0...v14.2.0-dev.1) (2023-08-25) ### Features * load patches in lexicographical order ([e8f2087](https://github.com/ReVanced/revanced-patcher/commit/e8f2087a6ffa6077fb3a6a69e29f3aec72e2fc1b)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index edd810b..769e215 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [14.2.0-dev.1](https://github.com/ReVanced/revanced-patcher/compare/v14.1.0...v14.2.0-dev.1) (2023-08-25) + + +### Features + +* load patches in lexicographical order ([e8f2087](https://github.com/ReVanced/revanced-patcher/commit/e8f2087a6ffa6077fb3a6a69e29f3aec72e2fc1b)) + # [14.1.0](https://github.com/ReVanced/revanced-patcher/compare/v14.0.0...v14.1.0) (2023-08-24) diff --git a/gradle.properties b/gradle.properties index da40006..f6bcb88 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 14.1.0 +version = 14.2.0-dev.1 From 37abb2db99c4cb1487365ffe3a484849af290f45 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sat, 26 Aug 2023 19:10:29 +0200 Subject: [PATCH 3/8] build: package the Java sources --- build.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 09e1f0d..eb19547 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -33,6 +33,10 @@ tasks { kotlin { jvmToolchain(11) } +java { + withSourcesJar() +} + publishing { repositories { mavenLocal() From 983563efb6d7c8d289464b8bf71a016b8a735630 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sat, 26 Aug 2023 19:14:29 +0200 Subject: [PATCH 4/8] feat: log when merging integrations --- src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt b/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt index eb44f79..66aa19c 100644 --- a/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt +++ b/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt @@ -107,6 +107,8 @@ class BytecodeContext internal constructor(private val options: PatcherOptions) override fun flush() { if (!merge) return + logger.info("Merging integrations") + this@Integrations.forEach { integrations -> MultiDexIO.readDexFile( true, From 86db64edff05cbfd161a4df5b9684dec18094830 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 26 Aug 2023 17:16:08 +0000 Subject: [PATCH 5/8] chore(release): 14.2.0-dev.2 [skip ci] # [14.2.0-dev.2](https://github.com/ReVanced/revanced-patcher/compare/v14.2.0-dev.1...v14.2.0-dev.2) (2023-08-26) ### Features * log when merging integrations ([983563e](https://github.com/ReVanced/revanced-patcher/commit/983563efb6d7c8d289464b8bf71a016b8a735630)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 769e215..5a80063 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [14.2.0-dev.2](https://github.com/ReVanced/revanced-patcher/compare/v14.2.0-dev.1...v14.2.0-dev.2) (2023-08-26) + + +### Features + +* log when merging integrations ([983563e](https://github.com/ReVanced/revanced-patcher/commit/983563efb6d7c8d289464b8bf71a016b8a735630)) + # [14.2.0-dev.1](https://github.com/ReVanced/revanced-patcher/compare/v14.1.0...v14.2.0-dev.1) (2023-08-25) diff --git a/gradle.properties b/gradle.properties index f6bcb88..be6abad 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 14.2.0-dev.1 +version = 14.2.0-dev.2 From 55d694579ac2718b9e2c61ca5f38419c3775ef87 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sat, 26 Aug 2023 19:42:33 +0200 Subject: [PATCH 6/8] perf: compare types of classes --- src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt b/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt index 66aa19c..deec951 100644 --- a/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt +++ b/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt @@ -116,7 +116,7 @@ class BytecodeContext internal constructor(private val options: PatcherOptions) null, null ).classes.forEach classDef@{ classDef -> - val existingClass = classes.find { it == classDef } ?: run { + val existingClass = classes.find { it.type == classDef.type } ?: run { logger.fine("Merging $classDef") classes.add(classDef) return@classDef From 4dedfb85cb00b71f592184307a46c8f5d343825c Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 26 Aug 2023 17:44:12 +0000 Subject: [PATCH 7/8] chore(release): 14.2.0-dev.3 [skip ci] # [14.2.0-dev.3](https://github.com/ReVanced/revanced-patcher/compare/v14.2.0-dev.2...v14.2.0-dev.3) (2023-08-26) ### Performance Improvements * compare types of classes ([55d6945](https://github.com/ReVanced/revanced-patcher/commit/55d694579ac2718b9e2c61ca5f38419c3775ef87)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a80063..300546b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [14.2.0-dev.3](https://github.com/ReVanced/revanced-patcher/compare/v14.2.0-dev.2...v14.2.0-dev.3) (2023-08-26) + + +### Performance Improvements + +* compare types of classes ([55d6945](https://github.com/ReVanced/revanced-patcher/commit/55d694579ac2718b9e2c61ca5f38419c3775ef87)) + # [14.2.0-dev.2](https://github.com/ReVanced/revanced-patcher/compare/v14.2.0-dev.1...v14.2.0-dev.2) (2023-08-26) diff --git a/gradle.properties b/gradle.properties index be6abad..8d71f21 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 14.2.0-dev.2 +version = 14.2.0-dev.3 From 64020eec49169f10c2c2f150531d0723dc8c91a6 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sat, 26 Aug 2023 20:58:07 +0200 Subject: [PATCH 8/8] chore: add multi-threading opportunity notice --- src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt b/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt index deec951..3374930 100644 --- a/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt +++ b/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt @@ -109,6 +109,7 @@ class BytecodeContext internal constructor(private val options: PatcherOptions) logger.info("Merging integrations") + // TODO: Multi-thread this. this@Integrations.forEach { integrations -> MultiDexIO.readDexFile( true,