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:
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -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=",
|
||||||
|
)
|
||||||
|
}
|
Reference in New Issue
Block a user