Compare commits

...

9 Commits

Author SHA1 Message Date
semantic-release-bot
d9c3748314 chore(release): 2.195.0-dev.4 [skip ci]
# [2.195.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v2.195.0-dev.3...v2.195.0-dev.4) (2023-10-19)

### Bug Fixes

* **Reddit - Sanitize sharing links:** Restore compatibility with newer versions of the app ([c14642a](c14642a34b))
2023-10-19 15:07:41 +00:00
oSumAtrIX
c14642a34b fix(Reddit - Sanitize sharing links): Restore compatibility with newer versions of the app 2023-10-19 17:04:53 +02:00
semantic-release-bot
af2df3edd9 chore(release): 2.195.0-dev.3 [skip ci]
# [2.195.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v2.195.0-dev.2...v2.195.0-dev.3) (2023-10-19)

### Features

* **YouTube:** Add `Spoof device dimensions` patch ([b5a7258](b5a7258f74))
2023-10-19 01:10:15 +00:00
oSumAtrIX
b5a7258f74 feat(YouTube): Add Spoof device dimensions patch 2023-10-19 03:06:58 +02:00
LisoUseInAIKyrios
28fa499974 chore: fix typo 2023-10-14 14:27:27 +03:00
semantic-release-bot
5fa89b6846 chore(release): 2.195.0-dev.2 [skip ci]
# [2.195.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v2.195.0-dev.1...v2.195.0-dev.2) (2023-10-14)

### Bug Fixes

* Indent option description correctly ([0dc0676](0dc06768d9))
2023-10-14 10:18:19 +00:00
LisoUseInAIKyrios
9588a47880 chore: fix build 2023-10-14 13:14:46 +03:00
oSumAtrIX
0dc06768d9 fix: Indent option description correctly 2023-10-14 05:46:24 +02:00
oSumAtrIX
a04232ea91 build: Publish artifacts on Jitpack 2023-10-14 04:50:43 +02:00
9 changed files with 159 additions and 26 deletions

View File

