From 90b7577914f8357a1604f49e475878eddb07d993 Mon Sep 17 00:00:00 2001 From: inotia00 Date: Thu, 13 Apr 2023 16:08:14 +0900 Subject: [PATCH] rollback `video-id-hook` patch --- .../patch/OverlayButtonsBytecodePatch.kt | 4 +- .../patch/ReturnYouTubeDislikePatch.kt | 8 +-- .../patch/SponsorBlockBytecodePatch.kt | 12 ++-- .../fingerprint/LegacyVideoIdFingerprint.kt | 16 +++++ .../legacy/patch/LegacyVideoIdPatch.kt | 63 +++++++++++++++++++ .../MainstreamVideoIdFingerprint.kt} | 4 +- ...erControllerSetTimeReferenceFingerprint.kt | 2 +- .../fingerprint/PlayerInitFingerprint.kt | 2 +- .../fingerprint/SeekFingerprint.kt | 2 +- .../fingerprint/TimebarFingerprint.kt | 2 +- .../VideoTimeHighPrecisionFingerprint.kt | 2 +- ...VideoTimeHighPrecisionParentFingerprint.kt | 2 +- .../patch/MainstreamVideoIdPatch.kt} | 16 ++--- .../patch/VideoQualityBytecodePatch.kt | 6 +- .../bytecode/patch/VideoSpeedBytecodePatch.kt | 8 +-- 15 files changed, 114 insertions(+), 35 deletions(-) create mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/fingerprint/LegacyVideoIdFingerprint.kt create mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/patch/LegacyVideoIdPatch.kt rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{fingerprint/VideoIdFingerprint.kt => mainstream/fingerprint/MainstreamVideoIdFingerprint.kt} (80%) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{ => mainstream}/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt (82%) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{ => mainstream}/fingerprint/PlayerInitFingerprint.kt (75%) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{ => mainstream}/fingerprint/SeekFingerprint.kt (70%) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{ => mainstream}/fingerprint/TimebarFingerprint.kt (85%) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{ => mainstream}/fingerprint/VideoTimeHighPrecisionFingerprint.kt (88%) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{ => mainstream}/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt (74%) rename src/main/kotlin/app/revanced/patches/youtube/misc/videoid/{patch/VideoIdPatch.kt => mainstream/patch/MainstreamVideoIdPatch.kt} (96%) diff --git a/src/main/kotlin/app/revanced/patches/youtube/button/overlaybuttons/bytecode/patch/OverlayButtonsBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/button/overlaybuttons/bytecode/patch/OverlayButtonsBytecodePatch.kt index 9a9634fba..dd4e267f9 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/button/overlaybuttons/bytecode/patch/OverlayButtonsBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/button/overlaybuttons/bytecode/patch/OverlayButtonsBytecodePatch.kt @@ -9,14 +9,14 @@ import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patches.shared.annotation.YouTubeCompatibility import app.revanced.patches.youtube.misc.playercontrols.patch.PlayerControlsPatch -import app.revanced.patches.youtube.misc.videoid.patch.VideoIdPatch +import app.revanced.patches.youtube.misc.videoid.mainstream.patch.MainstreamVideoIdPatch import app.revanced.util.integrations.Constants.BUTTON_PATH @Name("overlay-buttons-bytecode-patch") @DependsOn( dependencies = [ PlayerControlsPatch::class, - VideoIdPatch::class + MainstreamVideoIdPatch::class ] ) @YouTubeCompatibility diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/patch/ReturnYouTubeDislikePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/patch/ReturnYouTubeDislikePatch.kt index aab4d7ca3..6a460fc42 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/patch/ReturnYouTubeDislikePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/patch/ReturnYouTubeDislikePatch.kt @@ -19,7 +19,7 @@ import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod import app.revanced.patches.shared.annotation.YouTubeCompatibility import app.revanced.patches.youtube.misc.returnyoutubedislike.fingerprints.* import app.revanced.patches.youtube.misc.settings.resource.patch.SettingsPatch -import app.revanced.patches.youtube.misc.videoid.patch.VideoIdPatch +import app.revanced.patches.youtube.misc.videoid.mainstream.patch.MainstreamVideoIdPatch import app.revanced.util.integrations.Constants.UTILS_PATH import org.jf.dexlib2.Opcode import org.jf.dexlib2.builder.instruction.BuilderInstruction3rc @@ -35,8 +35,8 @@ import org.jf.dexlib2.iface.reference.MethodReference @Description("Shows the dislike count of videos using the Return YouTube Dislike API.") @DependsOn( [ - SettingsPatch::class, - VideoIdPatch::class + MainstreamVideoIdPatch::class, + SettingsPatch::class ] ) @YouTubeCompatibility @@ -168,7 +168,7 @@ class ReturnYouTubeDislikePatch : BytecodePatch( } ?: return ShortsTextComponentParentFingerprint.toErrorResult() - VideoIdPatch.injectCall("$INTEGRATIONS_RYD_CLASS_DESCRIPTOR->newVideoLoaded(Ljava/lang/String;)V") + MainstreamVideoIdPatch.injectCall("$INTEGRATIONS_RYD_CLASS_DESCRIPTOR->newVideoLoaded(Ljava/lang/String;)V") /* * Add ReVanced Settings diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/patch/SponsorBlockBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/patch/SponsorBlockBytecodePatch.kt index 7a0464fc8..a84278b93 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/patch/SponsorBlockBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/patch/SponsorBlockBytecodePatch.kt @@ -17,7 +17,7 @@ import app.revanced.patches.youtube.misc.playercontrols.patch.PlayerControlsPatc import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch import app.revanced.patches.youtube.misc.sponsorblock.bytecode.fingerprints.* import app.revanced.patches.youtube.misc.timebar.patch.HookTimebarPatch -import app.revanced.patches.youtube.misc.videoid.patch.VideoIdPatch +import app.revanced.patches.youtube.misc.videoid.mainstream.patch.MainstreamVideoIdPatch import app.revanced.util.bytecode.BytecodeHelper.injectInit import app.revanced.util.bytecode.BytecodeHelper.updatePatchStatus import org.jf.dexlib2.Opcode @@ -31,10 +31,10 @@ import org.jf.dexlib2.iface.reference.MethodReference @Name("sponsorblock-bytecode-patch") @DependsOn( [ + MainstreamVideoIdPatch::class, OverrideSpeedHookPatch::class, PlayerControlsPatch::class, - SharedResourceIdPatch::class, - VideoIdPatch::class + SharedResourceIdPatch::class ] ) @YouTubeCompatibility @@ -49,7 +49,7 @@ class SponsorBlockBytecodePatch : BytecodePatch( /* * Hook the video time methods */ - with(VideoIdPatch) { + with(MainstreamVideoIdPatch) { videoTimeHook( INTEGRATIONS_PLAYER_CONTROLLER_CLASS_DESCRIPTOR, "setVideoTime" @@ -59,7 +59,7 @@ class SponsorBlockBytecodePatch : BytecodePatch( /* * Inject VideoIdPatch */ - VideoIdPatch.injectCall("$INTEGRATIONS_PLAYER_CONTROLLER_CLASS_DESCRIPTOR->setCurrentVideoId(Ljava/lang/String;)V") + MainstreamVideoIdPatch.injectCall("$INTEGRATIONS_PLAYER_CONTROLLER_CLASS_DESCRIPTOR->setCurrentVideoId(Ljava/lang/String;)V") /* @@ -146,7 +146,7 @@ class SponsorBlockBytecodePatch : BytecodePatch( val register = (instruction as OneRegisterInstruction).registerA it.replaceInstruction( index, - "const-string v$register, \"${VideoIdPatch.reactReference}\"" + "const-string v$register, \"${MainstreamVideoIdPatch.reactReference}\"" ) break } diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/fingerprint/LegacyVideoIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/fingerprint/LegacyVideoIdFingerprint.kt new file mode 100644 index 000000000..30ca9f748 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/fingerprint/LegacyVideoIdFingerprint.kt @@ -0,0 +1,16 @@ +package app.revanced.patches.youtube.misc.videoid.legacy.fingerprint + +import app.revanced.patcher.extensions.or +import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint +import org.jf.dexlib2.AccessFlags +import org.jf.dexlib2.Opcode + +object LegacyVideoIdFingerprint : MethodFingerprint( + returnType = "V", + access = AccessFlags.DECLARED_SYNCHRONIZED or AccessFlags.FINAL or AccessFlags.PUBLIC, + parameters = listOf("L"), + opcodes = listOf(Opcode.INVOKE_INTERFACE), + customFingerprint = { + it.definingClass.endsWith("PlaybackLifecycleMonitor;") + } +) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/patch/LegacyVideoIdPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/patch/LegacyVideoIdPatch.kt new file mode 100644 index 000000000..90d01a327 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/patch/LegacyVideoIdPatch.kt @@ -0,0 +1,63 @@ +package app.revanced.patches.youtube.misc.videoid.legacy.patch + +import app.revanced.extensions.toErrorResult +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.util.proxy.mutableTypes.MutableMethod +import app.revanced.patches.shared.annotation.YouTubeCompatibility +import app.revanced.patches.youtube.misc.videoid.legacy.fingerprint.LegacyVideoIdFingerprint +import org.jf.dexlib2.iface.instruction.OneRegisterInstruction + +@Name("video-id-hook-legacy") +@Description("Hook to detect when the video id changes (legacy)") +@YouTubeCompatibility +@Version("0.0.1") +class LegacyVideoIdPatch : BytecodePatch( + listOf( + LegacyVideoIdFingerprint + ) +) { + override fun execute(context: BytecodeContext): PatchResult { + + LegacyVideoIdFingerprint.result?.let { + insertIndex = it.scanResult.patternScanResult!!.endIndex + + with (it.mutableMethod) { + insertMethod = this + videoIdRegister = (implementation!!.instructions[insertIndex + 1] as OneRegisterInstruction).registerA + } + offset++ // offset so setCurrentVideoId is called before any injected call + } ?: return LegacyVideoIdFingerprint.toErrorResult() + + return PatchResultSuccess() + } + + companion object { + private var offset = 2 + + private var insertIndex: Int = 0 + private var videoIdRegister: Int = 0 + private lateinit var insertMethod: MutableMethod + + + /** + * Adds an invoke-static instruction, called with the new id when the video changes + * @param methodDescriptor which method to call. Params have to be `Ljava/lang/String;` + */ + fun injectCall( + methodDescriptor: String + ) { + insertMethod.addInstructions( + insertIndex + offset, // move-result-object offset + "invoke-static {v$videoIdRegister}, $methodDescriptor" + ) + } + } +} + diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/MainstreamVideoIdFingerprint.kt similarity index 80% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoIdFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/MainstreamVideoIdFingerprint.kt index fb724c890..a1af6f296 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoIdFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/MainstreamVideoIdFingerprint.kt @@ -1,11 +1,11 @@ -package app.revanced.patches.youtube.misc.videoid.fingerprint +package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode -object VideoIdFingerprint : MethodFingerprint( +object MainstreamVideoIdFingerprint : MethodFingerprint( returnType = "V", access = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt similarity index 82% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt index 6d546eff2..3af0e0aab 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/PlayerControllerSetTimeReferenceFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.fingerprint +package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import org.jf.dexlib2.Opcode diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/PlayerInitFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/PlayerInitFingerprint.kt similarity index 75% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/PlayerInitFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/PlayerInitFingerprint.kt index 532e4afbe..b35e1df5c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/PlayerInitFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/PlayerInitFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.fingerprint +package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/SeekFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/SeekFingerprint.kt similarity index 70% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/SeekFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/SeekFingerprint.kt index 6e6f14f3b..256007ec5 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/SeekFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/SeekFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.fingerprint +package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/TimebarFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/TimebarFingerprint.kt similarity index 85% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/TimebarFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/TimebarFingerprint.kt index c2748dab9..664b8ce6c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/TimebarFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/TimebarFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.fingerprint +package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoTimeHighPrecisionFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionFingerprint.kt similarity index 88% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoTimeHighPrecisionFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionFingerprint.kt index 016c258cc..e58f4a07a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoTimeHighPrecisionFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.fingerprint +package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt similarity index 74% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt index 3544fd9ce..b5eb3e2e4 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionParentFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.fingerprint +package app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/patch/VideoIdPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/patch/MainstreamVideoIdPatch.kt similarity index 96% rename from src/main/kotlin/app/revanced/patches/youtube/misc/videoid/patch/VideoIdPatch.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/patch/MainstreamVideoIdPatch.kt index f6029360b..883b5ad27 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/patch/VideoIdPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/patch/MainstreamVideoIdPatch.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.videoid.patch +package app.revanced.patches.youtube.misc.videoid.mainstream.patch import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Description @@ -19,7 +19,7 @@ import app.revanced.patches.shared.fingerprints.VideoEndFingerprint import app.revanced.patches.shared.fingerprints.VideoEndParentFingerprint import app.revanced.patches.youtube.misc.playertype.patch.PlayerTypeHookPatch import app.revanced.patches.youtube.misc.timebar.patch.HookTimebarPatch -import app.revanced.patches.youtube.misc.videoid.fingerprint.* +import app.revanced.patches.youtube.misc.videoid.mainstream.fingerprint.* import app.revanced.util.integrations.Constants.VIDEO_PATH import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.builder.MutableMethodImplementation @@ -32,8 +32,8 @@ import org.jf.dexlib2.immutable.ImmutableMethod import org.jf.dexlib2.immutable.ImmutableMethodParameter import org.jf.dexlib2.util.MethodUtil -@Name("video-id-hook") -@Description("Hook to detect when the video id changes") +@Name("video-id-hook-mainstream") +@Description("Hook to detect when the video id changes (mainstream)") @YouTubeCompatibility @Version("0.0.1") @DependsOn( @@ -42,14 +42,14 @@ import org.jf.dexlib2.util.MethodUtil PlayerTypeHookPatch::class ] ) -class VideoIdPatch : BytecodePatch( +class MainstreamVideoIdPatch : BytecodePatch( listOf( + MainstreamVideoIdFingerprint, PlayerControllerSetTimeReferenceFingerprint, PlayerInitFingerprint, SeekFingerprint, TimebarFingerprint, VideoEndParentFingerprint, - VideoIdFingerprint, VideoTimeHighPrecisionFingerprint, VideoTimeHighPrecisionParentFingerprint ) @@ -154,7 +154,7 @@ class VideoIdPatch : BytecodePatch( } - VideoIdFingerprint.result?.let { + MainstreamVideoIdFingerprint.result?.let { insertIndex = it.scanResult.patternScanResult!!.endIndex with (it.mutableMethod) { @@ -162,7 +162,7 @@ class VideoIdPatch : BytecodePatch( videoIdRegister = (implementation!!.instructions[insertIndex] as OneRegisterInstruction).registerA } offset++ // offset so setVideoId is called before any injected call - } ?: return VideoIdFingerprint.toErrorResult() + } ?: return MainstreamVideoIdFingerprint.toErrorResult() injectCall("$INTEGRATIONS_CLASS_DESCRIPTOR->setVideoId(Ljava/lang/String;)V") diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/patch/VideoQualityBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/patch/VideoQualityBytecodePatch.kt index 5d06f8234..a952b245b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/patch/VideoQualityBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/patch/VideoQualityBytecodePatch.kt @@ -12,14 +12,14 @@ import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patches.shared.annotation.YouTubeCompatibility -import app.revanced.patches.youtube.misc.videoid.patch.VideoIdPatch +import app.revanced.patches.youtube.misc.videoid.legacy.patch.LegacyVideoIdPatch import app.revanced.patches.youtube.video.quality.bytecode.fingerprints.* import app.revanced.util.integrations.Constants.VIDEO_PATH import org.jf.dexlib2.iface.instruction.ReferenceInstruction import org.jf.dexlib2.iface.reference.FieldReference @Name("default-video-quality-bytecode-patch") -@DependsOn([VideoIdPatch::class]) +@DependsOn([LegacyVideoIdPatch::class]) @YouTubeCompatibility @Version("0.0.1") class VideoQualityBytecodePatch : BytecodePatch( @@ -62,7 +62,7 @@ class VideoQualityBytecodePatch : BytecodePatch( ) } ?: return VideoQualitySettingsParentFingerprint.toErrorResult() - VideoIdPatch.injectCall("$INTEGRATIONS_VIDEO_QUALITY_CLASS_DESCRIPTOR->newVideoStarted(Ljava/lang/String;)V") + LegacyVideoIdPatch.injectCall("$INTEGRATIONS_VIDEO_QUALITY_CLASS_DESCRIPTOR->newVideoStarted(Ljava/lang/String;)V") return PatchResultSuccess() } diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/patch/VideoSpeedBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/patch/VideoSpeedBytecodePatch.kt index 2ec2a538f..bf926a7e7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/patch/VideoSpeedBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/patch/VideoSpeedBytecodePatch.kt @@ -13,7 +13,7 @@ import app.revanced.patches.shared.annotation.YouTubeCompatibility import app.revanced.patches.youtube.misc.overridespeed.bytecode.fingerprints.VideoSpeedSettingsFingerprint import app.revanced.patches.youtube.misc.overridespeed.bytecode.patch.OverrideSpeedHookPatch import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch -import app.revanced.patches.youtube.misc.videoid.patch.VideoIdPatch +import app.revanced.patches.youtube.misc.videoid.legacy.patch.LegacyVideoIdPatch import app.revanced.patches.youtube.video.livestream.patch.LiveStreamPatch import app.revanced.patches.youtube.video.speed.bytecode.fingerprints.* import app.revanced.util.bytecode.BytecodeHelper.updatePatchStatus @@ -23,10 +23,10 @@ import org.jf.dexlib2.iface.instruction.FiveRegisterInstruction @Name("default-video-speed-bytecode-patch") @DependsOn( [ + LegacyVideoIdPatch::class, LiveStreamPatch::class, OverrideSpeedHookPatch::class, - SharedResourceIdPatch::class, - VideoIdPatch::class + SharedResourceIdPatch::class ] ) @YouTubeCompatibility @@ -56,7 +56,7 @@ class VideoSpeedBytecodePatch : BytecodePatch( "invoke-static {}, $INTEGRATIONS_VIDEO_SPEED_CLASS_DESCRIPTOR->setDefaultSpeed()V" ) ?: return VideoSpeedSettingsFingerprint.toErrorResult() - VideoIdPatch.injectCall("$INTEGRATIONS_VIDEO_SPEED_CLASS_DESCRIPTOR->newVideoStarted(Ljava/lang/String;)V") + LegacyVideoIdPatch.injectCall("$INTEGRATIONS_VIDEO_SPEED_CLASS_DESCRIPTOR->newVideoStarted(Ljava/lang/String;)V") context.updatePatchStatus("VideoSpeed")