From 77416b6bf43629150ab188646ba805b725500d8f Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Tue, 31 Oct 2023 14:18:41 +0100 Subject: [PATCH 1/7] build: Bump dependencies --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e201af8..b9cd1a4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,9 +3,9 @@ apksig = "8.1.2" bcpkix-jdk18on = "1.76" jackson-module-kotlin = "2.14.3" jadb = "1.2.1" -kotlin-reflect = "1.9.0" +kotlin-reflect = "1.9.10" kotlin-test = "1.8.20-RC" -revanced-patcher = "18.0.0" +revanced-patcher = "19.0.0" binary-compatibility-validator = "0.13.2" [libraries] From cd73bd39ce7be5963a3c84ec43409b87c327579b Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Tue, 31 Oct 2023 14:23:54 +0100 Subject: [PATCH 2/7] fix: Catch exceptions when serializing invalid patch options --- src/main/kotlin/app/revanced/library/Options.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/app/revanced/library/Options.kt b/src/main/kotlin/app/revanced/library/Options.kt index 59715f4..9c1e8b5 100644 --- a/src/main/kotlin/app/revanced/library/Options.kt +++ b/src/main/kotlin/app/revanced/library/Options.kt @@ -30,7 +30,16 @@ object Options { .map { patch -> Patch( patch.name!!, - patch.options.values.map { option -> Option(option.key, option.value) } + patch.options.values.map { option -> + val optionValue = try { + option.value + } catch (e: PatchOptionException) { + logger.severe(e.toString()) + option.default + } + + Option(option.key, optionValue) + } ) } // See https://github.com/revanced/revanced-patches/pull/2434/commits/60e550550b7641705e81aa72acfc4faaebb225e7. From 58969683582e70f36d6ed169b41c37928a2cf602 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Tue, 31 Oct 2023 14:28:21 +0100 Subject: [PATCH 3/7] feat: Use better log messages when handling exceptions --- src/main/kotlin/app/revanced/library/Options.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/app/revanced/library/Options.kt b/src/main/kotlin/app/revanced/library/Options.kt index 9c1e8b5..d6fe351 100644 --- a/src/main/kotlin/app/revanced/library/Options.kt +++ b/src/main/kotlin/app/revanced/library/Options.kt @@ -34,7 +34,7 @@ object Options { val optionValue = try { option.value } catch (e: PatchOptionException) { - logger.severe(e.toString()) + logger.warning("Using default option value for the ${patch.name} patch: ${e.message}") option.default } @@ -80,7 +80,7 @@ object Options { try { patch.options[option] = value } catch (e: PatchOptionException) { - logger.severe(e.toString()) + logger.warning("Could not set option value for the ${patch.name} patch: ${e.message}") } } } From 8b89993505302c9c26970f5427a89b798e259b6f Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 31 Oct 2023 13:30:54 +0000 Subject: [PATCH 4/7] chore(release): 1.2.0-dev.1 [skip ci] # [1.2.0-dev.1](https://github.com/ReVanced/revanced-library/compare/v1.1.5...v1.2.0-dev.1) (2023-10-31) ### Bug Fixes * Catch exceptions when serializing invalid patch options ([cd73bd3](https://github.com/ReVanced/revanced-library/commit/cd73bd39ce7be5963a3c84ec43409b87c327579b)) ### Features * Use better log messages when handling exceptions ([5896968](https://github.com/ReVanced/revanced-library/commit/58969683582e70f36d6ed169b41c37928a2cf602)) --- CHANGELOG.md | 12 ++++++++++++ gradle.properties | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fd060df..f44ad7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [1.2.0-dev.1](https://github.com/ReVanced/revanced-library/compare/v1.1.5...v1.2.0-dev.1) (2023-10-31) + + +### Bug Fixes + +* Catch exceptions when serializing invalid patch options ([cd73bd3](https://github.com/ReVanced/revanced-library/commit/cd73bd39ce7be5963a3c84ec43409b87c327579b)) + + +### Features + +* Use better log messages when handling exceptions ([5896968](https://github.com/ReVanced/revanced-library/commit/58969683582e70f36d6ed169b41c37928a2cf602)) + ## [1.1.5](https://github.com/ReVanced/revanced-library/compare/v1.1.4...v1.1.5) (2023-10-23) ## [1.1.5-dev.1](https://github.com/ReVanced/revanced-library/compare/v1.1.4...v1.1.5-dev.1) (2023-10-23) diff --git a/gradle.properties b/gradle.properties index ce57a1a..9d4ceb0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 1.1.5 +version = 1.2.0-dev.1 From 6555fcdffeaa949ecd22e421fdcbedf02de267a2 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Fri, 3 Nov 2023 01:21:23 +0100 Subject: [PATCH 5/7] chore: Fix builds from bumping dependencies --- .../app/revanced/library/PatchOptionsTest.kt | 12 +++++++----- .../kotlin/app/revanced/library/PatchUtilsTest.kt | 14 +++++++++++--- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/test/kotlin/app/revanced/library/PatchOptionsTest.kt b/src/test/kotlin/app/revanced/library/PatchOptionsTest.kt index c9f5897..1d00932 100644 --- a/src/test/kotlin/app/revanced/library/PatchOptionsTest.kt +++ b/src/test/kotlin/app/revanced/library/PatchOptionsTest.kt @@ -3,8 +3,9 @@ package app.revanced.library import app.revanced.library.Options.setOptions import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.patch.BytecodePatch -import app.revanced.patcher.patch.options.types.BooleanPatchOption.Companion.booleanPatchOption -import app.revanced.patcher.patch.options.types.StringPatchOption.Companion.stringPatchOption +import app.revanced.patcher.patch.annotation.Patch +import app.revanced.patcher.patch.options.PatchOption.PatchExtensions.booleanPatchOption +import app.revanced.patcher.patch.options.PatchOption.PatchExtensions.stringPatchOption import org.junit.jupiter.api.MethodOrderer import org.junit.jupiter.api.Order import org.junit.jupiter.api.Test @@ -35,9 +36,10 @@ internal object PatchOptionsTest { private const val CHANGED_JSON = "[{\"patchName\":\"PatchOptionsTestPatch\",\"options\":[{\"key\":\"key1\",\"value\":\"test\"},{\"key\":\"key2\",\"value\":false}]}]" - object PatchOptionsTestPatch : BytecodePatch(name = "PatchOptionsTestPatch") { - var option1 by stringPatchOption("key1", null, "title1", "description1") - var option2 by booleanPatchOption("key2", true, "title2", "description2") + @Patch("PatchOptionsTestPatch") + object PatchOptionsTestPatch : BytecodePatch() { + var option1 by stringPatchOption("key1", null, null, "title1", "description1") + var option2 by booleanPatchOption("key2", true, null, "title2", "description2") override fun execute(context: BytecodeContext) { // Do nothing diff --git a/src/test/kotlin/app/revanced/library/PatchUtilsTest.kt b/src/test/kotlin/app/revanced/library/PatchUtilsTest.kt index 7ef090b..3f1293e 100644 --- a/src/test/kotlin/app/revanced/library/PatchUtilsTest.kt +++ b/src/test/kotlin/app/revanced/library/PatchUtilsTest.kt @@ -3,6 +3,7 @@ package app.revanced.library import app.revanced.patcher.PatchSet import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.patch.BytecodePatch +import app.revanced.patcher.patch.Patch import org.junit.jupiter.api.Test import kotlin.test.assertEquals @@ -42,9 +43,16 @@ internal object PatchUtilsTest { expected: String?, patches: PatchSet, compatiblePackageName: String ) = assertEquals(expected, PatchUtils.getMostCommonCompatibleVersion(patches, compatiblePackageName)) - private fun newPatch(packageName: String, vararg versions: String) = object : BytecodePatch( - compatiblePackages = setOf(CompatiblePackage(packageName, versions.toSet())) - ) { + private fun newPatch(packageName: String, vararg versions: String) = object : BytecodePatch() { + init { + // Set the compatible packages field to the supplied package name and versions reflectively, + // because the setter is private but needed for testing. + val compatiblePackagesField = Patch::class.java.getDeclaredField("compatiblePackages") + + compatiblePackagesField.isAccessible = true + compatiblePackagesField.set(this, setOf(CompatiblePackage(packageName, versions.toSet()))) + } + override fun execute(context: BytecodeContext) {} } } \ No newline at end of file From 1dc8e2e2eb76bcade9167be0c4b4a628ff114f63 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Fri, 3 Nov 2023 01:22:52 +0100 Subject: [PATCH 6/7] feat: Log warnings when compiling resources The logger in class `brut.util.OS` is responsible for logging the standard error output stream from invoking AAPT. Previously,only loggers with the name starting with `app.revanced` were shown. --- .../kotlin/app/revanced/library/logging/Logger.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/app/revanced/library/logging/Logger.kt b/src/main/kotlin/app/revanced/library/logging/Logger.kt index 2d1f7a7..3216d2c 100644 --- a/src/main/kotlin/app/revanced/library/logging/Logger.kt +++ b/src/main/kotlin/app/revanced/library/logging/Logger.kt @@ -7,6 +7,14 @@ import java.util.logging.SimpleFormatter @Suppress("MemberVisibilityCanBePrivate") object Logger { + /** + * Rules for allowed loggers. + */ + private val allowedLoggersRules = arrayOf Boolean>( + { startsWith("app.revanced") }, // ReVanced loggers. + { this == "" } // Logs warnings when compiling resources (Logger in class brut.util.OS). + ) + private val rootLogger = java.util.logging.Logger.getLogger("") /** @@ -64,7 +72,9 @@ object Logger { removeAllHandlers() val publishHandler = handler@{ log: String, level: Level, loggerName: String? -> - if (loggerName?.startsWith("app.revanced") != true) return@handler + loggerName?.let { name -> + if (allowedLoggersRules.none { it(name) }) return@handler + } log.toByteArray().let { if (level.intValue() > Level.WARNING.intValue()) From 9d39995f488167c46fb11d6d551f51e3e15d452e Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 3 Nov 2023 00:24:24 +0000 Subject: [PATCH 7/7] chore(release): 1.2.0-dev.2 [skip ci] # [1.2.0-dev.2](https://github.com/ReVanced/revanced-library/compare/v1.2.0-dev.1...v1.2.0-dev.2) (2023-11-03) ### Features * Log warnings when compiling resources ([1dc8e2e](https://github.com/ReVanced/revanced-library/commit/1dc8e2e2eb76bcade9167be0c4b4a628ff114f63)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f44ad7c..6d6ecd4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.2.0-dev.2](https://github.com/ReVanced/revanced-library/compare/v1.2.0-dev.1...v1.2.0-dev.2) (2023-11-03) + + +### Features + +* Log warnings when compiling resources ([1dc8e2e](https://github.com/ReVanced/revanced-library/commit/1dc8e2e2eb76bcade9167be0c4b4a628ff114f63)) + # [1.2.0-dev.1](https://github.com/ReVanced/revanced-library/compare/v1.1.5...v1.2.0-dev.1) (2023-10-31) diff --git a/gradle.properties b/gradle.properties index 9d4ceb0..9eac129 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 1.2.0-dev.1 +version = 1.2.0-dev.2