Compare commits

...

15 Commits

Author SHA1 Message Date
semantic-release-bot
49e6081286 chore(release): 1.2.0 [skip ci]
# [1.2.0](https://github.com/ReVanced/revanced-library/compare/v1.1.5...v1.2.0) (2023-11-03)

### Bug Fixes

* Catch exceptions when serializing invalid patch options ([cd73bd3](cd73bd39ce))

### Features

* Log warnings when compiling resources ([1dc8e2e](1dc8e2e2eb))
* Use better log messages when handling exceptions ([5896968](5896968358))
2023-11-03 17:20:21 +00:00
oSumAtrIX
de4276630b chore: Merge branch dev to main (#15) 2023-11-03 18:18:22 +01:00
semantic-release-bot
9d39995f48 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](1dc8e2e2eb))
2023-11-03 00:24:24 +00:00
oSumAtrIX
1dc8e2e2eb 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.
2023-11-03 01:22:52 +01:00
oSumAtrIX
6555fcdffe chore: Fix builds from bumping dependencies 2023-11-03 01:21:23 +01:00
semantic-release-bot
8b89993505 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](cd73bd39ce))

### Features

* Use better log messages when handling exceptions ([5896968](5896968358))
2023-10-31 13:30:54 +00:00
oSumAtrIX
5896968358 feat: Use better log messages when handling exceptions 2023-10-31 14:28:21 +01:00
oSumAtrIX
cd73bd39ce fix: Catch exceptions when serializing invalid patch options 2023-10-31 14:23:54 +01:00
oSumAtrIX
77416b6bf4 build: Bump dependencies 2023-10-31 14:18:41 +01:00
semantic-release-bot
4227a57fc7 chore(release): 1.1.5 [skip ci]
## [1.1.5](https://github.com/ReVanced/revanced-library/compare/v1.1.4...v1.1.5) (2023-10-23)
2023-10-23 00:06:24 +00:00
oSumAtrIX
cc3de84d25 chore: Merge branch dev to main (#14) 2023-10-23 02:04:28 +02:00
semantic-release-bot
0545341f9a chore(release): 1.1.5-dev.1 [skip ci]
## [1.1.5-dev.1](https://github.com/ReVanced/revanced-library/compare/v1.1.4...v1.1.5-dev.1) (2023-10-23)
2023-10-23 00:03:37 +00:00
oSumAtrIX
035870e08d build: Simplify declaration of repositories 2023-10-22 23:37:19 +02:00
oSumAtrIX
b58ea35f6a build(Needs bump): Bump dependencies 2023-10-22 23:36:31 +02:00
oSumAtrIX
3f61394f0a build: Bump Kotlin Gradle plugin version 2023-10-22 16:14:45 +02:00
9 changed files with 88 additions and 25 deletions

View File

@@ -1,3 +1,39 @@
# [1.2.0](https://github.com/ReVanced/revanced-library/compare/v1.1.5...v1.2.0) (2023-11-03)
### Bug Fixes
* Catch exceptions when serializing invalid patch options ([cd73bd3](https://github.com/ReVanced/revanced-library/commit/cd73bd39ce7be5963a3c84ec43409b87c327579b))
### Features
* Log warnings when compiling resources ([1dc8e2e](https://github.com/ReVanced/revanced-library/commit/1dc8e2e2eb76bcade9167be0c4b4a628ff114f63))
* Use better log messages when handling exceptions ([5896968](https://github.com/ReVanced/revanced-library/commit/58969683582e70f36d6ed169b41c37928a2cf602))
# [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)
### 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)
## [1.1.4](https://github.com/ReVanced/revanced-library/compare/v1.1.3...v1.1.4) (2023-10-12)

View File

@@ -1,11 +1,18 @@
plugins {
kotlin("jvm") version "1.9.0"
kotlin("jvm") version "1.9.10"
alias(libs.plugins.binary.compatibility.validator)
`maven-publish`
}
group = "app.revanced"
repositories {
mavenCentral()
mavenLocal()
maven { url = uri("https://jitpack.io") }
google()
}
dependencies {
implementation(libs.revanced.patcher)
implementation(libs.kotlin.reflect)

View File

@@ -1,4 +1,4 @@
org.gradle.parallel = true
org.gradle.caching = true
kotlin.code.style = official
version = 1.1.4
version = 1.2.0

View File

@@ -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 = "17.0.0"
revanced-patcher = "19.0.0"
binary-compatibility-validator = "0.13.2"
[libraries]
@@ -15,7 +15,7 @@ jackson-module-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-
jadb = { module = "app.revanced:jadb", version.ref = "jadb" }
kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin-reflect" }
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin-test" }
revanced-patcher = { module = "app.revanced.revanced-patcher:revanced-patcher", version.ref = "revanced-patcher" }
revanced-patcher = { module = "app.revanced:revanced-patcher", version.ref = "revanced-patcher" }
[plugins]
binary-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binary-compatibility-validator" }

View File

@@ -1,10 +1 @@
dependencyResolutionManagement {
repositories {
mavenCentral()
mavenLocal()
maven { url = uri("https://jitpack.io") }
google()
}
}
rootProject.name = "revanced-library"

View File

@@ -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.warning("Using default option value for the ${patch.name} patch: ${e.message}")
option.default
}
Option(option.key, optionValue)
}
)
}
// See https://github.com/revanced/revanced-patches/pull/2434/commits/60e550550b7641705e81aa72acfc4faaebb225e7.
@@ -71,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}")
}
}
}

View File

@@ -7,6 +7,14 @@ import java.util.logging.SimpleFormatter
@Suppress("MemberVisibilityCanBePrivate")
object Logger {
/**
* Rules for allowed loggers.
*/
private val allowedLoggersRules = arrayOf<String.() -> 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())

View File

@@ -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

View File

@@ -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) {}
}
}