mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2024-11-10 01:01:56 +01:00
Merge remote-tracking branch 'origin/dev' into dev
# Conflicts: # src/main/kotlin/app/revanced/patches/Index.kt
This commit is contained in:
commit
43da3130e9
10 changed files with 217 additions and 11 deletions
19
CHANGELOG.md
19
CHANGELOG.md
|
@ -1,3 +1,22 @@
|
|||
# [1.0.0-dev.3](https://github.com/ReVancedTeam/revanced-patches/compare/v1.0.0-dev.2...v1.0.0-dev.3) (2022-03-21)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* OldQualityLayout, HideSuggestions, HideReels, EnableSeekbarTapping ([04a7cff](https://github.com/ReVancedTeam/revanced-patches/commit/04a7cfff20d2734b1c92713de4e7e08a3b93ee85))
|
||||
|
||||
# [1.0.0-dev.2](https://github.com/ReVancedTeam/revanced-patches/compare/v1.0.0-dev.1...v1.0.0-dev.2) (2022-03-21)
|
||||
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
* Rename `net.revanced` to `app.revanced` ([68ea89f](https://github.com/ReVancedTeam/revanced-patches/commit/68ea89f15e9ea077df0d0ac20a40b735bb5ae26c))
|
||||
|
||||
|
||||
### BREAKING CHANGES
|
||||
|
||||
* Package name was changed from "net.revanced" to "app.revanced"
|
||||
|
||||
# 1.0.0-dev.1 (2022-03-21)
|
||||
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
kotlin.code.style = official
|
||||
version = 1.0.0-dev.1
|
||||
version = 1.0.0-dev.3
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
package app.revanced.patches
|
||||
|
||||
import app.revanced.patcher.patch.Patch
|
||||
import app.revanced.patches.ads.VideoAds
|
||||
import app.revanced.patches.layouts.CreateButtonRemover
|
||||
import app.revanced.patches.layouts.MinimizedPlayback
|
||||
import app.revanced.patches.ad.VideoAds
|
||||
import app.revanced.patches.interaction.EnableSeekbarTapping
|
||||
import app.revanced.patches.layout.*
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
/**
|
||||
* Index contains all the patches and should be imported when using this library.
|
||||
|
@ -14,9 +15,13 @@ object Index {
|
|||
* Array of patches.
|
||||
* New patches should be added to the array.
|
||||
*/
|
||||
val patches: Array<() -> Patch> = arrayOf(
|
||||
::VideoAds,
|
||||
::MinimizedPlayback,
|
||||
::CreateButtonRemover
|
||||
val patches: Array<KClass<out Patch>> = arrayOf(
|
||||
VideoAds::class,
|
||||
MinimizedPlayback::class,
|
||||
CreateButtonRemover::class,
|
||||
HideReels::class,
|
||||
HideSuggestions::class,
|
||||
OldQualityLayout::class,
|
||||
EnableSeekbarTapping::class
|
||||
)
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package app.revanced.patches.ads
|
||||
package app.revanced.patches.ad
|
||||
|
||||
import app.revanced.patcher.cache.Cache
|
||||
import app.revanced.patcher.patch.Patch
|
|
@ -0,0 +1,49 @@
|
|||
package app.revanced.patches.interaction
|
||||
|
||||
import app.revanced.patcher.cache.Cache
|
||||
import app.revanced.patcher.patch.Patch
|
||||
import app.revanced.patcher.patch.PatchResult
|
||||
import app.revanced.patcher.patch.PatchResultSuccess
|
||||
import app.revanced.patcher.writer.ASMWriter.insertAt
|
||||
import org.objectweb.asm.Opcodes
|
||||
import org.objectweb.asm.tree.*
|
||||
|
||||
class EnableSeekbarTapping : Patch("enable-seekbar-tapping") {
|
||||
override fun execute(cache: Cache): PatchResult {
|
||||
val patchData = cache.methods["enable-seekbar-tapping"]
|
||||
val methodOPatchData = cache.methods["enable-seekbar-tapping-method-o"]
|
||||
val methodPPatchData = cache.methods["enable-seekbar-tapping-method-p"]
|
||||
|
||||
val elseLabel = LabelNode()
|
||||
patchData.method.instructions.insertAt(
|
||||
patchData.scanData.endIndex,
|
||||
InsnNode(Opcodes.ACONST_NULL),
|
||||
MethodInsnNode(
|
||||
Opcodes.INVOKESTATIC,
|
||||
"fi/razerman/youtube/preferences/BooleanPreferences",
|
||||
"isTapSeekingEnabled",
|
||||
"()Z"
|
||||
),
|
||||
JumpInsnNode(Opcodes.IFEQ, elseLabel),
|
||||
VarInsnNode(Opcodes.ALOAD, 0),
|
||||
VarInsnNode(Opcodes.ILOAD, 6),
|
||||
MethodInsnNode(
|
||||
Opcodes.INVOKEVIRTUAL,
|
||||
methodOPatchData.declaringClass.name,
|
||||
methodOPatchData.method.name,
|
||||
"(I)V"
|
||||
),
|
||||
VarInsnNode(Opcodes.ALOAD, 0),
|
||||
VarInsnNode(Opcodes.ILOAD, 6),
|
||||
MethodInsnNode(
|
||||
Opcodes.INVOKEVIRTUAL,
|
||||
methodPPatchData.declaringClass.name,
|
||||
methodPPatchData.method.name,
|
||||
"(I)V"
|
||||
),
|
||||
elseLabel
|
||||
)
|
||||
|
||||
return PatchResultSuccess()
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package app.revanced.patches.layouts
|
||||
package app.revanced.patches.layout
|
||||
|
||||
import app.revanced.patcher.cache.Cache
|
||||
import app.revanced.patcher.patch.Patch
|
29
src/main/kotlin/app/revanced/patches/layout/HideReels.kt
Normal file
29
src/main/kotlin/app/revanced/patches/layout/HideReels.kt
Normal file
|
@ -0,0 +1,29 @@
|
|||
package app.revanced.patches.layout
|
||||
|
||||
import app.revanced.patcher.cache.Cache
|
||||
import app.revanced.patcher.patch.Patch
|
||||
import app.revanced.patcher.patch.PatchResult
|
||||
import app.revanced.patcher.patch.PatchResultSuccess
|
||||
import app.revanced.patcher.writer.ASMWriter.insertAt
|
||||
import org.objectweb.asm.Opcodes
|
||||
import org.objectweb.asm.tree.MethodInsnNode
|
||||
import org.objectweb.asm.tree.VarInsnNode
|
||||
|
||||
class HideReels : Patch("hide-reels") {
|
||||
override fun execute(cache: Cache): PatchResult {
|
||||
val patchData = cache.methods["hide-reel-patch"]
|
||||
|
||||
patchData.method.instructions.insertAt(
|
||||
patchData.scanData.endIndex + 1,
|
||||
VarInsnNode(Opcodes.ALOAD, 18),
|
||||
MethodInsnNode(
|
||||
Opcodes.INVOKESTATIC,
|
||||
"fi/razerman/youtube/XAdRemover",
|
||||
"HideReels",
|
||||
"(Landroid/view/View;)V"
|
||||
)
|
||||
)
|
||||
|
||||
return PatchResultSuccess()
|
||||
}
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
package app.revanced.patches.layout
|
||||
|
||||
import app.revanced.patcher.cache.Cache
|
||||
import app.revanced.patcher.patch.Patch
|
||||
import app.revanced.patcher.patch.PatchResult
|
||||
import app.revanced.patcher.patch.PatchResultError
|
||||
import app.revanced.patcher.patch.PatchResultSuccess
|
||||
import app.revanced.patcher.signature.Signature
|
||||
import app.revanced.patcher.writer.ASMWriter.insertAt
|
||||
import org.objectweb.asm.Opcodes
|
||||
import org.objectweb.asm.Type
|
||||
import org.objectweb.asm.tree.MethodInsnNode
|
||||
import org.objectweb.asm.tree.VarInsnNode
|
||||
|
||||
class HideSuggestions : Patch("hide-suggestions") {
|
||||
override fun execute(cache: Cache): PatchResult {
|
||||
val method = cache.methods["hide-suggestions-patch"].findParentMethod(
|
||||
Signature(
|
||||
"hide-suggestions-method",
|
||||
Type.VOID_TYPE,
|
||||
Opcodes.ACC_PUBLIC or Opcodes.ACC_FINAL,
|
||||
arrayOf(Type.BOOLEAN_TYPE),
|
||||
arrayOf(
|
||||
Opcodes.ALOAD,
|
||||
Opcodes.ILOAD,
|
||||
Opcodes.PUTFIELD,
|
||||
Opcodes.ALOAD,
|
||||
Opcodes.GETFIELD
|
||||
)
|
||||
)
|
||||
) ?: return PatchResultError("Parent method hide-suggestions-method has not been found")
|
||||
|
||||
method.method.instructions.insertAt(
|
||||
0,
|
||||
VarInsnNode(Opcodes.ILOAD, 1),
|
||||
MethodInsnNode(
|
||||
Opcodes.INVOKESTATIC,
|
||||
"java/lang/Boolean",
|
||||
"valueOf",
|
||||
"(Z)Ljava/lang/Boolean"
|
||||
),
|
||||
MethodInsnNode(
|
||||
Opcodes.INVOKESTATIC,
|
||||
"fi/razerman/youtube/XAdRemover",
|
||||
"HideReels",
|
||||
"(Landroid/view/View;)V"
|
||||
)
|
||||
)
|
||||
|
||||
return PatchResultSuccess()
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package app.revanced.patches.layouts
|
||||
package app.revanced.patches.layout
|
||||
|
||||
import app.revanced.patcher.cache.Cache
|
||||
import app.revanced.patcher.patch.Patch
|
|
@ -0,0 +1,52 @@
|
|||
package app.revanced.patches.layout
|
||||
|
||||
import app.revanced.patcher.cache.Cache
|
||||
import app.revanced.patcher.patch.Patch
|
||||
import app.revanced.patcher.patch.PatchResult
|
||||
import app.revanced.patcher.patch.PatchResultError
|
||||
import app.revanced.patcher.patch.PatchResultSuccess
|
||||
import app.revanced.patcher.signature.Signature
|
||||
import app.revanced.patcher.util.ExtraTypes
|
||||
import app.revanced.patcher.writer.ASMWriter.insertAt
|
||||
import org.objectweb.asm.Opcodes
|
||||
import org.objectweb.asm.tree.JumpInsnNode
|
||||
import org.objectweb.asm.tree.MethodInsnNode
|
||||
import org.objectweb.asm.tree.VarInsnNode
|
||||
|
||||
class OldQualityLayout : Patch("old-quality-restore") {
|
||||
override fun execute(cache: Cache): PatchResult {
|
||||
val method = cache.methods["old-quality-patch"].findParentMethod(
|
||||
Signature(
|
||||
"old-quality-patch-method",
|
||||
ExtraTypes.Any,
|
||||
Opcodes.ACC_PUBLIC or Opcodes.ACC_FINAL,
|
||||
arrayOf(),
|
||||
arrayOf(
|
||||
Opcodes.ALOAD,
|
||||
Opcodes.GETFIELD,
|
||||
Opcodes.ISTORE,
|
||||
Opcodes.ICONST_3,
|
||||
Opcodes.ISTORE
|
||||
)
|
||||
)
|
||||
) ?: return PatchResultError("Parent method old-quality-patch-method has not been found")
|
||||
|
||||
method.method.instructions.insertAt(
|
||||
0,
|
||||
MethodInsnNode(
|
||||
Opcodes.INVOKESTATIC,
|
||||
"fi/razerman/youtube/XGlobals",
|
||||
"useOldStyleQualitySettings",
|
||||
"()Z"
|
||||
),
|
||||
VarInsnNode(Opcodes.ISTORE, 1),
|
||||
VarInsnNode(Opcodes.ILOAD, 1),
|
||||
JumpInsnNode(
|
||||
Opcodes.IFNE,
|
||||
(method.method.instructions[method.scanData.endIndex + 3] as JumpInsnNode).label
|
||||
),
|
||||
)
|
||||
|
||||
return PatchResultSuccess()
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue