Compare commits

..

2 Commits

Author SHA1 Message Date
semantic-release-bot
1041238632 chore(release): 2.200.1-dev.1 [skip ci]
## [2.200.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v2.200.0...v2.200.1-dev.1) (2023-11-23)

### Bug Fixes

* **YouTube - Enable tablet layout:** Respect the original device layout ([e88d6a8](e88d6a8bba))
2023-11-23 00:01:35 +00:00
oSumAtrIX
e88d6a8bba fix(YouTube - Enable tablet layout): Respect the original device layout 2023-11-23 00:59:32 +01:00
71 changed files with 351 additions and 288 deletions

View File

@@ -1,86 +1,3 @@
# [2.202.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v2.202.0-dev.3...v2.202.0-dev.4) (2023-12-01)
### Features
* **YouTube:** Support version `18.45.43` ([#3345](https://github.com/ReVanced/revanced-patches/issues/3345)) ([ff82a36](https://github.com/ReVanced/revanced-patches/commit/ff82a36e6cd661201169246497176493d7093b58))
# [2.202.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v2.202.0-dev.2...v2.202.0-dev.3) (2023-12-01)
### Bug Fixes
* **YouTube - Enable tablet layout:** Respect the original device layout ([cdbbe8f](https://github.com/ReVanced/revanced-patches/commit/cdbbe8f78d26f24e58362c7ef1da83bf689d52bb))
# [2.202.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v2.202.0-dev.1...v2.202.0-dev.2) (2023-12-01)
### Bug Fixes
* **Spotify - Custom Theme:** Clarify patch option description ([#3338](https://github.com/ReVanced/revanced-patches/issues/3338)) ([1b9a90f](https://github.com/ReVanced/revanced-patches/commit/1b9a90f9753e40cb07e270e7f5144cd57c3c3ce3))
# [2.202.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v2.201.2-dev.1...v2.202.0-dev.1) (2023-11-29)
### Features
* Modernize restart app logic ([#3343](https://github.com/ReVanced/revanced-patches/issues/3343)) ([3897647](https://github.com/ReVanced/revanced-patches/commit/3897647321b6c1860dc9804cac6c6985da8bb675))
## [2.201.2-dev.1](https://github.com/ReVanced/revanced-patches/compare/v2.201.1...v2.201.2-dev.1) (2023-11-29)
### Bug Fixes
* **YouTube - Restore old seekbar thumbnails:** Move setting into 'Seekbar' submenu ([#3344](https://github.com/ReVanced/revanced-patches/issues/3344)) ([880091a](https://github.com/ReVanced/revanced-patches/commit/880091a96d1a628520732367c96c4c11fb93b72d))
## [2.201.1](https://github.com/ReVanced/revanced-patches/compare/v2.201.0...v2.201.1) (2023-11-27)
### Bug Fixes
* **Spotify - Hide premium navbar:** Support latest version ([b87005d](https://github.com/ReVanced/revanced-patches/commit/b87005de0c40293f85d3997f43b353a87a925156))
* **YouTube - Hide layout components:** Clarify custom filter usage ([cc16db5](https://github.com/ReVanced/revanced-patches/commit/cc16db56d1c9925852265fcebb459d9620cd1b92))
## [2.201.1-dev.2](https://github.com/ReVanced/revanced-patches/compare/v2.201.1-dev.1...v2.201.1-dev.2) (2023-11-23)
### Bug Fixes
* **Spotify - Hide premium navbar:** Support latest version ([b87005d](https://github.com/ReVanced/revanced-patches/commit/b87005de0c40293f85d3997f43b353a87a925156))
## [2.201.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v2.201.0...v2.201.1-dev.1) (2023-11-23)
### Bug Fixes
* **YouTube - Hide layout components:** Clarify custom filter usage ([cc16db5](https://github.com/ReVanced/revanced-patches/commit/cc16db56d1c9925852265fcebb459d9620cd1b92))
# [2.201.0](https://github.com/ReVanced/revanced-patches/compare/v2.200.0...v2.201.0) (2023-11-23)
### Bug Fixes
* **YouTube - Enable tablet layout:** Respect the original device layout ([b2c5bab](https://github.com/ReVanced/revanced-patches/commit/b2c5babf3fd9ad73daa06e03f4830a9dd7199d0c))
### Features
* **YouTube - Hide ads:** Hide shopping links in video description ([0c875a1](https://github.com/ReVanced/revanced-patches/commit/0c875a106308ae9747ae998d75b84db1c336762b))
* **YouTube - Hide layout components:** Hide "For You" shelf in channel page ([2bc7485](https://github.com/ReVanced/revanced-patches/commit/2bc7485cda5c5e17d65419faca983567a030f9aa))
# [2.201.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v2.200.0...v2.201.0-dev.1) (2023-11-23)
### Bug Fixes
* **YouTube - Enable tablet layout:** Respect the original device layout ([b2c5bab](https://github.com/ReVanced/revanced-patches/commit/b2c5babf3fd9ad73daa06e03f4830a9dd7199d0c))
### Features
* **YouTube - Hide ads:** Hide shopping links in video description ([0c875a1](https://github.com/ReVanced/revanced-patches/commit/0c875a106308ae9747ae998d75b84db1c336762b))
* **YouTube - Hide layout components:** Hide "For You" shelf in channel page ([2bc7485](https://github.com/ReVanced/revanced-patches/commit/2bc7485cda5c5e17d65419faca983567a030f9aa))
## [2.200.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v2.200.0...v2.200.1-dev.1) (2023-11-23)

View File

@@ -12,6 +12,13 @@ repositories {
mavenLocal()
google()
maven { url = uri("https://jitpack.io") }
// Required for FlexVer-Java
maven {
url = uri("https://repo.sleeping.town")
content {
includeGroup("com.unascribed")
}
}
}
dependencies {
@@ -30,22 +37,6 @@ kotlin {
jvmToolchain(11)
}
tasks.withType(Jar::class) {
exclude("app/revanced/meta")
manifest {
attributes["Name"] = "ReVanced Patches"
attributes["Description"] = "Patches for ReVanced."
attributes["Version"] = version
attributes["Timestamp"] = System.currentTimeMillis().toString()
attributes["Source"] = "git@github.com:revanced/revanced-patches.git"
attributes["Author"] = "ReVanced"
attributes["Contact"] = "contact@revanced.app"
attributes["Origin"] = "https://revanced.app"
attributes["License"] = "GNU General Public License v3.0"
}
}
tasks {
register<DefaultTask>("generateBundle") {
description = "Generate dex files from build and bundle them in the jar file"

View File

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

File diff suppressed because one or more lines are too long

View File

@@ -25,6 +25,18 @@ abstract class AbstractSettingsResourcePatch(
private val sourceDirectory: String,
) : ResourcePatch(), Closeable {
override fun execute(context: ResourceContext) {
/*
* used for self-restart
* TODO: do this only, when necessary
*/
context.xmlEditor["AndroidManifest.xml"].use { editor ->
editor.file.getElementsByTagName("manifest").item(0).also {
it.appendChild(it.ownerDocument.createElement("uses-permission").also { element ->
element.setAttribute("android:name", "android.permission.SCHEDULE_EXACT_ALARM")
})
}
}
/* copy preference template from source dir */
context.copyResources(
sourceDirectory,

View File

@@ -26,7 +26,7 @@ object CustomThemePatch : ResourcePatch() {
key = "backgroundColorSecondary",
default = "#ff282828",
title = "Secondary background color",
description = "The secondary background color. (e.g. search box, artist & podcast). Can be a hex color or a resource reference.",
description = "The secondary background color. Can be a hex color or a resource reference.",
required = true
)

View File

@@ -1,32 +1,51 @@
package app.revanced.patches.spotify.navbar
import app.revanced.extensions.exception
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.annotation.CompatiblePackage
import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patches.spotify.navbar.fingerprints.AddNavBarItemFingerprint
import app.revanced.patches.shared.mapping.misc.ResourceMappingPatch
import app.revanced.patches.spotify.navbar.fingerprints.AddPremiumNavbarTabFingerprint
import app.revanced.patches.spotify.navbar.fingerprints.AddPremiumNavbarTabParentFingerprint
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.WideLiteralInstruction
@Patch(
name = "Hide premium navbar",
description = "Removes the premium tab from the navbar.",
dependencies = [PremiumNavbarTabResourcePatch::class],
dependencies = [ResourceMappingPatch::class],
compatiblePackages = [CompatiblePackage("com.spotify.music")]
)
@Suppress("unused")
object PremiumNavbarTabPatch : BytecodePatch(
setOf(AddNavBarItemFingerprint)
) {
// If the navigation bar item is the premium tab, do not add it.
override fun execute(context: BytecodeContext) = AddNavBarItemFingerprint.result?.mutableMethod?.addInstructions(
0,
"""
const v1, ${PremiumNavbarTabResourcePatch.premiumTabId}
if-ne p5, v1, :continue
return-void
:continue
nop
"""
) ?: throw AddNavBarItemFingerprint.exception
}
object PremiumNavbarTabPatch : BytecodePatch(setOf(AddPremiumNavbarTabParentFingerprint)) {
override fun execute(context: BytecodeContext) {
val parentResult = AddPremiumNavbarTabParentFingerprint.result!!
AddPremiumNavbarTabFingerprint.resolve(context, parentResult.classDef)
val result = AddPremiumNavbarTabFingerprint.result!!
val method = result.mutableMethod
val methodInstructions = method.implementation!!.instructions
val lastInstructionIdx = methodInstructions.size - 1
val premiumTabId =
ResourceMappingPatch.resourceMappings.single { it.type == "id" && it.name == "premium_tab" }.id
var removeAmount = 2
// 2nd const remove method
for ((i, instruction) in methodInstructions.asReversed().withIndex()) {
if (instruction.opcode.ordinal != Opcode.CONST.ordinal) continue
if ((instruction as WideLiteralInstruction).wideLiteral != premiumTabId) continue
val findThreshold = 10
val constIndex = lastInstructionIdx - i
val invokeInstruction = methodInstructions.subList(constIndex, constIndex + findThreshold).first {
it.opcode.ordinal == Opcode.INVOKE_VIRTUAL_RANGE.ordinal
}
method.removeInstruction(methodInstructions.indexOf(invokeInstruction))
if (--removeAmount == 0) break
}
}
}

View File

@@ -1,22 +0,0 @@
package app.revanced.patches.spotify.navbar
import app.revanced.patcher.data.ResourceContext
import app.revanced.patcher.patch.ResourcePatch
import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patches.shared.mapping.misc.ResourceMappingPatch
@Patch(dependencies = [ResourceMappingPatch::class])
object PremiumNavbarTabResourcePatch : ResourcePatch() {
internal var showBottomNavigationItemsTextId = -1L
internal var premiumTabId = -1L
override fun execute(context: ResourceContext) {
premiumTabId = ResourceMappingPatch.resourceMappings.single {
it.type == "id" && it.name == "premium_tab"
}.id
showBottomNavigationItemsTextId = ResourceMappingPatch.resourceMappings.single {
it.type == "bool" && it.name == "show_bottom_navigation_items_text"
}.id
}
}

View File

@@ -1,12 +0,0 @@
package app.revanced.patches.spotify.navbar.fingerprints
import app.revanced.patcher.extensions.or
import app.revanced.patches.spotify.navbar.PremiumNavbarTabResourcePatch
import app.revanced.util.patch.LiteralValueFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
object AddNavBarItemFingerprint : LiteralValueFingerprint(
returnType = "V",
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
literalSupplier = { PremiumNavbarTabResourcePatch.showBottomNavigationItemsTextId },
)

View File

@@ -0,0 +1,7 @@
package app.revanced.patches.spotify.navbar.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object AddPremiumNavbarTabFingerprint : MethodFingerprint(
parameters = listOf("L", "L", "L", "L", "L", "L")
)

View File

@@ -0,0 +1,7 @@
package app.revanced.patches.spotify.navbar.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object AddPremiumNavbarTabParentFingerprint : MethodFingerprint(
strings = listOf("com.samsung.android.samsungaccount.action.REQUEST_AUTHCODE")
)

View File

@@ -111,6 +111,7 @@ object SettingsPatch : BytecodePatch(
addString("revanced_settings", "ReVanced Settings", false)
addString("revanced_reboot_message", "Twitch needs to restart to apply your changes. Restart now?", false)
addString("revanced_reboot", "Restart", false)
addString("revanced_cancel", "Cancel", false)
}
fun addString(identifier: String, value: String, formatted: Boolean = true) =

View File

@@ -26,13 +26,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -55,12 +55,6 @@ object HideAdsResourcePatch : ResourcePatch() {
StringResource("revanced_hide_products_banner_summary_on", "Banner is hidden"),
StringResource("revanced_hide_products_banner_summary_off", "Banner is shown")
),
SwitchPreference(
"revanced_hide_shopping_links",
StringResource("revanced_hide_shopping_links_title", "Hide shopping links in video description"),
StringResource("revanced_hide_shopping_links_summary_on", "Shopping links are hidden"),
StringResource("revanced_hide_shopping_links_summary_off", "Shopping links are shown")
),
SwitchPreference(
"revanced_hide_web_search_results",
StringResource("revanced_hide_web_search_results_title", "Hide web search results"),

View File

@@ -20,13 +20,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -24,13 +24,17 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -19,13 +19,17 @@ import app.revanced.patches.youtube.video.information.VideoInformationPatch
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -19,13 +19,17 @@ import app.revanced.patches.youtube.video.information.VideoInformationPatch
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
),
]

View File

@@ -27,8 +27,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -29,8 +29,7 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference
[
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -25,8 +25,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
[
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -26,13 +26,17 @@ import com.android.tools.smali.dexlib2.immutable.ImmutableMethod
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -24,13 +24,17 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
],

View File

@@ -22,13 +22,17 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -32,13 +32,17 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -23,13 +23,17 @@ import com.android.tools.smali.dexlib2.Opcode
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -29,13 +29,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -27,13 +27,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction3rc
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -22,13 +22,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -22,13 +22,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -21,13 +21,17 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -22,13 +22,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -25,13 +25,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction21c
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -22,13 +22,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -18,13 +18,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -23,8 +23,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -37,8 +37,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]
@@ -75,12 +74,6 @@ object HideLayoutComponentsPatch : BytecodePatch(
StringResource("revanced_hide_channel_watermark_title_summary_on", "Watermark is hidden"),
StringResource("revanced_hide_channel_watermark_title_summary_off", "Watermark is shown")
),
SwitchPreference(
"revanced_hide_for_you_shelf",
StringResource("revanced_hide_for_you_shelf_title", "Hide \\\'For you\\\' shelf in channel page"),
StringResource("revanced_hide_for_you_shelf_summary_on", "Shelf is hidden"),
StringResource("revanced_hide_for_you_shelf_summary_off", "Shelf is shown")
),
SwitchPreference(
"revanced_hide_notify_me_button",
StringResource("revanced_hide_notify_me_button_title", "Hide \\\'Notify me\\\' button"),
@@ -407,7 +400,7 @@ object HideLayoutComponentsPatch : BytecodePatch(
StringResource("revanced_custom_filter_strings_title", "Custom filter"),
StringResource(
"revanced_custom_filter_strings_summary",
"List of component path builder strings to filter separated by new line"
"List of components to filter separated by new line"
),
inputType = InputType.TEXT_MULTI_LINE
)

View File

@@ -29,13 +29,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -18,13 +18,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -18,13 +18,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -21,13 +21,17 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
],
compatiblePackages = [
CompatiblePackage("com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
])
]
)

View File

@@ -25,8 +25,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
"com.google.android.youtube", [
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -26,13 +26,17 @@ import app.revanced.patches.youtube.shared.fingerprints.SeekbarOnDrawFingerprint
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -30,13 +30,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -22,8 +22,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -19,13 +19,17 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -19,13 +19,17 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -13,13 +13,17 @@ import org.w3c.dom.Element
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
],

View File

@@ -40,8 +40,7 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference
"com.google.android.youtube", [
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -22,12 +22,16 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -16,7 +16,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
@Patch(
name = "Restore old seekbar thumbnails",
description = "Restores the old seekbar thumbnails that appear above the seekbar instead of fullscreen thumbnails.",
dependencies = [IntegrationsPatch::class, SeekbarPreferencesPatch::class],
dependencies = [IntegrationsPatch::class, SettingsPatch::class],
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
@@ -24,8 +24,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]
@@ -38,7 +37,7 @@ object RestoreOldSeekbarThumbnailsPatch : BytecodePatch(
"Lapp/revanced/integrations/patches/RestoreOldSeekbarThumbnailsPatch;"
override fun execute(context: BytecodeContext) {
SeekbarPreferencesPatch.addPreferences(
SettingsPatch.PreferenceScreen.LAYOUT.addPreferences(
SwitchPreference(
"revanced_restore_old_seekbar_thumbnails",
StringResource(

View File

@@ -38,13 +38,17 @@ import com.android.tools.smali.dexlib2.iface.reference.StringReference
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
],

View File

@@ -23,13 +23,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -19,13 +19,17 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -4,7 +4,6 @@ import app.revanced.extensions.exception
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.extensions.InstructionExtensions.getInstructions
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.annotation.CompatiblePackage
import app.revanced.patcher.patch.annotation.Patch
@@ -38,19 +37,18 @@ object EnableTabletLayoutPatch : BytecodePatch(
GetFormFactorFingerprint.result?.let {
it.mutableMethod.apply {
val returnIsLargeFormFactorIndex = getInstructions().lastIndex - 4
val returnIsLargeFormFactorLabel = getInstruction(returnIsLargeFormFactorIndex)
val returnLargeFormFactorIndex = it.scanResult.patternScanResult!!.endIndex - 4
addInstructionsWithLabels(
0,
"""
invoke-static { }, Lapp/revanced/integrations/patches/EnableTabletLayoutPatch;->enableTabletLayout()Z
move-result v0 # Free register
invoke-static { v0 }, Lapp/revanced/integrations/patches/EnableTabletLayoutPatch;->enableTabletLayout(Z)Z
move-result v0
if-nez v0, :is_large_form_factor
""",
ExternalLabel(
"is_large_form_factor",
returnIsLargeFormFactorLabel
getInstruction(returnLargeFormFactorIndex)
)
)
}

View File

@@ -27,13 +27,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", arrayOf(
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
)
)
]

View File

@@ -35,8 +35,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -21,13 +21,15 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
CompatiblePackage(
"com.google.android.youtube",
[
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -23,13 +23,17 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -24,8 +24,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -19,13 +19,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -25,8 +25,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
[
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -23,13 +23,17 @@ import com.android.tools.smali.dexlib2.iface.reference.StringReference
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -25,13 +25,17 @@ import app.revanced.util.microg.MicroGBytecodeHelper
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -28,13 +28,17 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference
CompatiblePackage(
"com.google.android.youtube",
[
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -13,12 +13,17 @@ import app.revanced.patches.youtube.misc.playeroverlay.fingerprint.PlayerOverlay
dependencies = [IntegrationsPatch::class],
compatiblePackages = [
CompatiblePackage("com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39"
])
]
)
@Suppress("unused")
object PlayerOverlaysHookPatch : BytecodePatch( // TODO: delete this unused outdated patch and its integration code.
object PlayerOverlaysHookPatch : BytecodePatch(
setOf(PlayerOverlaysOnFinishInflateFingerprint)
) {
override fun execute(context: BytecodeContext) {

View File

@@ -30,8 +30,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
[
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -21,13 +21,17 @@ import com.android.tools.smali.dexlib2.iface.reference.FieldReference
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.16.37",
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -31,13 +31,16 @@ import com.android.tools.smali.dexlib2.iface.reference.FieldReference
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.19.35",
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -15,13 +15,15 @@ import app.revanced.patches.youtube.video.speed.remember.RememberPlaybackSpeedPa
compatiblePackages = [
CompatiblePackage(
"com.google.android.youtube", [
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]

View File

@@ -25,13 +25,15 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
CompatiblePackage(
"com.google.android.youtube",
[
"18.20.39",
"18.23.35",
"18.29.38",
"18.32.39",
"18.37.36",
"18.38.44",
"18.43.45",
"18.44.41",
"18.45.41",
"18.45.43"
"18.45.41"
]
)
]