From 4deae44c9e53bb88b982d75b36a27b20b3fcbf14 Mon Sep 17 00:00:00 2001 From: Joar Heimonen Date: Mon, 4 Sep 2023 12:54:02 +0200 Subject: [PATCH] Updated patch to work with more versions --- .../annotations/GrindrPatchCompatibility.kt | 2 +- ...t.kt => GetRegistrationCertFingerprint.kt} | 2 +- .../grindr/patch/FirebaseGetCertPatch.kt | 6 +++--- .../fingerprints/HasFeatureFingerprint.kt | 19 ++++++++++++++----- ...InnaccessibleProfileManagerbFingerprint.kt | 2 -- ...InnaccessibleProfileManagerdFingerprint.kt | 11 ++++++++--- .../fingerprints/IsFreeFingerprint.kt | 10 +++++++++- .../fingerprints/IsNoPlusUpsellFingerprint.kt | 2 -- .../fingerprints/IsNoXtraUpsellFingerprint.kt | 5 +---- .../fingerprints/IsPlusFingerprint.kt | 2 +- .../fingerprints/IsUnlimitedFingerprint.kt | 2 +- .../fingerprints/IsXtraFingerprint.kt | 2 +- 12 files changed, 40 insertions(+), 25 deletions(-) rename src/main/kotlin/app/revanced/patches/grindr/fingerprints/{GetCertRegistrationFingerprint.kt => GetRegistrationCertFingerprint.kt} (83%) diff --git a/src/main/kotlin/app/revanced/patches/grindr/annotations/GrindrPatchCompatibility.kt b/src/main/kotlin/app/revanced/patches/grindr/annotations/GrindrPatchCompatibility.kt index 98e901b76e..c0d3bef45d 100644 --- a/src/main/kotlin/app/revanced/patches/grindr/annotations/GrindrPatchCompatibility.kt +++ b/src/main/kotlin/app/revanced/patches/grindr/annotations/GrindrPatchCompatibility.kt @@ -3,6 +3,6 @@ package app.revanced.patches.grindr.annotations import app.revanced.patcher.annotation.Compatibility import app.revanced.patcher.annotation.Package -@Compatibility([Package("com.grindrapp.android", arrayOf("9.15.0"))]) +@Compatibility([Package("com.grindrapp.android", arrayOf("9.14.0", "9.15.0", "9.16.0"))]) @Target(AnnotationTarget.CLASS) internal annotation class GrindrPatchCompatibility \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/grindr/fingerprints/GetCertRegistrationFingerprint.kt b/src/main/kotlin/app/revanced/patches/grindr/fingerprints/GetRegistrationCertFingerprint.kt similarity index 83% rename from src/main/kotlin/app/revanced/patches/grindr/fingerprints/GetCertRegistrationFingerprint.kt rename to src/main/kotlin/app/revanced/patches/grindr/fingerprints/GetRegistrationCertFingerprint.kt index 3d68435044..8f13e14352 100644 --- a/src/main/kotlin/app/revanced/patches/grindr/fingerprints/GetCertRegistrationFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/grindr/fingerprints/GetRegistrationCertFingerprint.kt @@ -2,7 +2,7 @@ package app.revanced.patches.grindr.fingerprints import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -object GetReqistrationCertFingerprint : MethodFingerprint( +object GetRegistrationCertFingerprint : MethodFingerprint( "Ljava/lang/String;", strings = listOf( "FirebaseRemoteConfig", diff --git a/src/main/kotlin/app/revanced/patches/grindr/patch/FirebaseGetCertPatch.kt b/src/main/kotlin/app/revanced/patches/grindr/patch/FirebaseGetCertPatch.kt index 0cc98cd3e7..5da0453f38 100644 --- a/src/main/kotlin/app/revanced/patches/grindr/patch/FirebaseGetCertPatch.kt +++ b/src/main/kotlin/app/revanced/patches/grindr/patch/FirebaseGetCertPatch.kt @@ -7,12 +7,12 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patches.grindr.fingerprints.GetMessagingCertFingerprint -import app.revanced.patches.grindr.fingerprints.GetReqistrationCertFingerprint +import app.revanced.patches.grindr.fingerprints.GetRegistrationCertFingerprint import app.revanced.patches.grindr.Constants.SPOOFED_PACKAGE_SIGNATURE class FirebaseGetCertPatch : BytecodePatch( listOf( - GetReqistrationCertFingerprint, + GetRegistrationCertFingerprint, GetMessagingCertFingerprint ) ) { @@ -24,7 +24,7 @@ class FirebaseGetCertPatch : BytecodePatch( return-object v0 """ - val registrationCertMethod = GetReqistrationCertFingerprint.result!!.mutableMethod + val registrationCertMethod = GetRegistrationCertFingerprint.result!!.mutableMethod val messagingCertMethod = GetMessagingCertFingerprint.result!!.mutableMethod registrationCertMethod.addInstructions( diff --git a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/HasFeatureFingerprint.kt b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/HasFeatureFingerprint.kt index 3489ec8db2..d392ef5f80 100644 --- a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/HasFeatureFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/HasFeatureFingerprint.kt @@ -6,12 +6,21 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.Opcode -//a - object HasFeatureFingerprint : MethodFingerprint( "Z", parameters = listOf("Lcom/grindrapp/android/model/Feature;"), - customFingerprint = { methodDef, _ -> - methodDef.name.contains("a") - } + opcodes = listOf( + Opcode.CONST_STRING, + Opcode.INVOKE_STATIC, + Opcode.INVOKE_STATIC, + Opcode.MOVE_RESULT, + Opcode.CONST_4, + Opcode.IF_LEZ, + Opcode.IGET_OBJECT, + Opcode.NEW_INSTANCE, + Opcode.INVOKE_DIRECT, + Opcode.CONST_STRING, + Opcode.INVOKE_VIRTUAL, + Opcode.INVOKE_VIRTUAL + ), ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/InnaccessibleProfileManagerbFingerprint.kt b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/InnaccessibleProfileManagerbFingerprint.kt index c38a786bff..a1a9216e5c 100644 --- a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/InnaccessibleProfileManagerbFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/InnaccessibleProfileManagerbFingerprint.kt @@ -6,8 +6,6 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.Opcode -//b - @FuzzyPatternScanMethod(2) object InnaccessibleProfileManagerbFingerprint : MethodFingerprint( "Z", diff --git a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/InnaccessibleProfileManagerdFingerprint.kt b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/InnaccessibleProfileManagerdFingerprint.kt index 7dc0057297..0aa72cc421 100644 --- a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/InnaccessibleProfileManagerdFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/InnaccessibleProfileManagerdFingerprint.kt @@ -6,10 +6,15 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.Opcode -//d - object InnaccessibleProfileManagerdFingerprint : MethodFingerprint( + "Z", + opcodes = listOf( + Opcode.INVOKE_VIRTUAL, + Opcode.MOVE_RESULT, + Opcode.XOR_INT_LIT8, + Opcode.RETURN + ), customFingerprint = { methodDef, _ -> - methodDef.name == "d" && methodDef.definingClass.contains("InaccessibleProfileManager") + methodDef.definingClass.contains("InaccessibleProfileManager") } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsFreeFingerprint.kt b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsFreeFingerprint.kt index 162eb1d91e..0dcc819bc3 100644 --- a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsFreeFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsFreeFingerprint.kt @@ -7,7 +7,15 @@ import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.Opcode object IsFreeFingerprint : MethodFingerprint( + "Z", + accessFlags = AccessFlags.PUBLIC.value, + opcodes = listOf( + Opcode.IGET_OBJECT, + Opcode.INVOKE_INTERFACE, + Opcode.MOVE_RESULT, + Opcode.RETURN + ), customFingerprint = { methodDef, _ -> - methodDef.name == "r" && methodDef.definingClass.endsWith("storage/s0;") + methodDef.name == "r" && methodDef.definingClass.contains("storage") } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsNoPlusUpsellFingerprint.kt b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsNoPlusUpsellFingerprint.kt index 82ddc1d2ec..1b2029f460 100644 --- a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsNoPlusUpsellFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsNoPlusUpsellFingerprint.kt @@ -6,8 +6,6 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.Opcode -//A - object IsNoPlusUpsellFingerprint : MethodFingerprint( "Z", accessFlags = AccessFlags.PUBLIC.value, diff --git a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsNoXtraUpsellFingerprint.kt b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsNoXtraUpsellFingerprint.kt index 01e795094d..18f6a3f4ef 100644 --- a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsNoXtraUpsellFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsNoXtraUpsellFingerprint.kt @@ -20,8 +20,5 @@ object IsNoXtraUpsellFingerprint : MethodFingerprint( Opcode.GOTO, Opcode.CONST_4, Opcode.RETURN - ), - customFingerprint = { methodDef, _ -> - methodDef.name.contains("h") - } + ) ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsPlusFingerprint.kt b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsPlusFingerprint.kt index 2cc03c8a01..ddc884dc94 100644 --- a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsPlusFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsPlusFingerprint.kt @@ -25,6 +25,6 @@ object IsPlusFingerprint : MethodFingerprint( Opcode.RETURN ), customFingerprint = { methodDef, _ -> - methodDef.name.contains("y") + methodDef.name == "y" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsUnlimitedFingerprint.kt b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsUnlimitedFingerprint.kt index 7a5c35637a..cfc3ca98cd 100644 --- a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsUnlimitedFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsUnlimitedFingerprint.kt @@ -25,6 +25,6 @@ object IsUnlimitedFingerprint : MethodFingerprint( Opcode.RETURN ), customFingerprint = { methodDef, _ -> - methodDef.name.contains("x") + methodDef.name == "x" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsXtraFingerprint.kt b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsXtraFingerprint.kt index 9c3fb82b3e..4783ae83b9 100644 --- a/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsXtraFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/grindr/unlimited/fingerprints/IsXtraFingerprint.kt @@ -25,6 +25,6 @@ object IsXtraFingerprint : MethodFingerprint( Opcode.RETURN ), customFingerprint = { methodDef, _ -> - methodDef.name.contains("p") + methodDef.name == "p" } ) \ No newline at end of file