feat(kakaotalk): Add patch to remove 99 unread limit in chat logs
This commit is contained in:
@ -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;
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
@ -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")
|
||||
}
|
Reference in New Issue
Block a user