From dda747379bf56df9718d2eaebb6dad917a8ffd40 Mon Sep 17 00:00:00 2001 From: hoodles <207470673+hoo-dles@users.noreply.github.com> Date: Mon, 12 May 2025 23:58:07 -0700 Subject: [PATCH] fix(Instagram) - Fix ` hide ads` fingerprint and add `bypass check signature` (#4901) Co-authored-by: oSumAtrIX --- patches/api/patches.api | 4 ++++ .../patches/instagram/ads/Fingerprints.kt | 1 - .../instagram/misc/signature/Fingerprints.kt | 20 +++++++++++++++++++ .../misc/signature/SignatureCheckPatch.kt | 19 ++++++++++++++++++ 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 patches/src/main/kotlin/app/revanced/patches/instagram/misc/signature/Fingerprints.kt create mode 100644 patches/src/main/kotlin/app/revanced/patches/instagram/misc/signature/SignatureCheckPatch.kt diff --git a/patches/api/patches.api b/patches/api/patches.api index 7e9a01a9c..7268c398e 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -240,6 +240,10 @@ public final class app/revanced/patches/instagram/ads/HideAdsPatchKt { public static final fun getHideAdsPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } +public final class app/revanced/patches/instagram/misc/signature/SignatureCheckPatchKt { + public static final fun getSignatureCheckPatch ()Lapp/revanced/patcher/patch/BytecodePatch; +} + public final class app/revanced/patches/irplus/ad/RemoveAdsPatchKt { public static final fun getRemoveAdsPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/ads/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/ads/Fingerprints.kt index 65d052729..1e5eb6d04 100644 --- a/patches/src/main/kotlin/app/revanced/patches/instagram/ads/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/ads/Fingerprints.kt @@ -9,6 +9,5 @@ internal val adInjectorFingerprint = fingerprint { parameters("L", "L") strings( "SponsoredContentController.insertItem", - "SponsoredContentController::Delivery", ) } diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/signature/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/signature/Fingerprints.kt new file mode 100644 index 000000000..47ebe189b --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/signature/Fingerprints.kt @@ -0,0 +1,20 @@ +package app.revanced.patches.instagram.misc.signature + +import app.revanced.patcher.fingerprint +import app.revanced.util.getReference +import app.revanced.util.indexOfFirstInstruction +import com.android.tools.smali.dexlib2.iface.reference.MethodReference + +internal val isValidSignatureClassFingerprint = fingerprint { + strings("The provider for uri '", "' is not trusted: ") +} + +internal val isValidSignatureMethodFingerprint = fingerprint { + parameters("L", "Z") + returns("Z") + custom { method, _ -> + method.indexOfFirstInstruction { + getReference()?.name == "keySet" + } >= 0 + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/signature/SignatureCheckPatch.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/signature/SignatureCheckPatch.kt new file mode 100644 index 000000000..5bc077c4b --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/signature/SignatureCheckPatch.kt @@ -0,0 +1,19 @@ +package app.revanced.patches.instagram.misc.signature + +import app.revanced.patcher.patch.bytecodePatch +import app.revanced.util.returnEarly + +@Suppress("unused") +val signatureCheckPatch = bytecodePatch( + name = "Disable signature check", + description = "Disables the signature check that causes the app to crash on startup." +) { + compatibleWith("com.instagram.android"("378.0.0.52.68")) + + execute { + isValidSignatureMethodFingerprint + .match(isValidSignatureClassFingerprint.classDef) + .method + .returnEarly(true) + } +}