Skip to content

Commit

Permalink
refactor(Twitter): load Utils.load() dynamically
Browse files Browse the repository at this point in the history
  • Loading branch information
Swakshan committed Apr 18, 2024
1 parent 9f581ce commit 5379276
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package app.revanced.patches.shared.misc.integrations.fingerprint

import app.revanced.patcher.fingerprint.MethodFingerprint

object IntegrationsUtilsFingerprint:MethodFingerprint(
returnType = "V",
customFingerprint = {it,_->
it.definingClass == "Lapp/revanced/integrations/shared/Utils;" && it.name == "load"
}
)
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import app.revanced.patcher.patch.PatchException
import crimera.patches.twitter.featureFlag.fingerprints.FeatureFlagFingerprint
import app.revanced.patcher.patch.annotation.CompatiblePackage
import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patches.shared.misc.integrations.fingerprint.IntegrationsUtilsFingerprint
import com.android.tools.smali.dexlib2.Opcode
import crimera.patches.twitter.misc.settings.SettingsPatch
import crimera.patches.twitter.misc.settings.fingerprints.SettingsStatusLoadFingerprint
Expand All @@ -21,7 +22,7 @@ import crimera.patches.twitter.misc.settings.fingerprints.SettingsStatusLoadFing
)
@Suppress("unused")
object FeatureFlagPatch:BytecodePatch(
setOf(FeatureFlagFingerprint)
setOf(FeatureFlagFingerprint,IntegrationsUtilsFingerprint)
) {
override fun execute(context: BytecodeContext) {

Expand All @@ -44,6 +45,11 @@ object FeatureFlagPatch:BytecodePatch(
0,
"${SettingsPatch.SSTS_DESCRIPTOR}->enableFeatureFlags()V"
)
IntegrationsUtilsFingerprint.result!!.mutableMethod.addInstruction(
1,
"${SettingsPatch.FSTS_DESCRIPTOR}->load()V"
)

//end
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package crimera.patches.twitter.misc.settings

import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
Expand All @@ -10,6 +11,7 @@ import app.revanced.patcher.patch.PatchException
import app.revanced.patcher.patch.annotation.CompatiblePackage
import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patcher.util.smali.ExternalLabel
import app.revanced.patches.shared.misc.integrations.fingerprint.IntegrationsUtilsFingerprint
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction11x
import crimera.patches.twitter.misc.integrations.IntegrationsPatch
Expand All @@ -22,7 +24,7 @@ import crimera.patches.twitter.misc.settings.fingerprints.SettingsFingerprint
compatiblePackages = [CompatiblePackage("com.twitter.android")],
)
object SettingsPatch : BytecodePatch(
setOf(SettingsFingerprint)
setOf(SettingsFingerprint,IntegrationsUtilsFingerprint)
) {
private const val INTEGRATIONS_PACKAGE = "Lapp/revanced/integrations/twitter"
private const val UTILS_DESCRIPTOR = "$INTEGRATIONS_PACKAGE/Utils"
Expand Down Expand Up @@ -69,5 +71,12 @@ object SettingsPatch : BytecodePatch(
""",
ExternalLabel("cont", prefCLickedMethod.getInstruction(constIndex))
)

IntegrationsUtilsFingerprint.result!!.mutableMethod.addInstruction(
0,
"${SSTS_DESCRIPTOR}->load()V"
)

//end
}
}

0 comments on commit 5379276

Please sign in to comment.