fix(youtube/video-ads): block earlier in call hirarchy (#813)

This commit is contained in:
OxrxL 2022-10-19 11:31:42 +02:00 committed by GitHub
parent 0dfa8b829a
commit d5b39b3adc
2 changed files with 13 additions and 19 deletions

View file

@ -5,16 +5,15 @@ import app.revanced.patcher.annotation.Version
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
import app.revanced.patches.youtube.ad.video.annotations.VideoAdsCompatibility
import org.jf.dexlib2.Opcode
@Name("load-ads-fingerprint")
@VideoAdsCompatibility
@Version("0.0.1")
object LoadAdsFingerprint : MethodFingerprint(
opcodes = listOf(Opcode.INVOKE_INTERFACE_RANGE),
strings = listOf(
"Received unsupported ad type, this should never happen.",
"AdBreakRenderer path ad playerResponse cannot be deserialized."
"OnFulfillmentTriggersActivated has non registered slot",
"markFillRequested",
"Trying to enter a slot when a slot of same type and physical position is already active. Its status: ",
)
)

View file

@ -41,21 +41,16 @@ class VideoAdsPatch : BytecodePatch(
)
)
with(LoadAdsFingerprint.result!!) {
val insertIndex = scanResult.patternScanResult!!.startIndex
with(mutableMethod) {
addInstructions(
insertIndex,
"""
invoke-static { }, Lapp/revanced/integrations/patches/VideoAdsPatch;->shouldShowAds()Z
move-result v4
if-nez v4, :show_video_ads
return-object v9
""",
listOf(ExternalLabel("show_video_ads", instruction(insertIndex)))
)
}
}
val lithoAdsFingerprintMethod = LoadAdsFingerprint.result!!.mutableMethod
lithoAdsFingerprintMethod.addInstructions(
0, """
invoke-static { }, Lapp/revanced/integrations/patches/VideoAdsPatch;->shouldShowAds()Z
move-result v0
if-nez v0, :show_video_ads
return-void
""", listOf(ExternalLabel("show_video_ads", lithoAdsFingerprintMethod.instruction(0)))
)
return PatchResultSuccess()
}