From 8b02acd3b33c4702d81ec46dccb35604ec5fbe02 Mon Sep 17 00:00:00 2001 From: OxrxL <108184954+OxrxL@users.noreply.github.com> Date: Wed, 19 Oct 2022 23:59:18 +0200 Subject: [PATCH] fix(youtube/video-ads): add back initial method to block ads (#818) --- ...gerprint.kt => LoadVideoAdsFingerprint.kt} | 3 +-- .../fingerprints/ShowVideoAdsFingerprint.kt | 21 +++++++++++++++++++ .../youtube/ad/video/patch/VideoAdsPatch.kt | 15 ++++++++++--- 3 files changed, 34 insertions(+), 5 deletions(-) rename src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/{LoadAdsFingerprint.kt => LoadVideoAdsFingerprint.kt} (92%) create mode 100644 src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/ShowVideoAdsFingerprint.kt diff --git a/src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/LoadAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/LoadVideoAdsFingerprint.kt similarity index 92% rename from src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/LoadAdsFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/LoadVideoAdsFingerprint.kt index 1ef079761..c19031c39 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/LoadAdsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/LoadVideoAdsFingerprint.kt @@ -7,10 +7,9 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import app.revanced.patches.youtube.ad.video.annotations.VideoAdsCompatibility @Name("load-ads-fingerprint") - @VideoAdsCompatibility @Version("0.0.1") -object LoadAdsFingerprint : MethodFingerprint( +object LoadVideoAdsFingerprint : MethodFingerprint( strings = listOf( "OnFulfillmentTriggersActivated has non registered slot", "markFillRequested", diff --git a/src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/ShowVideoAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/ShowVideoAdsFingerprint.kt new file mode 100644 index 000000000..407d52151 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/ShowVideoAdsFingerprint.kt @@ -0,0 +1,21 @@ +package app.revanced.patches.youtube.ad.video.fingerprints + +import app.revanced.patcher.annotation.Name +import app.revanced.patcher.annotation.Version +import app.revanced.patcher.extensions.or + +import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint +import app.revanced.patches.youtube.ad.video.annotations.VideoAdsCompatibility +import org.jf.dexlib2.AccessFlags +import org.jf.dexlib2.Opcode + +@Name("load-ads-parent-fingerprint") +@VideoAdsCompatibility +@Version("0.0.1") +object ShowVideoAdsFingerprint : MethodFingerprint( + "V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("Z"), listOf( + Opcode.IPUT_BOOLEAN, + Opcode.INVOKE_VIRTUAL, + Opcode.RETURN_VOID, + ) +) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/ad/video/patch/VideoAdsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/ad/video/patch/VideoAdsPatch.kt index d08920a77..7474a2870 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ad/video/patch/VideoAdsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ad/video/patch/VideoAdsPatch.kt @@ -13,7 +13,8 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patcher.patch.annotations.Patch import app.revanced.patcher.util.smali.ExternalLabel import app.revanced.patches.youtube.ad.video.annotations.VideoAdsCompatibility -import app.revanced.patches.youtube.ad.video.fingerprints.LoadAdsFingerprint +import app.revanced.patches.youtube.ad.video.fingerprints.LoadVideoAdsFingerprint +import app.revanced.patches.youtube.ad.video.fingerprints.ShowVideoAdsFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch import app.revanced.patches.youtube.misc.settings.framework.components.impl.StringResource @@ -27,7 +28,8 @@ import app.revanced.patches.youtube.misc.settings.framework.components.impl.Swit @Version("0.0.1") class VideoAdsPatch : BytecodePatch( listOf( - LoadAdsFingerprint + LoadVideoAdsFingerprint, + ShowVideoAdsFingerprint, ) ) { override fun execute(context: BytecodeContext): PatchResult { @@ -41,7 +43,7 @@ class VideoAdsPatch : BytecodePatch( ) ) - val lithoAdsFingerprintMethod = LoadAdsFingerprint.result!!.mutableMethod + val lithoAdsFingerprintMethod = LoadVideoAdsFingerprint.result!!.mutableMethod lithoAdsFingerprintMethod.addInstructions( 0, """ @@ -52,6 +54,13 @@ class VideoAdsPatch : BytecodePatch( """, listOf(ExternalLabel("show_video_ads", lithoAdsFingerprintMethod.instruction(0))) ) + ShowVideoAdsFingerprint.result!!.mutableMethod.addInstructions( + 0, """ + invoke-static { }, Lapp/revanced/integrations/patches/VideoAdsPatch;->shouldShowAds()Z + move-result v1 + """ + ) + return PatchResultSuccess() } }