add support YouTube v18.14.40

This commit is contained in:
inotia00 2023-04-13 16:09:11 +09:00
parent 90b7577914
commit e2a57503ee
4 changed files with 16 additions and 25 deletions

View File

@ -13,7 +13,8 @@ import app.revanced.patcher.annotation.Package
"18.10.37", "18.10.37",
"18.11.36", "18.11.36",
"18.12.35", "18.12.35",
"18.13.38" "18.13.38",
"18.14.40"
) )
)] )]
) )

View File

@ -6,8 +6,8 @@ import org.jf.dexlib2.AccessFlags
import org.jf.dexlib2.Opcode import org.jf.dexlib2.Opcode
object MiniPlayerOverrideFingerprint : MethodFingerprint( object MiniPlayerOverrideFingerprint : MethodFingerprint(
returnType = "Z", returnType = "L",
access = AccessFlags.PUBLIC or AccessFlags.STATIC, access = AccessFlags.PUBLIC or AccessFlags.FINAL,
parameters = listOf("L"), parameters = listOf("L"),
opcodes = listOf(Opcode.INVOKE_STATIC), // anchor to insert the instruction strings = listOf("appName")
) )

View File

@ -1,12 +0,0 @@
package app.revanced.patches.youtube.layout.general.tabletminiplayer.fingerprints
import app.revanced.patcher.extensions.or
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
import org.jf.dexlib2.AccessFlags
object MiniPlayerOverrideParentFingerprint : MethodFingerprint(
returnType = "L",
access = AccessFlags.PUBLIC or AccessFlags.STATIC,
parameters = listOf("L"),
strings = listOf("VIDEO_QUALITIES_QUICK_MENU_BOTTOM_SHEET_FRAGMENT")
)

View File

@ -21,6 +21,7 @@ import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch
import app.revanced.patches.youtube.misc.settings.resource.patch.SettingsPatch import app.revanced.patches.youtube.misc.settings.resource.patch.SettingsPatch
import app.revanced.util.integrations.Constants.GENERAL import app.revanced.util.integrations.Constants.GENERAL
import org.jf.dexlib2.Opcode import org.jf.dexlib2.Opcode
import org.jf.dexlib2.builder.instruction.BuilderInstruction21c
import org.jf.dexlib2.iface.instruction.OneRegisterInstruction import org.jf.dexlib2.iface.instruction.OneRegisterInstruction
@Patch @Patch
@ -38,7 +39,7 @@ class TabletMiniPlayerPatch : BytecodePatch(
listOf( listOf(
MiniPlayerDimensionsCalculatorFingerprint, MiniPlayerDimensionsCalculatorFingerprint,
MiniPlayerResponseModelSizeCheckFingerprint, MiniPlayerResponseModelSizeCheckFingerprint,
MiniPlayerOverrideParentFingerprint MiniPlayerOverrideFingerprint
) )
) { ) {
override fun execute(context: BytecodeContext): PatchResult { override fun execute(context: BytecodeContext): PatchResult {
@ -50,16 +51,17 @@ class TabletMiniPlayerPatch : BytecodePatch(
} ?: return MiniPlayerOverrideNoContextFingerprint.toErrorResult() } ?: return MiniPlayerOverrideNoContextFingerprint.toErrorResult()
} ?: return MiniPlayerDimensionsCalculatorFingerprint.toErrorResult() } ?: return MiniPlayerDimensionsCalculatorFingerprint.toErrorResult()
MiniPlayerOverrideParentFingerprint.result?.let { parentResult -> MiniPlayerOverrideFingerprint.result?.let {
MiniPlayerOverrideFingerprint.also { it.resolve(context, parentResult.classDef) }.result?.let { result -> val targetIndex = it.mutableMethod.implementation!!.instructions.indexOfFirst { instruction ->
(context.toMethodWalker(result.method) instruction.opcode == Opcode.CONST_STRING &&
.nextMethod(result.scanResult.patternScanResult!!.startIndex, true) (instruction as BuilderInstruction21c).reference.toString() == "appName"
} + 2
(context.toMethodWalker(it.method)
.nextMethod(targetIndex, true)
.getMethod() as MutableMethod) .getMethod() as MutableMethod)
.instructionProxyCall() .instructionProxyCall()
} ?: return MiniPlayerOverrideFingerprint.toErrorResult() } ?: return MiniPlayerOverrideFingerprint.toErrorResult()
} ?: return MiniPlayerOverrideParentFingerprint.toErrorResult()
MiniPlayerResponseModelSizeCheckFingerprint.result?.let { MiniPlayerResponseModelSizeCheckFingerprint.result?.let {
val (_, _, _) = it.addProxyCall() val (_, _, _) = it.addProxyCall()
} ?: return MiniPlayerResponseModelSizeCheckFingerprint.toErrorResult() } ?: return MiniPlayerResponseModelSizeCheckFingerprint.toErrorResult()