feat(kakaotalk): rename fingerprint variables for clarity and consistency

Going forward, fingerprints will follow the filename of the corresponding patch, but will name the variables that are finely fingerprinted after the functionality of the method for the intended target. This is to promote reusability, and hopefully increase maintainability in the future.
This commit is contained in:
2025-05-21 02:55:35 +09:00
parent 3f868cd995
commit 76dcd4c479
20 changed files with 36 additions and 36 deletions

View File

@ -2,7 +2,7 @@ package app.revanced.patches.kakaotalk.ads
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.ads.fingerprints.removeBizBoardFingerprint import app.revanced.patches.kakaotalk.ads.fingerprints.measuringBizBoardFingerprint
@Suppress("unused") @Suppress("unused")
val removeBizBoardPatch = bytecodePatch( val removeBizBoardPatch = bytecodePatch(
@ -12,7 +12,7 @@ val removeBizBoardPatch = bytecodePatch(
compatibleWith("com.kakao.talk"("25.4.2")) compatibleWith("com.kakao.talk"("25.4.2"))
execute { execute {
val method = removeBizBoardFingerprint.method val method = measuringBizBoardFingerprint.method
method.addInstructions( method.addInstructions(
0, 0,

View File

@ -2,7 +2,7 @@ package app.revanced.patches.kakaotalk.ads
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.ads.fingerprints.removeFocusAdFingerprint import app.revanced.patches.kakaotalk.ads.fingerprints.loadFocusAdFingerprint
val removeFocusAdPatch = bytecodePatch( val removeFocusAdPatch = bytecodePatch(
name = "Remove focus ad", name = "Remove focus ad",
@ -11,7 +11,7 @@ val removeFocusAdPatch = bytecodePatch(
compatibleWith("com.kakao.talk"("25.4.2")) compatibleWith("com.kakao.talk"("25.4.2"))
execute { execute {
removeFocusAdFingerprint.method.addInstructions( loadFocusAdFingerprint.method.addInstructions(
0, 0,
""" """
const/4 v0, 0x1 const/4 v0, 0x1

View File

@ -2,7 +2,7 @@ package app.revanced.patches.kakaotalk.ads
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.ads.fingerprints.removeOlkChatRoomListAdFingerprint import app.revanced.patches.kakaotalk.ads.fingerprints.addOlkChatRoomListAdFingerprint
import app.revanced.patches.kakaotalk.common.fingerprints.kotlinUnitInstanceFingerprint import app.revanced.patches.kakaotalk.common.fingerprints.kotlinUnitInstanceFingerprint
@Suppress("unused") @Suppress("unused")
@ -16,7 +16,7 @@ val removeOlkChatRoomListAdPatch = bytecodePatch(
val findUnit = kotlinUnitInstanceFingerprint.method val findUnit = kotlinUnitInstanceFingerprint.method
val unitClass = findUnit.definingClass val unitClass = findUnit.definingClass
val method = removeOlkChatRoomListAdFingerprint.method val method = addOlkChatRoomListAdFingerprint.method
// I tried to find the field name, but it's pretty obvious to me, so I hardcode it. // I tried to find the field name, but it's pretty obvious to me, so I hardcode it.
// If it changes, we need to fix it // If it changes, we need to fix it

View File

@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.Opcode
internal val removeBizBoardFingerprint = fingerprint { internal val measuringBizBoardFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC) accessFlags(AccessFlags.PUBLIC)
returns("V") returns("V")
parameters("I", "I") parameters("I", "I")

View File

@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.Opcode
internal val removeFocusAdFingerprint = fingerprint { internal val loadFocusAdFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC) accessFlags(AccessFlags.PUBLIC)
parameters("Lcom/kakao/adfit/ads/focus/FocusAdLoader\$OnAdLoadListener;") parameters("Lcom/kakao/adfit/ads/focus/FocusAdLoader\$OnAdLoadListener;")
returns("Z") returns("Z")

View File

@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.Opcode
internal val removeOlkChatRoomListAdFingerprint = fingerprint { internal val addOlkChatRoomListAdFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters("Ljava/lang/Object;") parameters("Ljava/lang/Object;")
returns("Ljava/lang/Object;") returns("Ljava/lang/Object;")

View File

@ -3,7 +3,7 @@ package app.revanced.patches.kakaotalk.chatlog
import app.revanced.patcher.extensions.InstructionExtensions.instructions import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.chatlog.fingerprints.remove99ClampFingerprint import app.revanced.patches.kakaotalk.chatlog.fingerprints.processWatermarkCountFingerprint
import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction10t import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction10t
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction22t import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction22t
@ -16,7 +16,7 @@ val remove99ClampPatch = bytecodePatch(
compatibleWith("com.kakao.talk"("25.4.2")) compatibleWith("com.kakao.talk"("25.4.2"))
execute { execute {
val method = remove99ClampFingerprint.method val method = processWatermarkCountFingerprint.method
method.instructions method.instructions
.filterIsInstance<BuilderInstruction22t>() .filterIsInstance<BuilderInstruction22t>()

View File

@ -3,7 +3,7 @@ package app.revanced.patches.kakaotalk.chatlog.fingerprints
import app.revanced.patcher.fingerprint import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.AccessFlags
internal val remove99ClampFingerprint = fingerprint { internal val processWatermarkCountFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Ljava/lang/Object;") returns("Ljava/lang/Object;")
parameters() parameters()

View File

@ -3,8 +3,8 @@ package app.revanced.patches.kakaotalk.chatroom
import app.revanced.patcher.extensions.InstructionExtensions.instructions import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.chatroom.fingerprints.remove300PlusLimitBaseChatRoomFingerprint import app.revanced.patches.kakaotalk.chatroom.fingerprints.limit300PlusBaseChatRoomFingerprint
import app.revanced.patches.kakaotalk.chatroom.fingerprints.remove300PlusLimitOpenChatRoomFingerprint import app.revanced.patches.kakaotalk.chatroom.fingerprints.limit300PlusOpenChatRoomFingerprint
import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction10t import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction10t
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction22t import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction22t
@ -17,7 +17,7 @@ val remove300PlusLimitBaseChatRoomPatch = bytecodePatch(
compatibleWith("com.kakao.talk"("25.4.2")) compatibleWith("com.kakao.talk"("25.4.2"))
execute { execute {
val method = remove300PlusLimitBaseChatRoomFingerprint.method val method = limit300PlusBaseChatRoomFingerprint.method
val branches = method.instructions val branches = method.instructions
.filterIsInstance<BuilderInstruction22t>() .filterIsInstance<BuilderInstruction22t>()
@ -43,7 +43,7 @@ val remove300PlusLimitOpenChatRoomPatch = bytecodePatch(
compatibleWith("com.kakao.talk"("25.4.2")) compatibleWith("com.kakao.talk"("25.4.2"))
execute { execute {
val method = remove300PlusLimitOpenChatRoomFingerprint.method val method = limit300PlusOpenChatRoomFingerprint.method
method.instructions method.instructions
.filterIsInstance<BuilderInstruction22t>() .filterIsInstance<BuilderInstruction22t>()

View File

@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.AccessFlags
@Suppress("unused") @Suppress("unused")
internal val remove300PlusLimitBaseChatRoomFingerprint = fingerprint { internal val limit300PlusBaseChatRoomFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("V") returns("V")
parameters("Lcom/kakao/talk/widget/ViewBindable;") parameters("Lcom/kakao/talk/widget/ViewBindable;")
@ -12,7 +12,7 @@ internal val remove300PlusLimitBaseChatRoomFingerprint = fingerprint {
} }
@Suppress("unused") @Suppress("unused")
internal val remove300PlusLimitOpenChatRoomFingerprint = fingerprint { internal val limit300PlusOpenChatRoomFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("V") returns("V")
parameters() parameters()

View File

@ -2,7 +2,7 @@ package app.revanced.patches.kakaotalk.emoticon
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.emoticon.fingerprints.forceEnableEmoticonPlusFingerprint import app.revanced.patches.kakaotalk.emoticon.fingerprints.isEnableEmoticonPlusFingerprint
@Suppress("unused") @Suppress("unused")
val forceEnableEmoticonPlusPatch = bytecodePatch( val forceEnableEmoticonPlusPatch = bytecodePatch(
@ -12,7 +12,7 @@ val forceEnableEmoticonPlusPatch = bytecodePatch(
compatibleWith("com.kakao.talk"("25.4.2")) compatibleWith("com.kakao.talk"("25.4.2"))
execute { execute {
forceEnableEmoticonPlusFingerprint.method.addInstructions( isEnableEmoticonPlusFingerprint.method.addInstructions(
0, 0,
""" """
const/4 v0, 0x1 const/4 v0, 0x1

View File

@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.Opcode
internal val forceEnableEmoticonPlusFingerprint = fingerprint { internal val isEnableEmoticonPlusFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC) accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
returns("Z") returns("Z")
parameters() parameters()

View File

@ -3,7 +3,7 @@ package app.revanced.patches.kakaotalk.ghost
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.common.fingerprints.kotlinUnitInstanceFingerprint import app.revanced.patches.kakaotalk.common.fingerprints.kotlinUnitInstanceFingerprint
import app.revanced.patches.kakaotalk.ghost.fingerprints.ghostModeFingerprint import app.revanced.patches.kakaotalk.ghost.fingerprints.sendCurrentActionFingerprint
@Suppress("unused") @Suppress("unused")
val ghostMode = bytecodePatch( val ghostMode = bytecodePatch(
@ -16,7 +16,7 @@ val ghostMode = bytecodePatch(
val findUnit = kotlinUnitInstanceFingerprint.method val findUnit = kotlinUnitInstanceFingerprint.method
val unitClass = findUnit.definingClass val unitClass = findUnit.definingClass
val method = ghostModeFingerprint.method val method = sendCurrentActionFingerprint.method
// I tried to find the field name, but it's pretty obvious to me, so I hardcode it. // I tried to find the field name, but it's pretty obvious to me, so I hardcode it.
// If it changes, we need to fix it // If it changes, we need to fix it

View File

@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.Opcode
internal val ghostModeFingerprint = fingerprint { internal val sendCurrentActionFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Ljava/lang/Object;") returns("Ljava/lang/Object;")
parameters("Ljava/lang/Object;") parameters("Ljava/lang/Object;")

View File

@ -5,8 +5,8 @@ import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.integrity.fingerprints.bypassMoatCheckFingerprintOne import app.revanced.patches.kakaotalk.integrity.fingerprints.moatCheckResultFingerprintOne
import app.revanced.patches.kakaotalk.integrity.fingerprints.bypassMoatCheckFingerprintTwo import app.revanced.patches.kakaotalk.integrity.fingerprints.moatCheckResultFingerprintTwo
import app.revanced.patches.kakaotalk.integrity.fingerprints.postprocessMoatCheckFailedFingerprint import app.revanced.patches.kakaotalk.integrity.fingerprints.postprocessMoatCheckFailedFingerprint
import app.revanced.util.getReference import app.revanced.util.getReference
import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.Opcode
@ -73,7 +73,7 @@ val bypassMoatCheckPatch = bytecodePatch(
} }
} }
patch(bypassMoatCheckFingerprintOne) patch(moatCheckResultFingerprintOne)
patch(bypassMoatCheckFingerprintTwo) patch(moatCheckResultFingerprintTwo)
} }
} }

View File

@ -3,7 +3,7 @@ package app.revanced.patches.kakaotalk.integrity
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.common.fingerprints.kotlinUnitInstanceFingerprint import app.revanced.patches.kakaotalk.common.fingerprints.kotlinUnitInstanceFingerprint
import app.revanced.patches.kakaotalk.integrity.fingerprints.bypassRequestChecksumsFingerprint import app.revanced.patches.kakaotalk.integrity.fingerprints.requestChecksumsFingerprint
@Suppress("unused") @Suppress("unused")
val bypassRequestChecksumPatch = bytecodePatch( val bypassRequestChecksumPatch = bytecodePatch(
@ -16,7 +16,7 @@ val bypassRequestChecksumPatch = bytecodePatch(
val findUnit = kotlinUnitInstanceFingerprint.method val findUnit = kotlinUnitInstanceFingerprint.method
val unitClass = findUnit.definingClass val unitClass = findUnit.definingClass
val method = bypassRequestChecksumsFingerprint.method val method = requestChecksumsFingerprint.method
// I tried to find the field name, but it's pretty obvious to me, so I hardcode it. // I tried to find the field name, but it's pretty obvious to me, so I hardcode it.
// If it changes, we need to fix it // If it changes, we need to fix it

View File

@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.Opcode
internal val bypassMoatCheckFingerprintOne = fingerprint { internal val moatCheckResultFingerprintOne = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters("Ljava/lang/Object;", "Ljava/lang/Object;", "Ljava/lang/Object;") parameters("Ljava/lang/Object;", "Ljava/lang/Object;", "Ljava/lang/Object;")
returns("Ljava/lang/Object;") returns("Ljava/lang/Object;")
@ -31,7 +31,7 @@ internal val bypassMoatCheckFingerprintOne = fingerprint {
) )
} }
internal val bypassMoatCheckFingerprintTwo = fingerprint { internal val moatCheckResultFingerprintTwo = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters("Ljava/lang/Object;", "Ljava/lang/Object;", "Ljava/lang/Object;") parameters("Ljava/lang/Object;", "Ljava/lang/Object;", "Ljava/lang/Object;")
returns("Ljava/lang/Object;") returns("Ljava/lang/Object;")

View File

@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.Opcode
internal val bypassRequestChecksumsFingerprint = fingerprint { internal val requestChecksumsFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Ljava/lang/Object;") returns("Ljava/lang/Object;")
strings( strings(

View File

@ -3,7 +3,7 @@ package app.revanced.patches.kakaotalk.misc
import app.revanced.patcher.extensions.InstructionExtensions.instructions import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.misc.fingerprints.removeShopTabFingerprint import app.revanced.patches.kakaotalk.misc.fingerprints.addNavigationTabFingerprint
import app.revanced.util.getReference import app.revanced.util.getReference
import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction21c import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction21c
@ -18,7 +18,7 @@ val removeShopTabPatch = bytecodePatch(
compatibleWith("com.kakao.talk"("25.4.2")) compatibleWith("com.kakao.talk"("25.4.2"))
execute { execute {
val method = removeShopTabFingerprint.method val method = addNavigationTabFingerprint.method
val insns = method.instructions val insns = method.instructions
val matches = insns.mapIndexedNotNull { idx, inst -> val matches = insns.mapIndexedNotNull { idx, inst ->

View File

@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.Opcode
internal val removeShopTabFingerprint = fingerprint { internal val addNavigationTabFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("V") returns("V")
parameters() parameters()