refactor: migrate from Signature to Fingerprint

BREAKING CHANGE: Not backwards compatible, since a lot of classes where renamed.
This commit is contained in:
oSumAtrIX
2022-06-26 16:33:58 +02:00
parent 015443d9db
commit f0aeece867
56 changed files with 535 additions and 496 deletions
@@ -1,22 +1,22 @@
package app.revanced.patches.youtube.layout.reels.signatures
package app.revanced.patches.youtube.layout.reels.fingerprints
import app.revanced.patcher.annotation.Name
import app.revanced.patcher.annotation.Version
import app.revanced.patcher.extensions.or
import app.revanced.patcher.signature.implementation.method.MethodSignature
import app.revanced.patcher.signature.implementation.method.annotation.FuzzyPatternScanMethod
import app.revanced.patcher.signature.implementation.method.annotation.MatchingMethod
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
import app.revanced.patches.youtube.layout.reels.annotations.HideReelsCompatibility
import org.jf.dexlib2.AccessFlags
@Name("hide-reels-signature")
@Name("hide-reels-fingerprint")
@MatchingMethod(
"Ljvy", "<init>"
)
@FuzzyPatternScanMethod(3) // FIXME: Test this threshold and find the best value.
@HideReelsCompatibility
@Version("0.0.1")
object HideReelsSignature : MethodSignature(
object HideReelsFingerprint : MethodFingerprint(
null, AccessFlags.PROTECTED or AccessFlags.FINAL, listOf("L", "L"), null,
listOf("multiReelDismissalCallback", "reelItemRenderers", "reelDismissalInfo")
)
@@ -2,14 +2,14 @@ package app.revanced.patches.youtube.layout.reels.patch
import app.revanced.patcher.annotation.Description
import app.revanced.patcher.annotation.Name
import app.revanced.patcher.annotation.Version
import app.revanced.patcher.data.implementation.BytecodeData
import app.revanced.patcher.extensions.addInstruction
import app.revanced.patcher.patch.implementation.BytecodePatch
import app.revanced.patcher.patch.implementation.misc.PatchResult
import app.revanced.patcher.patch.implementation.misc.PatchResultSuccess
import app.revanced.patcher.annotation.Version
import app.revanced.patcher.data.impl.BytecodeData
import app.revanced.patcher.patch.PatchResult
import app.revanced.patcher.patch.PatchResultSuccess
import app.revanced.patcher.patch.impl.BytecodePatch
import app.revanced.patches.youtube.layout.reels.annotations.HideReelsCompatibility
import app.revanced.patches.youtube.layout.reels.signatures.HideReelsSignature
import app.revanced.patches.youtube.layout.reels.fingerprints.HideReelsFingerprint
//@Patch TODO: this is currently in the general-bytecode-ads patch due to the integrations having a preference for including reels or not. Move it here.
@Name("hide-reels")
@@ -18,16 +18,16 @@ import app.revanced.patches.youtube.layout.reels.signatures.HideReelsSignature
@Version("0.0.1")
class HideReelsPatch : BytecodePatch(
listOf(
HideReelsSignature
HideReelsFingerprint
)
) {
override fun execute(data: BytecodeData): PatchResult {
val result = HideReelsSignature.result!!
val result = HideReelsFingerprint.result!!
// HideReel will hide the reel view before it is being used,
// so we pass the view to the HideReel method
result.method.addInstruction(
result.scanResult.endIndex,
result.mutableMethod.addInstruction(
result.patternScanResult!!.endIndex,
"invoke-static { v2 }, Lapp/revanced/integrations/patches/HideReelsPatch;->HideReel(Landroid/view/View;)V"
)