feat(kakaotalk): add patch to include real deleted and hidden flags in chat log

This is the first commit to make deleted, hidden messages visible.
This commit is contained in:
2025-05-26 02:03:26 +09:00
parent 263fb212ad
commit 555099bef8
3 changed files with 65 additions and 0 deletions

View File

@ -272,6 +272,10 @@ public final class app/revanced/patches/kakaotalk/changemodel/ChangeModelPatchKt
public static final fun getChangeModelPatch ()Lapp/revanced/patcher/patch/BytecodePatch; public static final fun getChangeModelPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
} }
public final class app/revanced/patches/kakaotalk/chatlog/AddRealDeletedOrHiddenFlagPatchKt {
public static final fun getAddRealDeletedOrHiddenFlagPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/chatlog/Remove99ClampPatchKt { public final class app/revanced/patches/kakaotalk/chatlog/Remove99ClampPatchKt {
public static final fun getRemove99ClampPatch ()Lapp/revanced/patcher/patch/BytecodePatch; public static final fun getRemove99ClampPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
} }

View File

@ -0,0 +1,47 @@
package app.revanced.patches.kakaotalk.chatlog
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.util.proxy.mutableTypes.MutableField.Companion.toMutable
import app.revanced.patches.kakaotalk.chatlog.fingerprints.chatLogFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.immutable.ImmutableField
import com.android.tools.smali.dexlib2.immutable.value.ImmutableBooleanEncodedValue
val addRealDeletedOrHiddenFlagPatch = bytecodePatch(
name = "Add real deleted or hidden flag",
description = "Add real deleted or hidden flag to chat log",
) {
compatibleWith("com.kakao.talk"("25.4.2"))
execute {
val chatLogClass = proxy(classes.first {
it.type == chatLogFingerprint.method.definingClass
}).mutableClass
chatLogClass.apply {
fields.add(
ImmutableField(
type,
"isRealDeleted",
"Z",
AccessFlags.PUBLIC.value,
ImmutableBooleanEncodedValue.FALSE_VALUE,
null,
null
).toMutable(),
)
fields.add(
ImmutableField(
type,
"isHidden",
"Z",
AccessFlags.PUBLIC.value,
ImmutableBooleanEncodedValue.FALSE_VALUE,
null,
null
).toMutable(),
)
}
}
}

View File

@ -0,0 +1,14 @@
package app.revanced.patches.kakaotalk.chatlog.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal val chatLogFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC)
returns("Ljava/lang/String;")
parameters()
strings(
"[class:",
"] ChatLog [id=",
)
}