mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-04-30 22:54:36 +02:00
feat(YouTube): add support version v18.38.44
, v18.39.41
This commit is contained in:
parent
d303dd4ab0
commit
88dedec168
@ -32,7 +32,9 @@ Example:
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -41,7 +41,9 @@ import org.w3c.dom.Element
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -26,7 +26,9 @@ import app.revanced.util.integrations.Constants.ADS_PATH
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -36,7 +36,9 @@ import app.revanced.util.resources.ResourceUtils.copyXmlNode
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -30,7 +30,9 @@ import app.revanced.util.integrations.Constants.PATCHES_PATH
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -30,7 +30,9 @@ import app.revanced.util.integrations.Constants.PATCHES_PATH
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -41,7 +41,9 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -41,7 +41,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -45,7 +45,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -40,7 +40,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -36,7 +36,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -35,7 +35,9 @@ import app.revanced.util.integrations.Constants.FULLSCREEN
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -47,7 +47,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -35,7 +35,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
@ -32,7 +32,9 @@ import app.revanced.util.integrations.Constants.PATCHES_PATH
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -37,7 +37,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -41,7 +41,9 @@ import app.revanced.util.integrations.Constants.GENERAL
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -31,7 +31,9 @@ import app.revanced.util.integrations.Constants.GENERAL
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -39,7 +39,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -35,7 +35,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -35,7 +35,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -30,7 +30,9 @@ import app.revanced.util.integrations.Constants.PATCHES_PATH
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -35,7 +35,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -38,7 +38,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -37,7 +37,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -35,7 +35,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -31,7 +31,9 @@ import app.revanced.util.integrations.Constants.PATCHES_PATH
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -33,7 +33,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -35,7 +35,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -19,7 +19,9 @@ import app.revanced.util.bytecode.getStringIndex
|
|||||||
import app.revanced.util.integrations.Constants.GENERAL
|
import app.revanced.util.integrations.Constants.GENERAL
|
||||||
import app.revanced.util.integrations.Constants.PATCHES_PATH
|
import app.revanced.util.integrations.Constants.PATCHES_PATH
|
||||||
import com.android.tools.smali.dexlib2.Opcode
|
import com.android.tools.smali.dexlib2.Opcode
|
||||||
|
import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
|
||||||
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
||||||
|
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||||
|
|
||||||
@Patch(
|
@Patch(
|
||||||
name = "Hide mix playlists",
|
name = "Hide mix playlists",
|
||||||
@ -43,7 +45,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
@ -108,6 +112,7 @@ object MixPlaylistsPatch : BytecodePatch(
|
|||||||
|
|
||||||
val insertIndex = methodInstructions.indexOfFirst { instruction ->
|
val insertIndex = methodInstructions.indexOfFirst { instruction ->
|
||||||
instruction.opcode == Opcode.INVOKE_INTERFACE
|
instruction.opcode == Opcode.INVOKE_INTERFACE
|
||||||
|
&& (instruction as? ReferenceInstruction)?.reference.toString().contains("[B")
|
||||||
}
|
}
|
||||||
val freeIndex = it.scanResult.patternScanResult!!.startIndex - 1
|
val freeIndex = it.scanResult.patternScanResult!!.startIndex - 1
|
||||||
|
|
||||||
|
@ -31,7 +31,9 @@ import app.revanced.util.integrations.Constants.GENERAL
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -40,7 +40,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -43,7 +43,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -33,7 +33,9 @@ import app.revanced.util.integrations.Constants.GENERAL
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -40,7 +40,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -37,7 +37,9 @@ import app.revanced.util.integrations.Constants.GENERAL
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -27,7 +27,9 @@ import app.revanced.util.resources.ResourceHelper.updatePatchStatusIcon
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
@ -27,7 +27,9 @@ import app.revanced.util.resources.ResourceHelper.updatePatchStatusIcon
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -27,7 +27,9 @@ import app.revanced.util.resources.ResourceHelper.updatePatchStatusIcon
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
@ -31,7 +31,9 @@ import app.revanced.util.resources.ResourceHelper.updatePatchStatusLabel
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -25,7 +25,9 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
@ -30,7 +30,9 @@ import app.revanced.util.resources.ResourceUtils.copyResources
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -27,7 +27,9 @@ import org.w3c.dom.Element
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
@ -29,7 +29,9 @@ import kotlin.io.path.exists
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
@ -34,7 +34,9 @@ import app.revanced.util.resources.ResourceUtils.copyXmlNode
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
@ -33,7 +33,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -27,7 +27,9 @@ import kotlin.io.path.exists
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
@ -33,7 +33,9 @@ import org.w3c.dom.Element
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -32,7 +32,9 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -35,7 +35,9 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -26,7 +26,9 @@ import app.revanced.util.integrations.Constants.MISC_PATH
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -44,7 +44,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -25,7 +25,9 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
@ -34,7 +34,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -32,7 +32,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -38,7 +38,9 @@ import com.android.tools.smali.dexlib2.Opcode
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -42,7 +42,9 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -32,7 +32,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -30,7 +30,9 @@ import app.revanced.util.integrations.Constants.MISC_PATH
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -42,7 +42,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -28,7 +28,9 @@ import app.revanced.util.resources.ResourceUtils.copyXmlNode
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -26,7 +26,9 @@ import app.revanced.util.resources.ResourceHelper.addTranslations
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -33,7 +33,9 @@ import app.revanced.util.integrations.Constants.NAVIGATION
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -32,7 +32,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -13,7 +13,9 @@ import app.revanced.patches.youtube.navigation.navigationbuttons.fingerprints.Pi
|
|||||||
import app.revanced.patches.youtube.navigation.navigationbuttons.fingerprints.PivotBarShortsButtonViewFingerprint
|
import app.revanced.patches.youtube.navigation.navigationbuttons.fingerprints.PivotBarShortsButtonViewFingerprint
|
||||||
import app.revanced.patches.youtube.utils.fingerprints.PivotBarCreateButtonViewFingerprint
|
import app.revanced.patches.youtube.utils.fingerprints.PivotBarCreateButtonViewFingerprint
|
||||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch
|
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch
|
||||||
|
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ImageOnlyTab
|
||||||
import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
||||||
|
import app.revanced.util.bytecode.getWideLiteralIndex
|
||||||
import app.revanced.util.integrations.Constants.NAVIGATION
|
import app.revanced.util.integrations.Constants.NAVIGATION
|
||||||
import app.revanced.util.pivotbar.InjectionUtils.REGISTER_TEMPLATE_REPLACEMENT
|
import app.revanced.util.pivotbar.InjectionUtils.REGISTER_TEMPLATE_REPLACEMENT
|
||||||
import app.revanced.util.pivotbar.InjectionUtils.injectHook
|
import app.revanced.util.pivotbar.InjectionUtils.injectHook
|
||||||
@ -42,7 +44,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
@ -94,12 +98,12 @@ object NavigationButtonsPatch : BytecodePatch(
|
|||||||
*/
|
*/
|
||||||
parentResult.mutableMethod.apply {
|
parentResult.mutableMethod.apply {
|
||||||
val insertIndex = implementation!!.instructions.let {
|
val insertIndex = implementation!!.instructions.let {
|
||||||
val scanStart = parentResult.scanResult.patternScanResult!!.endIndex
|
val scanStart = getWideLiteralIndex(ImageOnlyTab)
|
||||||
|
|
||||||
scanStart + it.subList(scanStart, it.size - 1).indexOfFirst { instruction ->
|
scanStart + it.subList(scanStart, it.size - 1).indexOfFirst { instruction ->
|
||||||
instruction.opcode == Opcode.INVOKE_STATIC
|
instruction.opcode == Opcode.INVOKE_VIRTUAL
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
} + 2
|
||||||
injectHook(CREATE_BUTTON_HOOK, insertIndex)
|
injectHook(CREATE_BUTTON_HOOK, insertIndex)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +33,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -49,7 +49,9 @@ import org.w3c.dom.Element
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -40,7 +40,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -36,7 +36,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -29,7 +29,9 @@ import app.revanced.util.integrations.Constants.PLAYER
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -30,7 +30,9 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -37,7 +37,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -50,7 +50,9 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -38,7 +38,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -36,7 +36,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -35,7 +35,9 @@ import app.revanced.util.integrations.Constants.PLAYER
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -33,7 +33,9 @@ import app.revanced.util.integrations.Constants.INTEGRATIONS_PATH
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -3,5 +3,8 @@ package app.revanced.patches.youtube.player.playerbuttonbg.fingerprints
|
|||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
|
|
||||||
object PlayerPatchFingerprint : MethodFingerprint(
|
object PlayerPatchFingerprint : MethodFingerprint(
|
||||||
customFingerprint = { methodDef, _ -> methodDef.definingClass == "Lapp/revanced/integrations/patches/layout/PlayerPatch;" && methodDef.name == "hidePlayerButton" }
|
customFingerprint = { methodDef, _ ->
|
||||||
|
methodDef.definingClass == "Lapp/revanced/integrations/patches/layout/PlayerPatch;"
|
||||||
|
&& methodDef.name == "hidePlayerButton"
|
||||||
|
}
|
||||||
)
|
)
|
@ -39,7 +39,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -29,7 +29,9 @@ import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -35,7 +35,9 @@ import app.revanced.util.integrations.Constants.PLAYER
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -9,6 +9,7 @@ import app.revanced.patcher.patch.BytecodePatch
|
|||||||
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
||||||
import app.revanced.patcher.patch.annotation.Patch
|
import app.revanced.patcher.patch.annotation.Patch
|
||||||
import app.revanced.patches.youtube.player.speedoverlay.fingerprints.SpeedOverlayConfigFingerprint
|
import app.revanced.patches.youtube.player.speedoverlay.fingerprints.SpeedOverlayConfigFingerprint
|
||||||
|
import app.revanced.patches.youtube.player.speedoverlay.fingerprints.SpeedOverlayHookAlternativeFingerprint
|
||||||
import app.revanced.patches.youtube.player.speedoverlay.fingerprints.SpeedOverlayHookFingerprint
|
import app.revanced.patches.youtube.player.speedoverlay.fingerprints.SpeedOverlayHookFingerprint
|
||||||
import app.revanced.patches.youtube.player.speedoverlay.fingerprints.YouTubeTextViewFingerprint
|
import app.revanced.patches.youtube.player.speedoverlay.fingerprints.YouTubeTextViewFingerprint
|
||||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch
|
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch
|
||||||
@ -42,7 +43,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
@ -51,6 +54,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c
|
|||||||
object SpeedOverlayPatch : BytecodePatch(
|
object SpeedOverlayPatch : BytecodePatch(
|
||||||
setOf(
|
setOf(
|
||||||
SpeedOverlayConfigFingerprint,
|
SpeedOverlayConfigFingerprint,
|
||||||
|
SpeedOverlayHookAlternativeFingerprint,
|
||||||
SpeedOverlayHookFingerprint,
|
SpeedOverlayHookFingerprint,
|
||||||
YouTubeTextViewFingerprint
|
YouTubeTextViewFingerprint
|
||||||
)
|
)
|
||||||
@ -71,7 +75,12 @@ object SpeedOverlayPatch : BytecodePatch(
|
|||||||
}
|
}
|
||||||
} ?: throw SpeedOverlayConfigFingerprint.exception
|
} ?: throw SpeedOverlayConfigFingerprint.exception
|
||||||
|
|
||||||
SpeedOverlayHookFingerprint.result?.let {
|
val speedOverlayHookResult =
|
||||||
|
SpeedOverlayHookFingerprint.result
|
||||||
|
?: SpeedOverlayHookAlternativeFingerprint.result
|
||||||
|
?: throw SpeedOverlayHookFingerprint.exception
|
||||||
|
|
||||||
|
speedOverlayHookResult.let {
|
||||||
it.mutableMethod.apply {
|
it.mutableMethod.apply {
|
||||||
val insertIndex = implementation!!.instructions.indexOfFirst { instruction ->
|
val insertIndex = implementation!!.instructions.indexOfFirst { instruction ->
|
||||||
instruction.opcode == Opcode.CMPL_FLOAT
|
instruction.opcode == Opcode.CMPL_FLOAT
|
||||||
@ -85,7 +94,7 @@ object SpeedOverlayPatch : BytecodePatch(
|
|||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
} ?: throw SpeedOverlayHookFingerprint.exception
|
}
|
||||||
|
|
||||||
YouTubeTextViewFingerprint.result?.let {
|
YouTubeTextViewFingerprint.result?.let {
|
||||||
it.mutableMethod.apply {
|
it.mutableMethod.apply {
|
||||||
|
@ -0,0 +1,57 @@
|
|||||||
|
package app.revanced.patches.youtube.player.speedoverlay.fingerprints
|
||||||
|
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
|
import com.android.tools.smali.dexlib2.Opcode
|
||||||
|
|
||||||
|
object SpeedOverlayHookAlternativeFingerprint : MethodFingerprint(
|
||||||
|
returnType = "V",
|
||||||
|
opcodes = listOf(
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT,
|
||||||
|
Opcode.IF_EQZ,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT,
|
||||||
|
Opcode.IF_EQZ,
|
||||||
|
Opcode.GOTO,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT,
|
||||||
|
Opcode.INVOKE_STATIC,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.INVOKE_STATIC,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT,
|
||||||
|
Opcode.IGET,
|
||||||
|
Opcode.CMPL_FLOAT,
|
||||||
|
Opcode.IF_GEZ,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.INVOKE_STATIC,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.RETURN_VOID
|
||||||
|
),
|
||||||
|
customFingerprint = { methodDef, _ -> methodDef.name == "run" }
|
||||||
|
)
|
@ -39,7 +39,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -41,7 +41,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -39,7 +39,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -43,7 +43,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -48,7 +48,9 @@ import org.w3c.dom.Element
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -37,7 +37,9 @@ import app.revanced.util.integrations.Constants.SEEKBAR
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -33,7 +33,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -31,7 +31,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -37,7 +37,9 @@ import app.revanced.util.integrations.Constants.SEEKBAR
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -32,7 +32,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -66,7 +66,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -8,15 +8,18 @@ import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
|||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve
|
||||||
import app.revanced.patcher.patch.BytecodePatch
|
import app.revanced.patcher.patch.BytecodePatch
|
||||||
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
|
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
|
||||||
|
import app.revanced.patches.youtube.shorts.shortscomponent.fingerprints.BottomNavigationBarAlternativeFingerprint
|
||||||
import app.revanced.patches.youtube.shorts.shortscomponent.fingerprints.BottomNavigationBarFingerprint
|
import app.revanced.patches.youtube.shorts.shortscomponent.fingerprints.BottomNavigationBarFingerprint
|
||||||
import app.revanced.patches.youtube.shorts.shortscomponent.fingerprints.RenderBottomNavigationBarFingerprint
|
import app.revanced.patches.youtube.shorts.shortscomponent.fingerprints.RenderBottomNavigationBarFingerprint
|
||||||
import app.revanced.patches.youtube.shorts.shortscomponent.fingerprints.SetPivotBarFingerprint
|
import app.revanced.patches.youtube.shorts.shortscomponent.fingerprints.SetPivotBarFingerprint
|
||||||
import app.revanced.patches.youtube.utils.fingerprints.PivotBarCreateButtonViewFingerprint
|
import app.revanced.patches.youtube.utils.fingerprints.PivotBarCreateButtonViewFingerprint
|
||||||
import app.revanced.util.integrations.Constants.SHORTS
|
import app.revanced.util.integrations.Constants.SHORTS
|
||||||
|
import com.android.tools.smali.dexlib2.Opcode
|
||||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||||
|
|
||||||
object ShortsNavigationBarPatch : BytecodePatch(
|
object ShortsNavigationBarPatch : BytecodePatch(
|
||||||
setOf(
|
setOf(
|
||||||
|
BottomNavigationBarAlternativeFingerprint,
|
||||||
BottomNavigationBarFingerprint,
|
BottomNavigationBarFingerprint,
|
||||||
PivotBarCreateButtonViewFingerprint,
|
PivotBarCreateButtonViewFingerprint,
|
||||||
RenderBottomNavigationBarFingerprint
|
RenderBottomNavigationBarFingerprint
|
||||||
@ -56,6 +59,23 @@ object ShortsNavigationBarPatch : BytecodePatch(
|
|||||||
val insertIndex = it.scanResult.patternScanResult!!.endIndex
|
val insertIndex = it.scanResult.patternScanResult!!.endIndex
|
||||||
val insertRegister = getInstruction<OneRegisterInstruction>(insertIndex).registerA
|
val insertRegister = getInstruction<OneRegisterInstruction>(insertIndex).registerA
|
||||||
|
|
||||||
|
addInstructions(
|
||||||
|
insertIndex, """
|
||||||
|
invoke-static {v$insertRegister}, $SHORTS->hideShortsPlayerNavigationBar(Landroid/view/View;)Landroid/view/View;
|
||||||
|
move-result-object v$insertRegister
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} ?: BottomNavigationBarAlternativeFingerprint.result?.let {
|
||||||
|
it.mutableMethod.apply {
|
||||||
|
val targetIndex = it.scanResult.patternScanResult!!.endIndex + 3
|
||||||
|
val insertIndex =
|
||||||
|
if (getInstruction(targetIndex).opcode == Opcode.IF_EQZ)
|
||||||
|
targetIndex
|
||||||
|
else
|
||||||
|
targetIndex + 1
|
||||||
|
val insertRegister = getInstruction<OneRegisterInstruction>(insertIndex).registerA
|
||||||
|
|
||||||
addInstructions(
|
addInstructions(
|
||||||
insertIndex, """
|
insertIndex, """
|
||||||
invoke-static {v$insertRegister}, $SHORTS->hideShortsPlayerNavigationBar(Landroid/view/View;)Landroid/view/View;
|
invoke-static {v$insertRegister}, $SHORTS->hideShortsPlayerNavigationBar(Landroid/view/View;)Landroid/view/View;
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
package app.revanced.patches.youtube.shorts.shortscomponent.fingerprints
|
||||||
|
|
||||||
|
import app.revanced.patcher.extensions.or
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
|
import com.android.tools.smali.dexlib2.AccessFlags
|
||||||
|
import com.android.tools.smali.dexlib2.Opcode
|
||||||
|
|
||||||
|
object BottomNavigationBarAlternativeFingerprint : MethodFingerprint(
|
||||||
|
returnType = "V",
|
||||||
|
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
|
parameters = listOf("Landroid/view/View;", "Landroid/os/Bundle;"),
|
||||||
|
opcodes = listOf(
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.INVOKE_VIRTUAL
|
||||||
|
),
|
||||||
|
strings = listOf("r_pfvc", "ReelWatchPaneFragmentViewModelKey")
|
||||||
|
)
|
@ -33,7 +33,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -45,7 +45,9 @@ import com.android.tools.smali.dexlib2.immutable.ImmutableMethod
|
|||||||
"18.34.38",
|
"18.34.38",
|
||||||
"18.35.36",
|
"18.35.36",
|
||||||
"18.36.39",
|
"18.36.39",
|
||||||
"18.37.36"
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -5,44 +5,28 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|||||||
import com.android.tools.smali.dexlib2.AccessFlags
|
import com.android.tools.smali.dexlib2.AccessFlags
|
||||||
import com.android.tools.smali.dexlib2.Opcode
|
import com.android.tools.smali.dexlib2.Opcode
|
||||||
|
|
||||||
object NewFlyoutPanelOnClickListenerFingerprint : MethodFingerprint(
|
object NewVideoQualityChangedFingerprint : MethodFingerprint(
|
||||||
returnType = "L",
|
returnType = "L",
|
||||||
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
parameters = listOf("L"),
|
parameters = listOf("L"),
|
||||||
opcodes = listOf(
|
opcodes = listOf(
|
||||||
|
Opcode.IGET, // Video resolution (human readable).
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.IGET_BOOLEAN,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.INVOKE_STATIC,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.INVOKE_INTERFACE,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.GOTO,
|
||||||
|
Opcode.CONST_4,
|
||||||
|
Opcode.IF_NE,
|
||||||
|
Opcode.IGET_OBJECT,
|
||||||
|
Opcode.INVOKE_INTERFACE,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
Opcode.IGET,
|
Opcode.IGET,
|
||||||
Opcode.AND_INT_LIT8,
|
|
||||||
Opcode.IF_EQZ,
|
|
||||||
Opcode.IGET_OBJECT,
|
|
||||||
Opcode.INVOKE_INTERFACE,
|
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
|
||||||
Opcode.INVOKE_VIRTUAL,
|
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
|
||||||
Opcode.IF_NEZ,
|
|
||||||
Opcode.NEW_INSTANCE,
|
|
||||||
Opcode.INVOKE_DIRECT,
|
|
||||||
Opcode.IGET_OBJECT,
|
|
||||||
Opcode.INVOKE_INTERFACE,
|
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
|
||||||
Opcode.INVOKE_VIRTUAL,
|
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
|
||||||
Opcode.INVOKE_STATIC,
|
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
|
||||||
Opcode.INVOKE_STATIC,
|
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
|
||||||
Opcode.INVOKE_STATIC,
|
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
|
||||||
Opcode.NEW_INSTANCE,
|
|
||||||
Opcode.CONST_16,
|
|
||||||
Opcode.INVOKE_DIRECT,
|
|
||||||
Opcode.INVOKE_INTERFACE,
|
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
|
||||||
Opcode.INVOKE_INTERFACE,
|
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
|
||||||
Opcode.IGET_OBJECT,
|
|
||||||
Opcode.INVOKE_INTERFACE,
|
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
|
||||||
Opcode.INVOKE_VIRTUAL,
|
|
||||||
Opcode.NEW_INSTANCE
|
|
||||||
)
|
)
|
||||||
)
|
)
|
@ -5,14 +5,9 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|||||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ImageOnlyTab
|
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ImageOnlyTab
|
||||||
import app.revanced.util.bytecode.isWideLiteralExists
|
import app.revanced.util.bytecode.isWideLiteralExists
|
||||||
import com.android.tools.smali.dexlib2.AccessFlags
|
import com.android.tools.smali.dexlib2.AccessFlags
|
||||||
import com.android.tools.smali.dexlib2.Opcode
|
|
||||||
|
|
||||||
object PivotBarCreateButtonViewFingerprint : MethodFingerprint(
|
object PivotBarCreateButtonViewFingerprint : MethodFingerprint(
|
||||||
returnType = "V",
|
returnType = "V",
|
||||||
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
opcodes = listOf(
|
|
||||||
Opcode.MOVE_OBJECT,
|
|
||||||
Opcode.INVOKE_DIRECT_RANGE, // unique instruction anchor
|
|
||||||
),
|
|
||||||
customFingerprint = { methodDef, _ -> methodDef.isWideLiteralExists(ImageOnlyTab) }
|
customFingerprint = { methodDef, _ -> methodDef.isWideLiteralExists(ImageOnlyTab) }
|
||||||
)
|
)
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user