mirror of
https://github.com/revanced/revanced-patches
synced 2024-11-06 22:27:00 +01:00
feat(twitch): debug-mode
patch (#1031)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
This commit is contained in:
parent
2e3d1edb8e
commit
c514860bc4
@ -0,0 +1,10 @@
|
|||||||
|
package app.revanced.patches.twitch.debug.annotations
|
||||||
|
|
||||||
|
import app.revanced.patcher.annotation.Compatibility
|
||||||
|
import app.revanced.patcher.annotation.Package
|
||||||
|
|
||||||
|
@Compatibility([Package("tv.twitch.android.app")])
|
||||||
|
@Target(AnnotationTarget.CLASS)
|
||||||
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
|
internal annotation class DebugModeCompatibility
|
||||||
|
|
@ -0,0 +1,16 @@
|
|||||||
|
package app.revanced.patches.twitch.debug.fingerprints
|
||||||
|
|
||||||
|
import app.revanced.patcher.annotation.Name
|
||||||
|
import app.revanced.patcher.annotation.Version
|
||||||
|
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
|
import app.revanced.patches.twitch.debug.annotations.DebugModeCompatibility
|
||||||
|
|
||||||
|
@Name("is-debug-config-enabled-fingerprint")
|
||||||
|
@DebugModeCompatibility
|
||||||
|
@Version("0.0.1")
|
||||||
|
object IsDebugConfigEnabledFingerprint : MethodFingerprint(
|
||||||
|
customFingerprint = { methodDef ->
|
||||||
|
methodDef.definingClass.endsWith("BuildConfigUtil;") && methodDef.name == "isDebugConfigEnabled"
|
||||||
|
}
|
||||||
|
)
|
@ -0,0 +1,16 @@
|
|||||||
|
package app.revanced.patches.twitch.debug.fingerprints
|
||||||
|
|
||||||
|
import app.revanced.patcher.annotation.Name
|
||||||
|
import app.revanced.patcher.annotation.Version
|
||||||
|
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
|
import app.revanced.patches.twitch.debug.annotations.DebugModeCompatibility
|
||||||
|
|
||||||
|
@Name("is-om-verification-enabled-fingerprint")
|
||||||
|
@DebugModeCompatibility
|
||||||
|
@Version("0.0.1")
|
||||||
|
object IsOmVerificationEnabledFingerprint : MethodFingerprint(
|
||||||
|
customFingerprint = { methodDef ->
|
||||||
|
methodDef.definingClass.endsWith("BuildConfigUtil;") && methodDef.name == "isOmVerificationEnabled"
|
||||||
|
}
|
||||||
|
)
|
@ -0,0 +1,16 @@
|
|||||||
|
package app.revanced.patches.twitch.debug.fingerprints
|
||||||
|
|
||||||
|
import app.revanced.patcher.annotation.Name
|
||||||
|
import app.revanced.patcher.annotation.Version
|
||||||
|
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
|
import app.revanced.patches.twitch.debug.annotations.DebugModeCompatibility
|
||||||
|
|
||||||
|
@Name("should-show-debug-options-fingerprint")
|
||||||
|
@DebugModeCompatibility
|
||||||
|
@Version("0.0.1")
|
||||||
|
object ShouldShowDebugOptionsFingerprint : MethodFingerprint(
|
||||||
|
customFingerprint = { methodDef ->
|
||||||
|
methodDef.definingClass.endsWith("BuildConfigUtil;") && methodDef.name == "shouldShowDebugOptions"
|
||||||
|
}
|
||||||
|
)
|
@ -0,0 +1,49 @@
|
|||||||
|
package app.revanced.patches.twitch.debug.patch
|
||||||
|
|
||||||
|
import app.revanced.patcher.annotation.Description
|
||||||
|
import app.revanced.patcher.annotation.Name
|
||||||
|
import app.revanced.patcher.annotation.Version
|
||||||
|
import app.revanced.patcher.data.BytecodeContext
|
||||||
|
import app.revanced.patcher.extensions.addInstructions
|
||||||
|
import app.revanced.patcher.patch.BytecodePatch
|
||||||
|
import app.revanced.patcher.patch.PatchResult
|
||||||
|
import app.revanced.patcher.patch.PatchResultSuccess
|
||||||
|
import app.revanced.patcher.patch.annotations.Patch
|
||||||
|
import app.revanced.patches.twitch.debug.annotations.DebugModeCompatibility
|
||||||
|
import app.revanced.patches.twitch.debug.fingerprints.IsDebugConfigEnabledFingerprint
|
||||||
|
import app.revanced.patches.twitch.debug.fingerprints.IsOmVerificationEnabledFingerprint
|
||||||
|
import app.revanced.patches.twitch.debug.fingerprints.ShouldShowDebugOptionsFingerprint
|
||||||
|
|
||||||
|
@Patch(false)
|
||||||
|
@Name("debug-mode")
|
||||||
|
@Description("Enables Twitch's internal debugging mode.")
|
||||||
|
@DebugModeCompatibility
|
||||||
|
@Version("0.0.1")
|
||||||
|
class DebugModePatch : BytecodePatch(
|
||||||
|
listOf(
|
||||||
|
IsDebugConfigEnabledFingerprint,
|
||||||
|
IsOmVerificationEnabledFingerprint,
|
||||||
|
ShouldShowDebugOptionsFingerprint
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
override fun execute(context: BytecodeContext): PatchResult {
|
||||||
|
listOf(
|
||||||
|
IsDebugConfigEnabledFingerprint,
|
||||||
|
IsOmVerificationEnabledFingerprint,
|
||||||
|
ShouldShowDebugOptionsFingerprint
|
||||||
|
).forEach {
|
||||||
|
with(it.result!!) {
|
||||||
|
with(mutableMethod) {
|
||||||
|
addInstructions(
|
||||||
|
0,
|
||||||
|
"""
|
||||||
|
const/4 v0, 0x1
|
||||||
|
return v0
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return PatchResultSuccess()
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user