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;" + } } }