From 2ee13160d51dba3c5806594b2387f806e5946b9a Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Mon, 11 Nov 2024 02:37:44 +0100 Subject: [PATCH] fix(Sync): Fix patches by not throwing unnecessarily --- .../piracy/DisablePiracyDetectionPatch.kt | 2 +- .../sync/detection/piracy/Fingerprints.kt | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/detection/piracy/DisablePiracyDetectionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/detection/piracy/DisablePiracyDetectionPatch.kt index fa797c693d..53069a951a 100644 --- a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/detection/piracy/DisablePiracyDetectionPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/detection/piracy/DisablePiracyDetectionPatch.kt @@ -10,6 +10,6 @@ val disablePiracyDetectionPatch = bytecodePatch( execute { // Do not throw an error if the fingerprint is not resolved. // This is fine because new versions of the target app do not need this patch. - piracyDetectionFingerprint.method.addInstruction(0, "return-void") + piracyDetectionFingerprint.methodOrNull?.addInstruction(0, "return-void") } } diff --git a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/detection/piracy/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/detection/piracy/Fingerprints.kt index a01be33c91..e83e914d75 100644 --- a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/detection/piracy/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/detection/piracy/Fingerprints.kt @@ -1,9 +1,11 @@ package app.revanced.patches.reddit.customclients.sync.detection.piracy -import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction -import com.android.tools.smali.dexlib2.Opcode -import com.android.tools.smali.dexlib2.AccessFlags +import app.revanced.patcher.extensions.InstructionExtensions.instructions import app.revanced.patcher.fingerprint +import app.revanced.util.getReference +import com.android.tools.smali.dexlib2.AccessFlags +import com.android.tools.smali.dexlib2.Opcode +import com.android.tools.smali.dexlib2.iface.reference.Reference internal val piracyDetectionFingerprint = fingerprint { accessFlags(AccessFlags.PRIVATE, AccessFlags.FINAL) @@ -16,12 +18,9 @@ internal val piracyDetectionFingerprint = fingerprint { Opcode.INVOKE_VIRTUAL, ) custom { method, _ -> - method.implementation?.instructions?.any { - if (it.opcode != Opcode.NEW_INSTANCE) return@any false - - val reference = (it as ReferenceInstruction).reference - - reference.toString() == "Lcom/github/javiersantos/piracychecker/PiracyChecker;" - } == true + method.implementation ?: return@custom false + method.instructions.any { + it.getReference()?.toString() == "Lcom/github/javiersantos/piracychecker/PiracyChecker;" + } } }