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) + } +}