Skip to content

Commit

Permalink
GrindrPlus: Update obfuscation for 24.19.0
Browse files Browse the repository at this point in the history
Update mappings to 24.19.0. Didn't see any major logic changes. Code is untested but should be a good starting point.
  • Loading branch information
Truffle2143 authored Dec 20, 2024
1 parent a9277c6 commit 7c8f0c8
Show file tree
Hide file tree
Showing 14 changed files with 33 additions and 34 deletions.
4 changes: 2 additions & 2 deletions app/src/main/java/com/grindrplus/hooks/ChatTerminal.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ class ChatTerminal : Hook(
"Chat terminal",
"Create a chat terminal to execute commands"
) {
private val chatMessageHandler = "w4.b"
private val chatMessageHandler = "r4.b"

override fun init() {
findClass(chatMessageHandler).hook("n", HookStage.BEFORE) { param ->
findClass(chatMessageHandler).hook("m", HookStage.BEFORE) { param ->
val message = getObjectField(param.arg(0), "chatMessage")
val content = getObjectField(message, "content")
val sender = getObjectField(content, "sender") as String
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/grindrplus/hooks/DisableAnalytics.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class DisableAnalytics : Hook(
"Disable analytics",
"Disable Grindr analytics (data collection)"
) {
private val analyticsRestService = "L4.a"
private val analyticsRestService = "K4.a"

override fun init() {
val analyticsRestServiceClass = findClass(analyticsRestService)
Expand Down
15 changes: 7 additions & 8 deletions app/src/main/java/com/grindrplus/hooks/DisableBoosting.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ class DisableBoosting : Hook(
"Disable boosting",
"Get rid of all upsells related to boosting"
) {
private val drawerProfileUiState = "V9.e\$a"
private val radarUiModel = "J7.a\$a"
private val roamOnBoardingFragment = "Aa.c"
private val drawerProfileUiState = "ca.e\$a"
private val radarUiModel = "X7.a\$a"
private val roamOnBoardingFragment = "Ha.c"
private val fabUiModel = "com.grindrapp.android.boost2.presentation.model.FabUIModel"
private val boostStateClass =
"com.grindrapp.android.ui.drawer.model.SideDrawerMicrosButtonState\$Unavailable"
"com.grindrapp.android.ui.drawer.model.MicrosDrawerItemState\$Unavailable"

override fun init() {
findClass(drawerProfileUiState).hookConstructor(HookStage.AFTER) { param ->
Expand All @@ -38,14 +38,13 @@ class DisableBoosting : Hook(
}

findClass(radarUiModel).hookConstructor(HookStage.AFTER) { param ->
setObjectField(param.thisObject(), "a", false) // showReportButton
setObjectField(param.thisObject(), "b", null) // boostButton
setObjectField(param.thisObject(), "c", null) // roamButton
setObjectField(param.thisObject(), "a", null) // boostButton
setObjectField(param.thisObject(), "b", null) // roamButton
}

// the two anonymous functions that get called to invoke the annoying tooltip
// respectively: showRadarTooltip.<anonymous> and showTapsAndViewedMePopup
listOf("fa.k0", "fa.m0", "fa.n0", "fa.l0").forEach {
listOf("ma.o0", "ma.q0", "ma.r0", "ma.p0").forEach {
findClass(it).hook("invoke", HookStage.BEFORE) { param ->
param.setResult(null)
}
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/grindrplus/hooks/DisableUpdates.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class DisableUpdates : Hook(
"https://raw.githubusercontent.com/R0rt1z2/GrindrPlus/master/version.json"
private val appUpdateInfo = "com.google.android.play.core.appupdate.AppUpdateInfo"
private val appUpdateZzm = "com.google.android.play.core.appupdate.zzm"
private val appUpgradeManager = "g6.j"
private val appUpgradeManager = "e6.j"
private val appConfiguration = "com.grindrapp.android.base.config.AppConfiguration"
private var versionCode: Int = 0
private var versionName: String = ""
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/grindrplus/hooks/EmptyCalls.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class EmptyCalls : Hook(
"Video calls",
"Allow video calls on empty chats"
) {
private val individualChatNavViewModel = "J9.a"
private val individualChatNavViewModel = "D4.V"
private val createVideoCallResponse = "com.grindrapp.android.chat.api.model.CreateVideoCallResponse"
private val videoCallInfoResponse = "com.grindrapp.android.chat.api.model.VideoCallInfoResponse"

Expand Down
12 changes: 6 additions & 6 deletions app/src/main/java/com/grindrplus/hooks/EnableUnlimited.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,20 @@ class EnableUnlimited : Hook(
) {
private val userSession = "com.grindrapp.android.storage.b"
private val subscribeToInterstitialsList = listOf(
"H9.Z\$a" // Chat ($1)
"x4.y\$a" // Chat ($1)
)
override fun init() {
val userSessionClass = findClass(userSession)

userSessionClass.hook( // hasFeature()
"v", HookStage.BEFORE // done
"h", HookStage.BEFORE // done
) { param ->
val disallowedFeatures = setOf("DisableScreenshot")
param.setResult(param.arg(0, String::class.java) !in disallowedFeatures)
}

userSessionClass.hook( // isNoXtraUpsell()
"k", HookStage.BEFORE
"l", HookStage.BEFORE
) { param ->
param.setResult(true)
}
Expand All @@ -36,19 +36,19 @@ class EnableUnlimited : Hook(
}

userSessionClass.hook( // isFree()
"w", HookStage.BEFORE
"x", HookStage.BEFORE
) { param ->
param.setResult(false)
}

userSessionClass.hook( // isFreeXtra()
"t", HookStage.BEFORE
"u", HookStage.BEFORE
) { param ->
param.setResult(false)
}

userSessionClass.hook( // isFreeUnlimited()
"A", HookStage.BEFORE
"B", HookStage.BEFORE
) { param ->
param.setResult(true)
}
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/grindrplus/hooks/Favorites.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class Favorites : Hook(
) {
private val recyclerViewLayoutParams =
"androidx.recyclerview.widget.RecyclerView\$LayoutParams"
private val favoritesFragment = "com.grindrapp.android.favorites.FavoritesFragment"
private val favoritesFragment = "com.grindrapp.android.favorites.presentation.ui.FavoritesFragment"

override fun init() {
val recyclerViewLayoutParamsConstructor = findClass(recyclerViewLayoutParams)
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/grindrplus/hooks/FeatureGranting.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class FeatureGranting : Hook(
"Feature granting",
"Grant all Grindr features"
) {
private val featureFlags = "E5.i"
private val featureFlags = "A5.g"
private val upsellsV8Model = "com.grindrapp.android.model.UpsellsV8"
private val insertsModel = "com.grindrapp.android.model.Inserts"
private val settingDistanceVisibilityViewModel =
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/grindrplus/hooks/LocalSavedPhrases.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ class LocalSavedPhrases : Hook(
"Local saved phrases",
"Save unlimited phrases locally"
) {
private val phrasesRestService = "C3.k"
private val createSuccessResult = "N6.a\$b"
private val phrasesRestService = "v3.k"
private val createSuccessResult = "L6.a\$b"
private val retrofit = "retrofit2.Retrofit"
private val chatRestService = "com.grindrapp.android.chat.data.datasource.api.service.ChatRestService"
private val addSavedPhraseResponse =
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/grindrplus/hooks/LocationSpoofer.kt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class LocationSpoofer : Hook(
"Spoof your location"
) {
private val location = "android.location.Location"
private val chatBottomToolbar = "com.grindrapp.android.view.ChatBottomToolbar"
private val chatBottomToolbar = "com.grindrapp.android.chat.presentation.ui.view.ChatBottomToolbar"

override fun init() {
val locationClass = findClass(location)
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/grindrplus/hooks/OnlineIndicator.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class OnlineIndicator : Hook(
"Online indicator",
"Customize online indicator duration"
) {
val utils = "Ra.a0"
val utils = "Za.c0"

override fun init() {
findClass(utils) // shouldShowOnlineIndicator()
Expand Down
8 changes: 4 additions & 4 deletions app/src/main/java/com/grindrplus/hooks/PersistentIncognito.kt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class PersistentIncognito : Hook(
"Persistent incognito",
"Makes incognito mode persistent"
) {
private val meRestService = "C3.q"
private val meRestService = "v3.q"
private val grindrSettings = "com.grindrapp.android.model.GrindrSettings"
private val drawerProfileFragment = "com.grindrapp.android.ui.drawer.DrawerProfileFragment"

Expand All @@ -46,10 +46,10 @@ class PersistentIncognito : Hook(
}

findClass(drawerProfileFragment)
.hook("J", HookStage.BEFORE) { param ->
.hook("H", HookStage.BEFORE) { param ->
val incognito = param.arg(0) as Boolean
val viewModel = callMethod(param.thisObject(), "H")
callMethod(viewModel, "I", incognito)
val viewModel = callMethod(param.thisObject(), "F")
callMethod(viewModel, "G", incognito)
Config.put("incognito_mode", incognito)
incognito.let {
if (it) GrindrPlus.httpClient.enableIncognito()
Expand Down
8 changes: 4 additions & 4 deletions app/src/main/java/com/grindrplus/hooks/QuickBlock.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ class QuickBlock : Hook(
"Quick block",
"Ability to block users quickly"
) {
private val blockViewModel = "H9.f"
private val profileViewHolder = "com.grindrapp.android.ui.profileV2.j"
private val blockViewModel = "S9.b"
private val profileViewHolder = "com.grindrapp.android.ui.profileV2.g"
override fun init() {
findClass(profileViewHolder).hook("F", HookStage.AFTER) { param ->
val jVar = param.arg(0) as Any
val arg0 = param.arg(0) as Any
val profileViewState = param.args().getOrNull(1) ?: return@hook
val profileId = getObjectField(profileViewState, "profileId") as String
val viewBinding = getObjectField(jVar, "p")
val viewBinding = getObjectField(arg0, "p")
val profileToolbar = getObjectField(viewBinding, "r")
val toolbarMenu = callMethod(profileToolbar, "getMenu") as Menu
val menuActions = getId("menu_actions", "id", GrindrPlus.context)
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/grindrplus/hooks/UnlimitedAlbums.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class UnlimitedAlbums : Hook(
"Unlimited albums",
"Allow to be able to view unlimited albums"
) {
private val albumsService = "D3.a"
private val albumsService = "w3.a"

override fun init() {
val albumsService = findClass(albumsService)
Expand Down

0 comments on commit 7c8f0c8

Please sign in to comment.