fix(Boost for reddit - Client spoof): Use a different user agent to combat Reddit's API issues

This commit is contained in:
oSumAtrIX 2025-03-06 11:33:06 +01:00
parent 1ed6933224
commit 5d3c8175b3
No known key found for this signature in database
GPG Key ID: A9B3094ACDB604B4

View File

@ -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<OneRegisterInstruction>(userAgentTemplateIndex).registerA
it.method.replaceInstruction(userAgentTemplateIndex, "const-string v$register, \"$userAgent\"")
}
// endregion
}