@@ -1,3 +1,24 @@
# [2.195.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v2.195.0-dev.3...v2.195.0-dev.4) (2023-10-19)
### Bug Fixes
* **Reddit - Sanitize sharing links:** Restore compatibility with newer versions of the app ([1671d8d](https://github.com/ReVanced/revanced-patches/commit/1671d8d826a08273fae5ccffc4a4ebfef9648fe2))
# [2.195.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v2.195.0-dev.2...v2.195.0-dev.3) (2023-10-19)
### Features
* **YouTube:** Add `Spoof device dimensions` patch ([c8d409e](https://github.com/ReVanced/revanced-patches/commit/c8d409e1dbda6ac45fef01912ce7afad1022b4b7))
# [2.195.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v2.195.0-dev.1...v2.195.0-dev.2) (2023-10-14)
### Bug Fixes
* Indent option description correctly ([d4a9ea1](https://github.com/ReVanced/revanced-patches/commit/d4a9ea1f6c7ab9d25fd60695cce0965c7b5269a4))
# [2.195.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v2.194.1-dev.1...v2.195.0-dev.1) (2023-10-13)

View File

@@ -1,6 +1,9 @@
import org.gradle.kotlin.dsl.support.listFilesOrdered
plugins {
kotlin("jvm") version "1.8.20"
alias(libs.plugins.ksp)
`maven-publish`
}
group = "app.revanced"
@@ -27,6 +30,7 @@ dependencies {
implementation(libs.guava)
// Used in JsonGenerator.
implementation(libs.gson)
// A dependency to the Android library unfortunately fails the build, which is why this is required.
compileOnly(project("dummy"))
@@ -40,40 +44,74 @@ kotlin {
tasks {
register<DefaultTask>("generateBundle") {
description = "Generate dex files from build and bundle them in the jar file"
dependsOn(build)
doLast {
val androidHome = System.getenv("ANDROID_HOME") ?: throw GradleException("ANDROID_HOME not found")
val d8 = "${androidHome}/build-tools/33.0.1/d8"
val input = configurations.archives.get().allArtifacts.files.files.first().absolutePath
val work = layout.buildDirectory.dir("libs").get().asFile
val d8 = File(System.getenv("ANDROID_HOME")).resolve("build-tools")
.listFilesOrdered().last().resolve("d8").absolutePath
val artifacts = configurations.archives.get().allArtifacts.files.files.first().absolutePath
val workingDirectory = layout.buildDirectory.dir("libs").get().asFile
exec {
workingDir = work
commandLine = listOf(d8, input)
workingDir = workingDirectory
commandLine = listOf(d8, artifacts)
}
exec {
workingDir = work
commandLine = listOf("zip", "-u", input, "classes.dex")
workingDir = workingDirectory
commandLine = listOf("zip", "-u", artifacts, "classes.dex")
}
}
}
register<JavaExec>("generateMeta") {
description = "Generate metadata for this bundle"
dependsOn(build)
classpath = sourceSets["main"].runtimeClasspath
mainClass.set("app.revanced.meta.PatchesFileGenerator")
}
// Dummy task to fix the Gradle semantic-release plugin.
// Remove this if you forked it to support building only.
// Tracking issue: https://github.com/KengoTODA/gradle-semantic-release-plugin/issues/435
register<DefaultTask>("publish") {
group = "publish"
description = "Dummy task"
dependsOn(named("generateBundle"), named("generateMeta"))
// Required to run tasks because Gradle semantic-release plugin runs the publish task.
// Tracking: https://github.com/KengoTODA/gradle-semantic-release-plugin/issues/435
named("publish") {
dependsOn("generateBundle")
dependsOn("generateMeta")
}
}
publishing {
publications {
create<MavenPublication>("revanced-patches-publication") {
from(components["java"])
pom {
name = "ReVanced Patches"
description = "Patches for ReVanced."
url = "https://revanced.app"
licenses {
license {
name = "GNU General Public License v3.0"
url = "https://www.gnu.org/licenses/gpl-3.0.en.html"
}
}
developers {
developer {
id = "ReVanced"
name = "ReVanced"
email = "contact@revanced.app"
}
}
scm {
connection = "scm:git:git://github.com/revanced/revanced-patches.git"
developerConnection = "scm:git:git@github.com:revanced/revanced-patches.git"
url = "https://github.com/revanced/revanced-patches"
}
}
}
}
}

View File

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

File diff suppressed because one or more lines are too long

View File

@@ -3,7 +3,7 @@ package app.revanced.patches.reddit.misc.tracking.url.fingerprints
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
object ShareLinkFormatterFingerprint : MethodFingerprint(
returnType = "Ljava/lang/String;",
parameters = listOf("Ljava/lang/String;", "Ljava/util/Map;"),
strings = listOf("uri.getQueryParameters(name)", "uri.queryParameterNames", "newUriBuilder.build().toString()"),
customFingerprint = { methodDef, classDef ->
methodDef.definingClass.startsWith("Lcom/reddit/sharing/") && classDef.sourceFile == "UrlUtil.kt"
}
)

View File

@@ -55,7 +55,10 @@ object CustomBrandingPatch : ResourcePatch() {
Each of these folders has to have the following files:
${iconResourceFileNames.joinToString("\n") { "- $it" }}
""".trimIndent()
"""
.split("\n")
.joinToString("\n") { it.trimIndent() } // Remove the leading whitespace from each line.
.trimIndent(), // Remove the leading newline.
)
override fun execute(context: ResourceContext) {

View File

@@ -0,0 +1,63 @@
package app.revanced.patches.youtube.misc.dimensions.spoof
import app.revanced.extensions.exception
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.annotation.CompatiblePackage
import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patches.shared.settings.preference.impl.StringResource
import app.revanced.patches.shared.settings.preference.impl.SwitchPreference
import app.revanced.patches.youtube.misc.dimensions.spoof.fingerprints.DeviceDimensionsModelToStringFingerprint
import app.revanced.patches.youtube.misc.integrations.IntegrationsPatch
import app.revanced.patches.youtube.misc.settings.SettingsPatch
@Patch(
name = "Spoof device dimensions",
description = "Spoofs the device dimensions in order to unlock higher video qualities " +
"that may not be available on your device.",
dependencies = [IntegrationsPatch::class, SettingsPatch::class],
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube",
[
"18.38.44"
]
)
]
)
object SpoofDeviceDimensionsPatch : BytecodePatch(
setOf(DeviceDimensionsModelToStringFingerprint)
) {
private const val INTEGRATIONS_CLASS_DESCRIPTOR =
"Lapp/revanced/integrations/patches/spoof/SpoofDeviceDimensionsPatch;"
override fun execute(context: BytecodeContext) {
SettingsPatch.PreferenceScreen.MISC.addPreferences(
SwitchPreference(
"revanced_spoof_device_dimensions",
StringResource("revanced_spoof_device_dimensions_title", "Spoof device dimensions"),
StringResource("revanced_spoof_device_dimensions_summary_on", "Device dimensions spoofed"),
StringResource("revanced_spoof_device_dimensions_summary_off", "Device dimensions not spoofed"),
)
)
DeviceDimensionsModelToStringFingerprint.result
?.mutableClass?.methods?.find { method -> method.name == "<init>" }
// Override the parameters containing the dimensions.
?.addInstructions(
1, // Add after super call.
mapOf(
1 to "MinHeightOrWidth", // p1 = min height
2 to "MaxHeightOrWidth", // p2 = max height
3 to "MinHeightOrWidth", // p3 = min width
4 to "MaxHeightOrWidth" // p4 = max width
).map { (parameter, method) ->
"""
invoke-static { p$parameter }, $INTEGRATIONS_CLASS_DESCRIPTOR->get$method(I)I
move-result p$parameter
"""
}.joinToString("\n") { it }
) ?: throw DeviceDimensionsModelToStringFingerprint.exception
}
}

View File

@@ -0,0 +1,8 @@
package app.revanced.patches.youtube.misc.dimensions.spoof.fingerprints
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
object DeviceDimensionsModelToStringFingerprint : MethodFingerprint(
returnType = "L",
strings = listOf("minh.", ";maxh.")
)