feat(YouTube/Hide end screen overlay): support version 18.44.41

This commit is contained in:
inotia00 2023-11-14 09:38:45 +09:00
parent 357555780f
commit dc560eecf2
2 changed files with 19 additions and 16 deletions

View File

@ -5,10 +5,11 @@ import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.BytecodePatch
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.youtube.fullscreen.endscreenoverlay.fingerprints.EndScreenResultsFingerprint
import app.revanced.patches.youtube.fullscreen.endscreenoverlay.fingerprints.EndScreenResultsParentFingerprint
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch
import app.revanced.patches.youtube.utils.settings.SettingsPatch
import app.revanced.util.integrations.Constants.FULLSCREEN
@ -40,18 +41,20 @@ import app.revanced.util.integrations.Constants.FULLSCREEN
"18.40.34",
"18.41.39",
"18.42.41",
"18.43.45"
"18.43.45",
"18.44.41"
]
)
]
)
@Suppress("unused")
object HideEndScreenOverlayPatch : BytecodePatch(
setOf(EndScreenResultsFingerprint)
setOf(EndScreenResultsParentFingerprint)
) {
override fun execute(context: BytecodeContext) {
EndScreenResultsFingerprint.result?.let {
it.mutableMethod.apply {
EndScreenResultsParentFingerprint.result?.let {
it.mutableClass.methods.find { method -> method.parameters == listOf("I", "Z", "I") }
?.apply {
addInstructionsWithLabels(
0, """
invoke-static {}, $FULLSCREEN->hideEndScreenOverlay()Z
@ -60,8 +63,8 @@ object HideEndScreenOverlayPatch : BytecodePatch(
return-void
""", ExternalLabel("show", getInstruction(0))
)
}
} ?: throw EndScreenResultsFingerprint.exception
} ?: throw PatchException("Could not find targetMethod")
} ?: throw EndScreenResultsParentFingerprint.exception
/**
* Add settings

View File

@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.AppRelatedEndScreenResults
import app.revanced.util.bytecode.isWideLiteralExists
object EndScreenResultsFingerprint : MethodFingerprint(
object EndScreenResultsParentFingerprint : MethodFingerprint(
returnType = "V",
customFingerprint = { methodDef, _ -> methodDef.isWideLiteralExists(AppRelatedEndScreenResults) }
)