diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/EditShareLinksPatch.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/EditShareLinksPatch.kt index b6d968c65..e3e463010 100644 --- a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/EditShareLinksPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/EditShareLinksPatch.kt @@ -16,15 +16,14 @@ internal fun editShareLinksPatch(block: MutableMethod.(index: Int, register: Int liveUrlResponseJsonParserFingerprint ) - for (fingerprint in fingerprintsToPatch) { + fingerprintsToPatch.forEachIndexed { index, fingerprint -> + fingerprint.method.apply { val putSharingUrlIndex = indexOfFirstInstruction( - permalinkResponseJsonParserFingerprint.stringMatches!!.first().index, + index, Opcode.IPUT_OBJECT ) - val sharingUrlRegister = getInstruction(putSharingUrlIndex).registerA - block(putSharingUrlIndex, sharingUrlRegister) } } diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/PermalinkResponseJsonParserFingerprint.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/UrlResponseJsonParserFingerprint.kt similarity index 59% rename from patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/PermalinkResponseJsonParserFingerprint.kt rename to patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/UrlResponseJsonParserFingerprint.kt index 9f2d9fc4e..fd6fbf5c4 100644 --- a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/PermalinkResponseJsonParserFingerprint.kt +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/UrlResponseJsonParserFingerprint.kt @@ -1,23 +1,32 @@ package app.revanced.patches.instagram.misc.share import app.revanced.patcher.fingerprint +import com.android.tools.smali.dexlib2.Opcode + +internal val TARGET_STRING_ARRAY = arrayOf( + "permalink", + "story_item_to_share_url", + "profile_to_share_url", + "live_to_share_url", +) internal val permalinkResponseJsonParserFingerprint = fingerprint { - strings("permalink", "PermalinkResponse") + strings(TARGET_STRING_ARRAY[0]) + opcodes(Opcode.NEW_INSTANCE,Opcode.INVOKE_DIRECT,Opcode.INVOKE_VIRTUAL) custom { method, _ -> method.name == "parseFromJson" } } internal val storyUrlResponseJsonParserFingerprint = fingerprint { - strings("story_item_to_share_url", "StoryItemUrlResponse") + strings(TARGET_STRING_ARRAY[1]) custom { method, _ -> method.name == "parseFromJson" } } internal val profileUrlResponseJsonParserFingerprint = fingerprint { - strings("profile_to_share_url") + strings(TARGET_STRING_ARRAY[2]) custom { method, _ -> method.name == "parseFromJson" } } internal val liveUrlResponseJsonParserFingerprint = fingerprint { - strings("live_to_share_url", "LiveItemLinkUrlResponse") + strings(TARGET_STRING_ARRAY[3]) custom { method, _ -> method.name == "parseFromJson" } }