mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-06-12 21:27:43 +02:00
feat(YouTube Music): add Alternative domain
patch (#64)
* Adaptation of the patch from YouTube * Copy unchanged translations from YouTube Translations * feat: apply code review suggestions * fix: arrange lexicographic settings using `Closeable` --------- Co-authored-by: inotia00 <108592928+inotia00@users.noreply.github.com>
This commit is contained in:
@ -0,0 +1,30 @@
|
||||
package app.revanced.patches.shared.alternativedomain
|
||||
|
||||
import app.revanced.patcher.data.BytecodeContext
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
|
||||
import app.revanced.patcher.patch.BytecodePatch
|
||||
import app.revanced.patches.shared.alternativedomain.fingerprints.MessageDigestImageUrlFingerprint
|
||||
import app.revanced.patches.shared.alternativedomain.fingerprints.MessageDigestImageUrlParentFingerprint
|
||||
import app.revanced.util.resultOrThrow
|
||||
|
||||
abstract class BaseAlternativeDomainPatch(
|
||||
private val classDescriptor: String
|
||||
) : BytecodePatch(
|
||||
setOf(MessageDigestImageUrlParentFingerprint)
|
||||
) {
|
||||
override fun execute(context: BytecodeContext) {
|
||||
|
||||
MessageDigestImageUrlFingerprint.resolve(
|
||||
context,
|
||||
MessageDigestImageUrlParentFingerprint.resultOrThrow().classDef
|
||||
)
|
||||
|
||||
MessageDigestImageUrlFingerprint.resultOrThrow().mutableMethod.addInstructions(
|
||||
0, """
|
||||
invoke-static { p1 }, $classDescriptor->overrideImageURL(Ljava/lang/String;)Ljava/lang/String;
|
||||
move-result-object p1
|
||||
"""
|
||||
)
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package app.revanced.patches.shared.alternativedomain.fingerprints
|
||||
|
||||
import app.revanced.patcher.extensions.or
|
||||
import app.revanced.patcher.fingerprint.MethodFingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal object MessageDigestImageUrlFingerprint : MethodFingerprint(
|
||||
accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
|
||||
parameters = listOf("Ljava/lang/String;", "L")
|
||||
)
|
@ -0,0 +1,12 @@
|
||||
package app.revanced.patches.shared.alternativedomain.fingerprints
|
||||
|
||||
import app.revanced.patcher.extensions.or
|
||||
import app.revanced.patcher.fingerprint.MethodFingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal object MessageDigestImageUrlParentFingerprint : MethodFingerprint(
|
||||
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||
returnType = "Ljava/lang/String;",
|
||||
parameters = emptyList(),
|
||||
strings = listOf("@#&=*+-_.,:!?()/~'%;\$"),
|
||||
)
|
Reference in New Issue
Block a user