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 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 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