mirror of
https://github.com/revanced/revanced-patches
synced 2024-12-03 00:53:07 +01:00
fix: wrong opcode pattern for create-button-method
This commit is contained in:
parent
a112b22ce6
commit
f4d8a8525b
@ -2,10 +2,7 @@ package app.revanced.patches.layout
|
|||||||
|
|
||||||
import app.revanced.patcher.PatcherData
|
import app.revanced.patcher.PatcherData
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patcher.patch.Patch
|
import app.revanced.patcher.patch.*
|
||||||
import app.revanced.patcher.patch.PatchMetadata
|
|
||||||
import app.revanced.patcher.patch.PatchResult
|
|
||||||
import app.revanced.patcher.patch.PatchResultSuccess
|
|
||||||
import app.revanced.patcher.signature.MethodMetadata
|
import app.revanced.patcher.signature.MethodMetadata
|
||||||
import app.revanced.patcher.signature.MethodSignature
|
import app.revanced.patcher.signature.MethodSignature
|
||||||
import app.revanced.patcher.signature.MethodSignatureMetadata
|
import app.revanced.patcher.signature.MethodSignatureMetadata
|
||||||
@ -13,6 +10,7 @@ import app.revanced.patcher.signature.PatternScanMethod
|
|||||||
import app.revanced.patcher.smali.toInstruction
|
import app.revanced.patcher.smali.toInstruction
|
||||||
import org.jf.dexlib2.AccessFlags
|
import org.jf.dexlib2.AccessFlags
|
||||||
import org.jf.dexlib2.Opcode
|
import org.jf.dexlib2.Opcode
|
||||||
|
import org.jf.dexlib2.iface.instruction.formats.Instruction35c
|
||||||
|
|
||||||
private val compatiblePackages = listOf("com.google.android.youtube")
|
private val compatiblePackages = listOf("com.google.android.youtube")
|
||||||
|
|
||||||
@ -69,8 +67,6 @@ class CreateButtonRemoverPatch : Patch(
|
|||||||
Opcode.CONST_4,
|
Opcode.CONST_4,
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
Opcode.INVOKE_STATIC,
|
|
||||||
Opcode.MOVE_RESULT_OBJECT
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -78,10 +74,17 @@ class CreateButtonRemoverPatch : Patch(
|
|||||||
override fun execute(patcherData: PatcherData): PatchResult {
|
override fun execute(patcherData: PatcherData): PatchResult {
|
||||||
val result = signatures.first().result!!
|
val result = signatures.first().result!!
|
||||||
|
|
||||||
|
// Get the required register which holds the view object we need to pass to the method hideCreateButton
|
||||||
|
val implementation = result.method.implementation!!
|
||||||
|
val instruction = implementation.instructions[result.scanData.endIndex]
|
||||||
|
if (instruction.opcode != Opcode.INVOKE_STATIC)
|
||||||
|
return PatchResultError("Could not find the correct register")
|
||||||
|
val register = (instruction as Instruction35c).registerC
|
||||||
|
|
||||||
// Hide the button view via proxy by passing it to the hideCreateButton method
|
// Hide the button view via proxy by passing it to the hideCreateButton method
|
||||||
result.method.implementation!!.addInstruction(
|
implementation.addInstruction(
|
||||||
result.scanData.endIndex,
|
result.scanData.endIndex,
|
||||||
"invoke-static { v2 }, Lfi/razerman/youtube/XAdRemover;->hideCreateButton(Landroid/view/View;)V".toInstruction()
|
"invoke-static { v$register }, Lfi/razerman/youtube/XAdRemover;->hideCreateButton(Landroid/view/View;)V".toInstruction()
|
||||||
)
|
)
|
||||||
|
|
||||||
return PatchResultSuccess()
|
return PatchResultSuccess()
|
||||||
|
Loading…
Reference in New Issue
Block a user