From 5d3c8175b34a3f6ae2732b25db0851773a8c000d Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Thu, 6 Mar 2025 11:33:06 +0100 Subject: [PATCH] fix(Boost for reddit - Client spoof): Use a different user agent to combat Reddit's API issues --- .../boostforreddit/api/SpoofClientPatch.kt | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/api/SpoofClientPatch.kt b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/api/SpoofClientPatch.kt index 389facb95..a8abe9256 100644 --- a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/api/SpoofClientPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/api/SpoofClientPatch.kt @@ -1,7 +1,10 @@ package app.revanced.patches.reddit.customclients.boostforreddit.api import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patches.reddit.customclients.spoofClientPatch +import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction val spoofClientPatch = spoofClientPatch(redirectUri = "http://rubenmayayo.com") { clientIdOption -> compatibleWith("com.rubenmayayo.reddit") @@ -23,14 +26,15 @@ val spoofClientPatch = spoofClientPatch(redirectUri = "http://rubenmayayo.com") // region Patch user agent. - // Use a random number as the platform in the user agent string. - val platformName = (0..100000).random() - val platformParameter = 0 - - buildUserAgentFingerprint.method.addInstructions( - 0, - "const-string p$platformParameter, \"$platformName\"", - ) + // Use a random user agent. + val randomName = (0..100000).random() + val userAgent = "$randomName:app.revanced.$randomName:v1.0.0 (by /u/revanced)" + buildUserAgentFingerprint.let { + val userAgentTemplateIndex = it.stringMatches!!.first().index + val register = it.method.getInstruction(userAgentTemplateIndex).registerA + + it.method.replaceInstruction(userAgentTemplateIndex, "const-string v$register, \"$userAgent\"") + } // endregion }