diff --git a/patches/api/patches.api b/patches/api/patches.api index bf1e3e72e..bbbd42e2d 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -248,6 +248,10 @@ public final class app/revanced/patches/kakaotalk/ads/RemoveBizBoardPatchKt { public static final fun getRemoveBizBoardPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } +public final class app/revanced/patches/kakaotalk/ads/RemoveFocusAdPatchKt { + public static final fun getRemoveFocusAdPatch ()Lapp/revanced/patcher/patch/BytecodePatch; +} + public final class app/revanced/patches/kakaotalk/ads/RemoveOlkChatRoomListAdPatchKt { public static final fun getRemoveOlkChatRoomListAdPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } diff --git a/patches/src/main/kotlin/app/revanced/patches/kakaotalk/ads/RemoveFocusAdPatch.kt b/patches/src/main/kotlin/app/revanced/patches/kakaotalk/ads/RemoveFocusAdPatch.kt new file mode 100644 index 000000000..79f77cf07 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/kakaotalk/ads/RemoveFocusAdPatch.kt @@ -0,0 +1,22 @@ +package app.revanced.patches.kakaotalk.ads + +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patches.kakaotalk.ads.fingerprints.removeFocusAdFingerprint + +val removeFocusAdPatch = bytecodePatch( + name = "Remove focus ad", + description = "Removes the focus ad from the app.", +) { + compatibleWith("com.kakao.talk"("25.4.2")) + + execute { + removeFocusAdFingerprint.method.addInstructions( + 0, + """ + const/4 v0, 0x1 + return v0 + """.trimIndent() + ) + } +} \ No newline at end of file diff --git a/patches/src/main/kotlin/app/revanced/patches/kakaotalk/ads/fingerprints/RemoveFocusAdFingerprint.kt b/patches/src/main/kotlin/app/revanced/patches/kakaotalk/ads/fingerprints/RemoveFocusAdFingerprint.kt new file mode 100644 index 000000000..c1840d920 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/kakaotalk/ads/fingerprints/RemoveFocusAdFingerprint.kt @@ -0,0 +1,22 @@ +package app.revanced.patches.kakaotalk.ads.fingerprints + +import app.revanced.patcher.fingerprint +import com.android.tools.smali.dexlib2.AccessFlags +import com.android.tools.smali.dexlib2.Opcode + +internal val removeFocusAdFingerprint = fingerprint { + accessFlags(AccessFlags.PUBLIC) + parameters("Lcom/kakao/adfit/ads/focus/FocusAdLoader\$OnAdLoadListener;") + returns("Z") + strings("listener", " owner is destroyed.", " loading is already started.", "Request Focus AD", " loading is started.", "Focus ad is cached. [id = ") + opcodes( + Opcode.CONST_STRING, + Opcode.INVOKE_STATIC, + Opcode.IGET_OBJECT, + Opcode.INVOKE_VIRTUAL, + Opcode.MOVE_RESULT_OBJECT, + Opcode.SGET_OBJECT, + Opcode.CONST_4, + Opcode.IF_NE, + ) +} \ No newline at end of file