feat(Instagram): Add Enable location sticker redesign patch
Adds a new patch that unlocks the redesigned location sticker styles on Android. The redesign is already fully built into the app but gated behind a MobileConfig boolean flag. This patch hardcodes the flag check to always return true, making all redesigned style variants available.
This commit is contained in:
parent
882cb4a0d4
commit
c9e9fafa49
2 changed files with 39 additions and 0 deletions
|
|
@ -0,0 +1,22 @@
|
||||||
|
package app.revanced.patches.instagram.story.locationsticker
|
||||||
|
|
||||||
|
import app.revanced.patcher.extensions.replaceInstruction
|
||||||
|
import app.revanced.patcher.patch.bytecodePatch
|
||||||
|
|
||||||
|
@Suppress("unused")
|
||||||
|
val enableLocationStickerRedesignPatch = bytecodePatch(
|
||||||
|
name = "Enable location sticker redesign",
|
||||||
|
description = "Unlocks the redesigned location sticker with additional style options.",
|
||||||
|
use = false,
|
||||||
|
) {
|
||||||
|
compatibleWith("com.instagram.android")
|
||||||
|
|
||||||
|
apply {
|
||||||
|
locationStickerRedesignGateMethod.method.apply {
|
||||||
|
// The gate method reads a MobileConfig boolean flag and returns it directly (6 instructions total).
|
||||||
|
// Replacing the move-result at index 4 with a hardcoded true skips the flag check entirely,
|
||||||
|
// enabling the redesigned sticker styles regardless of server configuration.
|
||||||
|
replaceInstruction(4, "const/4 v0, 0x1")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
package app.revanced.patches.instagram.story.locationsticker
|
||||||
|
|
||||||
|
import app.revanced.patcher.composingFirstMethod
|
||||||
|
import app.revanced.patcher.instructions
|
||||||
|
import app.revanced.patcher.invoke
|
||||||
|
import app.revanced.patcher.patch.BytecodePatchContext
|
||||||
|
|
||||||
|
// MobileConfig boolean key that gates the redesigned location sticker styles.
|
||||||
|
// The method containing this constant reads the flag and returns it directly,
|
||||||
|
// making it the sole control point for the feature. The key is stable across
|
||||||
|
// app updates as MobileConfig keys are server-assigned constants.
|
||||||
|
private const val LOCATION_STICKER_REDESIGN_CONFIG_KEY = 0x8105a100041e0dL
|
||||||
|
|
||||||
|
internal val BytecodePatchContext.locationStickerRedesignGateMethod
|
||||||
|
by composingFirstMethod {
|
||||||
|
instructions(LOCATION_STICKER_REDESIGN_CONFIG_KEY())
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue