feat(kakaotalk): Add patch to remove 99 unread limit in chat logs

This commit is contained in:
2025-05-04 01:25:10 +09:00
parent e9545a11c4
commit 82e530a510
3 changed files with 46 additions and 0 deletions

View File

@ -248,6 +248,10 @@ public final class app/revanced/patches/kakaotalk/changemodel/ChangeModelPatchKt
public static final fun getChangeModelPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/chatlog/Remove99ClampPatchKt {
public static final fun getRemove99ClampPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/chatroom/Remove300PlusLimitPatchKt {
public static final fun getRemove300PlusLimitBaseChatRoomPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
public static final fun getRemove300PlusLimitOpenChatRoomPatch ()Lapp/revanced/patcher/patch/BytecodePatch;

View File

@ -0,0 +1,31 @@
package app.revanced.patches.kakaotalk.chatlog
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.Package
import app.revanced.patches.kakaotalk.chatlog.fingerprints.remove99ClampFingerprint
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction10t
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction22t
@Suppress("unused")
val remove99ClampPatch = bytecodePatch(
name = "Disable 99 unread limit",
description = "Skip the 99-cap so unread count shows full value"
) {
compatibleWith(Package("com.kakao.talk", setOf("25.3.5")))
execute {
val method = remove99ClampFingerprint.method
method.instructions
.filterIsInstance<BuilderInstruction22t>()
.filter { it.opcode == Opcode.IF_LE }
.forEach { ifle ->
val idx = method.instructions.indexOf(ifle)
val goto = BuilderInstruction10t(Opcode.GOTO, ifle.target)
method.replaceInstruction(idx, goto)
}
}
}

View File

@ -0,0 +1,11 @@
package app.revanced.patches.kakaotalk.chatlog.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal val remove99ClampFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Ljava/lang/Object;")
parameters()
strings("notiRead", "openlinkSettingShowUnreadCount")
}