mirror of
https://github.com/revanced/revanced-patches
synced 2024-12-04 21:22:54 +01:00
refactor: make use of named arguments
This commit is contained in:
parent
bcef48c8e2
commit
e678115b24
@ -3,9 +3,9 @@ package app.revanced.patches.music.audio.codecs.fingerprints
|
|||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.music.audio.codecs.annotations.CodecsUnlockCompatibility
|
import app.revanced.patches.music.audio.codecs.annotations.CodecsUnlockCompatibility
|
||||||
import org.jf.dexlib2.AccessFlags
|
import org.jf.dexlib2.AccessFlags
|
||||||
import org.jf.dexlib2.Opcode
|
import org.jf.dexlib2.Opcode
|
||||||
@ -19,7 +19,7 @@ import org.jf.dexlib2.Opcode
|
|||||||
@CodecsUnlockCompatibility
|
@CodecsUnlockCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object CodecsLockFingerprint : MethodFingerprint(
|
object CodecsLockFingerprint : MethodFingerprint(
|
||||||
"L", AccessFlags.PUBLIC or AccessFlags.STATIC, null, listOf(
|
"L", AccessFlags.PUBLIC or AccessFlags.STATIC, opcodes = listOf(
|
||||||
Opcode.INVOKE_DIRECT,
|
Opcode.INVOKE_DIRECT,
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
Opcode.MOVE_RESULT,
|
Opcode.MOVE_RESULT,
|
||||||
@ -35,5 +35,5 @@ object CodecsLockFingerprint : MethodFingerprint(
|
|||||||
Opcode.INVOKE_DIRECT,
|
Opcode.INVOKE_DIRECT,
|
||||||
Opcode.RETURN_OBJECT
|
Opcode.RETURN_OBJECT
|
||||||
),
|
),
|
||||||
listOf("eac3_supported")
|
strings = listOf("eac3_supported")
|
||||||
)
|
)
|
||||||
|
@ -2,9 +2,9 @@ package app.revanced.patches.music.misc.microg.fingerprints
|
|||||||
|
|
||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
||||||
|
|
||||||
@Name("cast-context-fetch-fingerprint")
|
@Name("cast-context-fetch-fingerprint")
|
||||||
@ -15,6 +15,5 @@ import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibi
|
|||||||
@MicroGPatchCompatibility
|
@MicroGPatchCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object CastContextFetchFingerprint : MethodFingerprint(
|
object CastContextFetchFingerprint : MethodFingerprint(
|
||||||
null, null, null, null,
|
strings = listOf("Error fetching CastContext.")
|
||||||
listOf("Error fetching CastContext.")
|
|
||||||
)
|
)
|
@ -2,9 +2,9 @@ package app.revanced.patches.music.misc.microg.fingerprints
|
|||||||
|
|
||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
||||||
|
|
||||||
@Name("cast-module-fingerprint")
|
@Name("cast-module-fingerprint")
|
||||||
@ -15,6 +15,5 @@ import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibi
|
|||||||
@MicroGPatchCompatibility
|
@MicroGPatchCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object CastDynamiteModuleFingerprint : MethodFingerprint(
|
object CastDynamiteModuleFingerprint : MethodFingerprint(
|
||||||
null, null, null, null,
|
strings = listOf("com.google.android.gms.cast.framework.internal.CastDynamiteModuleImpl")
|
||||||
listOf("com.google.android.gms.cast.framework.internal.CastDynamiteModuleImpl")
|
|
||||||
)
|
)
|
@ -2,9 +2,9 @@ package app.revanced.patches.music.misc.microg.fingerprints
|
|||||||
|
|
||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
||||||
|
|
||||||
@Name("cast-context-fetch-fingerprint")
|
@Name("cast-context-fetch-fingerprint")
|
||||||
@ -15,6 +15,5 @@ import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibi
|
|||||||
@MicroGPatchCompatibility
|
@MicroGPatchCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object CastDynamiteModuleV2Fingerprint : MethodFingerprint(
|
object CastDynamiteModuleV2Fingerprint : MethodFingerprint(
|
||||||
null, null, null, null,
|
strings = listOf("Failed to load module via V2: ")
|
||||||
listOf("Failed to load module via V2: ")
|
|
||||||
)
|
)
|
@ -3,9 +3,9 @@ package app.revanced.patches.music.misc.microg.fingerprints
|
|||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.music.misc.microg.annotations.MusicMicroGPatchCompatibility
|
import app.revanced.patches.music.misc.microg.annotations.MusicMicroGPatchCompatibility
|
||||||
import org.jf.dexlib2.AccessFlags
|
import org.jf.dexlib2.AccessFlags
|
||||||
|
|
||||||
@ -17,5 +17,14 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
@MusicMicroGPatchCompatibility
|
@MusicMicroGPatchCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object GooglePlayUtilityFingerprint : MethodFingerprint(
|
object GooglePlayUtilityFingerprint : MethodFingerprint(
|
||||||
"I", AccessFlags.PUBLIC or AccessFlags.STATIC, listOf("L", "I"), null, listOf("This should never happen.", "MetadataValueReader", "GooglePlayServicesUtil", "com.android.vending", "android.hardware.type.embedded")
|
"I",
|
||||||
|
AccessFlags.PUBLIC or AccessFlags.STATIC,
|
||||||
|
listOf("L", "I"),
|
||||||
|
strings = listOf(
|
||||||
|
"This should never happen.",
|
||||||
|
"MetadataValueReader",
|
||||||
|
"GooglePlayServicesUtil",
|
||||||
|
"com.android.vending",
|
||||||
|
"android.hardware.type.embedded"
|
||||||
|
)
|
||||||
)
|
)
|
@ -2,9 +2,9 @@ package app.revanced.patches.music.misc.microg.fingerprints
|
|||||||
|
|
||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.music.misc.microg.annotations.MusicMicroGPatchCompatibility
|
import app.revanced.patches.music.misc.microg.annotations.MusicMicroGPatchCompatibility
|
||||||
|
|
||||||
@Name("google-play-prime-fingerprint")
|
@Name("google-play-prime-fingerprint")
|
||||||
@ -15,5 +15,5 @@ import app.revanced.patches.music.misc.microg.annotations.MusicMicroGPatchCompat
|
|||||||
@MusicMicroGPatchCompatibility
|
@MusicMicroGPatchCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object PrimeFingerprint : MethodFingerprint(
|
object PrimeFingerprint : MethodFingerprint(
|
||||||
null, null, null, null, listOf("com.google.android.GoogleCamera", "com.android.vending")
|
strings = listOf("com.google.android.GoogleCamera", "com.android.vending")
|
||||||
)
|
)
|
@ -3,9 +3,9 @@ package app.revanced.patches.music.misc.microg.fingerprints
|
|||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.music.misc.microg.annotations.MusicMicroGPatchCompatibility
|
import app.revanced.patches.music.misc.microg.annotations.MusicMicroGPatchCompatibility
|
||||||
import org.jf.dexlib2.AccessFlags
|
import org.jf.dexlib2.AccessFlags
|
||||||
|
|
||||||
@ -17,5 +17,8 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
@MusicMicroGPatchCompatibility
|
@MusicMicroGPatchCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object ServiceCheckFingerprint : MethodFingerprint(
|
object ServiceCheckFingerprint : MethodFingerprint(
|
||||||
"V", AccessFlags.PUBLIC or AccessFlags.STATIC, listOf("L", "I"), null, listOf("Google Play Services not available")
|
"V",
|
||||||
|
AccessFlags.PUBLIC or AccessFlags.STATIC,
|
||||||
|
listOf("L", "I"),
|
||||||
|
strings = listOf("Google Play Services not available")
|
||||||
)
|
)
|
||||||
|
@ -3,11 +3,7 @@ package app.revanced.patches.reddit.ad.general.annotations
|
|||||||
import app.revanced.patcher.annotation.Compatibility
|
import app.revanced.patcher.annotation.Compatibility
|
||||||
import app.revanced.patcher.annotation.Package
|
import app.revanced.patcher.annotation.Package
|
||||||
|
|
||||||
@Compatibility(
|
@Compatibility([Package("com.reddit.frontpage")])
|
||||||
[Package(
|
|
||||||
"com.reddit.frontpage", arrayOf()
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
internal annotation class GeneralAdsCompatibility
|
internal annotation class GeneralAdsCompatibility
|
||||||
|
@ -3,11 +3,7 @@ package app.revanced.patches.reddit.layout.premiumicon.annotations
|
|||||||
import app.revanced.patcher.annotation.Compatibility
|
import app.revanced.patcher.annotation.Compatibility
|
||||||
import app.revanced.patcher.annotation.Package
|
import app.revanced.patcher.annotation.Package
|
||||||
|
|
||||||
@Compatibility(
|
@Compatibility([Package("com.reddit.frontpage")])
|
||||||
[Package(
|
|
||||||
"com.reddit.frontpage", arrayOf()
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
internal annotation class PremiumIconCompatibility
|
internal annotation class PremiumIconCompatibility
|
||||||
|
@ -2,8 +2,8 @@ package app.revanced.patches.reddit.layout.premiumicon.fingerprints
|
|||||||
|
|
||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.reddit.layout.premiumicon.annotations.PremiumIconCompatibility
|
import app.revanced.patches.reddit.layout.premiumicon.annotations.PremiumIconCompatibility
|
||||||
|
|
||||||
@Name("premium-icon-fingerprint")
|
@Name("premium-icon-fingerprint")
|
||||||
@ -14,11 +14,7 @@ import app.revanced.patches.reddit.layout.premiumicon.annotations.PremiumIconCom
|
|||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object PremiumIconFingerprint : MethodFingerprint(
|
object PremiumIconFingerprint : MethodFingerprint(
|
||||||
"Z",
|
"Z",
|
||||||
null,
|
customFingerprint = { methodDef ->
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
{ methodDef ->
|
|
||||||
methodDef.definingClass.endsWith("MyAccount;") && methodDef.name == "isPremiumSubscriber"
|
methodDef.definingClass.endsWith("MyAccount;") && methodDef.name == "isPremiumSubscriber"
|
||||||
}
|
}
|
||||||
)
|
)
|
@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Package
|
|||||||
|
|
||||||
@Compatibility(
|
@Compatibility(
|
||||||
[
|
[
|
||||||
Package("com.ss.android.ugc.trill", arrayOf()),
|
Package("com.ss.android.ugc.trill"),
|
||||||
Package("com.zhiliaoapp.musically", arrayOf())
|
Package("com.zhiliaoapp.musically")
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
|
@ -14,7 +14,7 @@ import app.revanced.patches.tiktok.ad.annotations.TiktokAdsCompatibility
|
|||||||
@TiktokAdsCompatibility
|
@TiktokAdsCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object FeedItemListCloneFingerprint : MethodFingerprint(
|
object FeedItemListCloneFingerprint : MethodFingerprint(
|
||||||
null, null, null, null,null, { methodDef ->
|
customFingerprint = { methodDef ->
|
||||||
methodDef.definingClass.endsWith("/FeedItemList;") && methodDef.name == "clone"
|
methodDef.definingClass.endsWith("/FeedItemList;") && methodDef.name == "clone"
|
||||||
}
|
}
|
||||||
)
|
)
|
@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Package
|
|||||||
|
|
||||||
@Compatibility(
|
@Compatibility(
|
||||||
[
|
[
|
||||||
Package("com.ss.android.ugc.trill", arrayOf()),
|
Package("com.ss.android.ugc.trill"),
|
||||||
Package("com.zhiliaoapp.musically", arrayOf())
|
Package("com.zhiliaoapp.musically")
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
|
@ -15,10 +15,7 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
object ACLCommonShareFingerprint : MethodFingerprint(
|
object ACLCommonShareFingerprint : MethodFingerprint(
|
||||||
"I",
|
"I",
|
||||||
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
null,
|
customFingerprint = { methodDef ->
|
||||||
null,
|
|
||||||
null,
|
|
||||||
{ methodDef ->
|
|
||||||
methodDef.definingClass.endsWith("/ACLCommonShare;") &&
|
methodDef.definingClass.endsWith("/ACLCommonShare;") &&
|
||||||
methodDef.name == "getCode"
|
methodDef.name == "getCode"
|
||||||
}
|
}
|
||||||
|
@ -15,10 +15,7 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
object ACLCommonShareFingerprint2 : MethodFingerprint(
|
object ACLCommonShareFingerprint2 : MethodFingerprint(
|
||||||
"I",
|
"I",
|
||||||
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
null,
|
customFingerprint = { methodDef ->
|
||||||
null,
|
|
||||||
null,
|
|
||||||
{ methodDef ->
|
|
||||||
methodDef.definingClass.endsWith("/ACLCommonShare;") &&
|
methodDef.definingClass.endsWith("/ACLCommonShare;") &&
|
||||||
methodDef.name == "getShowType"
|
methodDef.name == "getShowType"
|
||||||
}
|
}
|
||||||
|
@ -15,10 +15,7 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
object ACLCommonShareFingerprint3 : MethodFingerprint(
|
object ACLCommonShareFingerprint3 : MethodFingerprint(
|
||||||
"I",
|
"I",
|
||||||
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
null,
|
customFingerprint = { methodDef ->
|
||||||
null,
|
|
||||||
null,
|
|
||||||
{ methodDef ->
|
|
||||||
methodDef.definingClass.endsWith("/ACLCommonShare;") &&
|
methodDef.definingClass.endsWith("/ACLCommonShare;") &&
|
||||||
methodDef.name == "getTranscode"
|
methodDef.name == "getTranscode"
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Package
|
|||||||
|
|
||||||
@Compatibility(
|
@Compatibility(
|
||||||
[
|
[
|
||||||
Package("com.ss.android.ugc.trill", arrayOf()),
|
Package("com.ss.android.ugc.trill"),
|
||||||
Package("com.zhiliaoapp.musically", arrayOf())
|
Package("com.zhiliaoapp.musically")
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
|
@ -14,10 +14,7 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
object AwemeGetVideoControlFingerprint : MethodFingerprint(
|
object AwemeGetVideoControlFingerprint : MethodFingerprint(
|
||||||
"L",
|
"L",
|
||||||
AccessFlags.PUBLIC.value,
|
AccessFlags.PUBLIC.value,
|
||||||
null,
|
customFingerprint = { methodDef ->
|
||||||
null,
|
|
||||||
null,
|
|
||||||
{ methodDef ->
|
|
||||||
methodDef.definingClass.endsWith("/Aweme;") && methodDef.name == "getVideoControl"
|
methodDef.definingClass.endsWith("/Aweme;") && methodDef.name == "getVideoControl"
|
||||||
}
|
}
|
||||||
)
|
)
|
@ -3,11 +3,7 @@ package app.revanced.patches.twitter.ad.timeline.annotations
|
|||||||
import app.revanced.patcher.annotation.Compatibility
|
import app.revanced.patcher.annotation.Compatibility
|
||||||
import app.revanced.patcher.annotation.Package
|
import app.revanced.patcher.annotation.Package
|
||||||
|
|
||||||
@Compatibility(
|
@Compatibility([Package("com.twitter.android")])
|
||||||
[Package(
|
|
||||||
"com.twitter.android", arrayOf()
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
internal annotation class TimelineAdsCompatibility
|
internal annotation class TimelineAdsCompatibility
|
@ -12,7 +12,7 @@ import org.jf.dexlib2.Opcode
|
|||||||
@TimelineAdsCompatibility
|
@TimelineAdsCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object TimelineTweetJsonParserFingerprint : MethodFingerprint(
|
object TimelineTweetJsonParserFingerprint : MethodFingerprint(
|
||||||
null, null, null, listOf(
|
opcodes = listOf(
|
||||||
Opcode.IPUT_OBJECT,
|
Opcode.IPUT_OBJECT,
|
||||||
Opcode.GOTO,
|
Opcode.GOTO,
|
||||||
Opcode.SGET_OBJECT,
|
Opcode.SGET_OBJECT,
|
||||||
@ -21,6 +21,6 @@ object TimelineTweetJsonParserFingerprint : MethodFingerprint(
|
|||||||
Opcode.CHECK_CAST,
|
Opcode.CHECK_CAST,
|
||||||
Opcode.IPUT_OBJECT,
|
Opcode.IPUT_OBJECT,
|
||||||
Opcode.RETURN_VOID,
|
Opcode.RETURN_VOID,
|
||||||
), listOf("tweetPromotedMetadata", "promotedMetadata", "hasModeratedReplies", "conversationAnnotation"),
|
), strings = listOf("tweetPromotedMetadata", "promotedMetadata", "hasModeratedReplies", "conversationAnnotation"),
|
||||||
{ methodDef -> methodDef.name == "parseField" }
|
customFingerprint = { methodDef -> methodDef.name == "parseField" }
|
||||||
)
|
)
|
@ -3,11 +3,7 @@ package app.revanced.patches.warnwetter.misc.firebasegetcert.annotations
|
|||||||
import app.revanced.patcher.annotation.Compatibility
|
import app.revanced.patcher.annotation.Compatibility
|
||||||
import app.revanced.patcher.annotation.Package
|
import app.revanced.patcher.annotation.Package
|
||||||
|
|
||||||
@Compatibility(
|
@Compatibility([Package("de.dwd.warnapp")])
|
||||||
[Package(
|
|
||||||
"de.dwd.warnapp", arrayOf()
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
internal annotation class FirebaseGetCertPatchCompatibility
|
internal annotation class FirebaseGetCertPatchCompatibility
|
@ -14,10 +14,7 @@ import app.revanced.patches.warnwetter.misc.firebasegetcert.annotations.Firebase
|
|||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object GetMessagingCertFingerprint : MethodFingerprint(
|
object GetMessagingCertFingerprint : MethodFingerprint(
|
||||||
"Ljava/lang/String;",
|
"Ljava/lang/String;",
|
||||||
null,
|
strings = listOf(
|
||||||
null,
|
|
||||||
null,
|
|
||||||
listOf(
|
|
||||||
"ContentValues",
|
"ContentValues",
|
||||||
"Could not get fingerprint hash for package: ",
|
"Could not get fingerprint hash for package: ",
|
||||||
"No such package: "
|
"No such package: "
|
||||||
|
@ -14,10 +14,7 @@ import app.revanced.patches.warnwetter.misc.firebasegetcert.annotations.Firebase
|
|||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object GetReqistrationCertFingerprint : MethodFingerprint(
|
object GetReqistrationCertFingerprint : MethodFingerprint(
|
||||||
"Ljava/lang/String;",
|
"Ljava/lang/String;",
|
||||||
null,
|
strings = listOf(
|
||||||
null,
|
|
||||||
null,
|
|
||||||
listOf(
|
|
||||||
"FirebaseRemoteConfig",
|
"FirebaseRemoteConfig",
|
||||||
"Could not get fingerprint hash for package: ",
|
"Could not get fingerprint hash for package: ",
|
||||||
"No such package: "
|
"No such package: "
|
||||||
|
@ -3,11 +3,7 @@ package app.revanced.patches.warnwetter.misc.promocode.annotations
|
|||||||
import app.revanced.patcher.annotation.Compatibility
|
import app.revanced.patcher.annotation.Compatibility
|
||||||
import app.revanced.patcher.annotation.Package
|
import app.revanced.patcher.annotation.Package
|
||||||
|
|
||||||
@Compatibility(
|
@Compatibility([Package("de.dwd.warnapp")])
|
||||||
[Package(
|
|
||||||
"de.dwd.warnapp", arrayOf()
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
internal annotation class PromoCodeUnlockCompatibility
|
internal annotation class PromoCodeUnlockCompatibility
|
||||||
|
@ -2,8 +2,8 @@ package app.revanced.patches.warnwetter.misc.promocode.fingerprints
|
|||||||
|
|
||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.warnwetter.misc.promocode.annotations.PromoCodeUnlockCompatibility
|
import app.revanced.patches.warnwetter.misc.promocode.annotations.PromoCodeUnlockCompatibility
|
||||||
|
|
||||||
@Name("promo-code-unlock-fingerprint")
|
@Name("promo-code-unlock-fingerprint")
|
||||||
@ -13,12 +13,7 @@ import app.revanced.patches.warnwetter.misc.promocode.annotations.PromoCodeUnloc
|
|||||||
@PromoCodeUnlockCompatibility
|
@PromoCodeUnlockCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object PromoCodeUnlockFingerprint : MethodFingerprint(
|
object PromoCodeUnlockFingerprint : MethodFingerprint(
|
||||||
null,
|
customFingerprint = { methodDef ->
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
{ methodDef ->
|
|
||||||
methodDef.definingClass.endsWith("PromoTokenVerification;") && methodDef.name == "isValid"
|
methodDef.definingClass.endsWith("PromoTokenVerification;") && methodDef.name == "isValid"
|
||||||
}
|
}
|
||||||
)
|
)
|
@ -17,8 +17,5 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
object HideInfocardSuggestionsFingerprint : MethodFingerprint(
|
object HideInfocardSuggestionsFingerprint : MethodFingerprint(
|
||||||
"Ljava/lang/Boolean;",
|
"Ljava/lang/Boolean;",
|
||||||
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
null,
|
strings = listOf("vibrator")
|
||||||
null,
|
|
||||||
listOf("vibrator"),
|
|
||||||
null
|
|
||||||
)
|
)
|
@ -3,9 +3,9 @@ package app.revanced.patches.youtube.ad.infocardsuggestions.fingerprints
|
|||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.ad.infocardsuggestions.annotations.HideInfocardSuggestionsCompatibility
|
import app.revanced.patches.youtube.ad.infocardsuggestions.annotations.HideInfocardSuggestionsCompatibility
|
||||||
import org.jf.dexlib2.AccessFlags
|
import org.jf.dexlib2.AccessFlags
|
||||||
|
|
||||||
@ -17,8 +17,5 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
object HideInfocardSuggestionsParentFingerprint : MethodFingerprint(
|
object HideInfocardSuggestionsParentFingerprint : MethodFingerprint(
|
||||||
"Ljava/lang/String;",
|
"Ljava/lang/String;",
|
||||||
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
listOf(),
|
strings = listOf("player_overlay_info_card_teaser"),
|
||||||
null,
|
|
||||||
listOf("player_overlay_info_card_teaser"),
|
|
||||||
null
|
|
||||||
)
|
)
|
@ -17,5 +17,5 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
@VideoAdsCompatibility
|
@VideoAdsCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object ShowVideoAdsFingerprint : MethodFingerprint(
|
object ShowVideoAdsFingerprint : MethodFingerprint(
|
||||||
"V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("Z"), null
|
"V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("Z")
|
||||||
)
|
)
|
@ -15,7 +15,7 @@ import app.revanced.patches.youtube.interaction.swipecontrols.annotation.SwipeCo
|
|||||||
@SwipeControlsCompatibility
|
@SwipeControlsCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object SwipeControlsHostActivityFingerprint : MethodFingerprint(
|
object SwipeControlsHostActivityFingerprint : MethodFingerprint(
|
||||||
null, null, null, null, null, { methodDef ->
|
customFingerprint = { methodDef ->
|
||||||
methodDef.definingClass == "Lapp/revanced/integrations/swipecontrols/SwipeControlsHostActivity;" && methodDef.name == "<init>"
|
methodDef.definingClass == "Lapp/revanced/integrations/swipecontrols/SwipeControlsHostActivity;" && methodDef.name == "<init>"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -15,7 +15,7 @@ import app.revanced.patches.youtube.interaction.swipecontrols.annotation.SwipeCo
|
|||||||
@SwipeControlsCompatibility
|
@SwipeControlsCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object WatchWhileActivityFingerprint : MethodFingerprint(
|
object WatchWhileActivityFingerprint : MethodFingerprint(
|
||||||
null, null, null, null, null, { methodDef ->
|
customFingerprint = { methodDef ->
|
||||||
methodDef.definingClass.endsWith("WatchWhileActivity;") && methodDef.name == "<init>"
|
methodDef.definingClass.endsWith("WatchWhileActivity;") && methodDef.name == "<init>"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -92,8 +92,6 @@ class SwipeControlsResourcePatch : ResourcePatch() {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
val resourcesDir = "swipecontrols"
|
|
||||||
|
|
||||||
data.copyResources(
|
data.copyResources(
|
||||||
"swipecontrols",
|
"swipecontrols",
|
||||||
ResourceUtils.ResourceGroup(
|
ResourceUtils.ResourceGroup(
|
||||||
|
@ -3,11 +3,7 @@ package app.revanced.patches.youtube.layout.amoled.annotations
|
|||||||
import app.revanced.patcher.annotation.Compatibility
|
import app.revanced.patcher.annotation.Compatibility
|
||||||
import app.revanced.patcher.annotation.Package
|
import app.revanced.patcher.annotation.Package
|
||||||
|
|
||||||
@Compatibility(
|
@Compatibility([Package("com.google.android.youtube")])
|
||||||
[Package(
|
|
||||||
"com.google.android.youtube", arrayOf()
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
internal annotation class AmoledCompatibility
|
internal annotation class AmoledCompatibility
|
||||||
|
@ -3,7 +3,6 @@ package app.revanced.patches.youtube.layout.autoplaybutton.fingerprints
|
|||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.layout.autoplaybutton.annotations.AutoplayButtonCompatibility
|
import app.revanced.patches.youtube.layout.autoplaybutton.annotations.AutoplayButtonCompatibility
|
||||||
@ -19,8 +18,7 @@ import org.jf.dexlib2.Opcode
|
|||||||
object AutoNavInformerFingerprint : MethodFingerprint(
|
object AutoNavInformerFingerprint : MethodFingerprint(
|
||||||
"Z",
|
"Z",
|
||||||
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
null,
|
opcodes = listOf(
|
||||||
listOf(
|
|
||||||
Opcode.IGET_OBJECT,
|
Opcode.IGET_OBJECT,
|
||||||
Opcode.INVOKE_INTERFACE,
|
Opcode.INVOKE_INTERFACE,
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
@ -28,6 +26,5 @@ object AutoNavInformerFingerprint : MethodFingerprint(
|
|||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
Opcode.MOVE_RESULT,
|
Opcode.MOVE_RESULT,
|
||||||
),
|
),
|
||||||
null,
|
customFingerprint = { it.definingClass.endsWith("WillAutonavInformer;") }
|
||||||
{ it.definingClass.endsWith("WillAutonavInformer;") }
|
|
||||||
)
|
)
|
@ -13,8 +13,8 @@ import app.revanced.patches.youtube.layout.autoplaybutton.annotations.AutoplayBu
|
|||||||
@AutoplayButtonCompatibility
|
@AutoplayButtonCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object LayoutConstructorFingerprint : MethodFingerprint(
|
object LayoutConstructorFingerprint : MethodFingerprint(
|
||||||
null, null, null, null, listOf("1.0x"),
|
strings = listOf("1.0x"),
|
||||||
{ methodDef ->
|
customFingerprint = { methodDef ->
|
||||||
methodDef.definingClass.endsWith("YouTubeControlsOverlay;")
|
methodDef.definingClass.endsWith("YouTubeControlsOverlay;")
|
||||||
}
|
}
|
||||||
)
|
)
|
@ -3,11 +3,7 @@ package app.revanced.patches.youtube.layout.branding.header.annotations
|
|||||||
import app.revanced.patcher.annotation.Compatibility
|
import app.revanced.patcher.annotation.Compatibility
|
||||||
import app.revanced.patcher.annotation.Package
|
import app.revanced.patcher.annotation.Package
|
||||||
|
|
||||||
@Compatibility(
|
@Compatibility([Package("com.google.android.youtube")])
|
||||||
[Package(
|
|
||||||
"com.google.android.youtube", arrayOf()
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
internal annotation class PremiumHeadingCompatibility
|
internal annotation class PremiumHeadingCompatibility
|
||||||
|
@ -3,11 +3,7 @@ package app.revanced.patches.youtube.layout.branding.icon.annotations
|
|||||||
import app.revanced.patcher.annotation.Compatibility
|
import app.revanced.patcher.annotation.Compatibility
|
||||||
import app.revanced.patcher.annotation.Package
|
import app.revanced.patcher.annotation.Package
|
||||||
|
|
||||||
@Compatibility(
|
@Compatibility([Package("com.google.android.youtube")])
|
||||||
[Package(
|
|
||||||
"com.google.android.youtube", arrayOf()
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
internal annotation class CustomBrandingCompatibility
|
internal annotation class CustomBrandingCompatibility
|
||||||
|
@ -3,11 +3,7 @@ package app.revanced.patches.youtube.layout.castbutton.annotations
|
|||||||
import app.revanced.patcher.annotation.Compatibility
|
import app.revanced.patcher.annotation.Compatibility
|
||||||
import app.revanced.patcher.annotation.Package
|
import app.revanced.patcher.annotation.Package
|
||||||
|
|
||||||
@Compatibility(
|
@Compatibility([Package("com.google.android.youtube")])
|
||||||
[Package(
|
|
||||||
"com.google.android.youtube", arrayOf()
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
internal annotation class CastButtonCompatibility
|
internal annotation class CastButtonCompatibility
|
||||||
|
@ -16,10 +16,7 @@ import org.jf.dexlib2.Opcode
|
|||||||
@ShortsButtonCompatibility
|
@ShortsButtonCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object FullscreenViewAdderFingerprint : MethodFingerprint(
|
object FullscreenViewAdderFingerprint : MethodFingerprint(
|
||||||
null,
|
opcodes = listOf(
|
||||||
null,
|
|
||||||
null,
|
|
||||||
listOf(
|
|
||||||
Opcode.IGET_BOOLEAN
|
Opcode.IGET_BOOLEAN
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -16,10 +16,8 @@ import org.jf.dexlib2.Opcode
|
|||||||
@ShortsButtonCompatibility
|
@ShortsButtonCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object FullscreenViewAdderParentFingerprint : MethodFingerprint(
|
object FullscreenViewAdderParentFingerprint : MethodFingerprint(
|
||||||
null,
|
parameters = listOf("L", "L"),
|
||||||
null,
|
opcodes = listOf(
|
||||||
listOf("L", "L"),
|
|
||||||
listOf(
|
|
||||||
Opcode.GOTO,
|
Opcode.GOTO,
|
||||||
Opcode.IGET_BOOLEAN,
|
Opcode.IGET_BOOLEAN,
|
||||||
Opcode.IF_EQ,
|
Opcode.IF_EQ,
|
||||||
@ -27,6 +25,5 @@ object FullscreenViewAdderParentFingerprint : MethodFingerprint(
|
|||||||
Opcode.CONST_4,
|
Opcode.CONST_4,
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
),
|
),
|
||||||
null,
|
customFingerprint = { it.definingClass.endsWith("FullscreenEngagementPanelOverlay;") }
|
||||||
{ it.definingClass.endsWith("FullscreenEngagementPanelOverlay;") }
|
|
||||||
)
|
)
|
||||||
|
@ -3,9 +3,9 @@ package app.revanced.patches.youtube.layout.reels.fingerprints
|
|||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.layout.reels.annotations.HideReelsCompatibility
|
import app.revanced.patches.youtube.layout.reels.annotations.HideReelsCompatibility
|
||||||
import org.jf.dexlib2.AccessFlags
|
import org.jf.dexlib2.AccessFlags
|
||||||
|
|
||||||
@ -17,6 +17,6 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
@HideReelsCompatibility
|
@HideReelsCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object HideReelsFingerprint : MethodFingerprint(
|
object HideReelsFingerprint : MethodFingerprint(
|
||||||
null, AccessFlags.PROTECTED or AccessFlags.FINAL, listOf("L", "L"), null,
|
access = AccessFlags.PROTECTED or AccessFlags.FINAL, parameters = listOf("L", "L"),
|
||||||
listOf("multiReelDismissalCallback", "reelItemRenderers", "reelDismissalInfo")
|
strings = listOf("multiReelDismissalCallback", "reelItemRenderers", "reelDismissalInfo")
|
||||||
)
|
)
|
@ -19,7 +19,5 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
object DislikeFingerprint : MethodFingerprint(
|
object DislikeFingerprint : MethodFingerprint(
|
||||||
"V",
|
"V",
|
||||||
AccessFlags.PROTECTED or AccessFlags.CONSTRUCTOR,
|
AccessFlags.PROTECTED or AccessFlags.CONSTRUCTOR,
|
||||||
null,
|
strings = listOf("like/dislike")
|
||||||
null,
|
|
||||||
listOf("like/dislike")
|
|
||||||
)
|
)
|
@ -19,7 +19,5 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
object LikeFingerprint : MethodFingerprint(
|
object LikeFingerprint : MethodFingerprint(
|
||||||
"V",
|
"V",
|
||||||
AccessFlags.PROTECTED or AccessFlags.CONSTRUCTOR,
|
AccessFlags.PROTECTED or AccessFlags.CONSTRUCTOR,
|
||||||
null,
|
strings = listOf("like/like")
|
||||||
null,
|
|
||||||
listOf("like/like")
|
|
||||||
)
|
)
|
@ -19,7 +19,5 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
object RemoveLikeFingerprint : MethodFingerprint(
|
object RemoveLikeFingerprint : MethodFingerprint(
|
||||||
"V",
|
"V",
|
||||||
AccessFlags.PROTECTED or AccessFlags.CONSTRUCTOR,
|
AccessFlags.PROTECTED or AccessFlags.CONSTRUCTOR,
|
||||||
null,
|
strings = listOf("like/removelike")
|
||||||
null,
|
|
||||||
listOf("like/removelike")
|
|
||||||
)
|
)
|
@ -15,9 +15,5 @@ import app.revanced.patches.youtube.layout.returnyoutubedislike.annotations.Retu
|
|||||||
@ReturnYouTubeDislikeCompatibility
|
@ReturnYouTubeDislikeCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object TextComponentSpecParentFingerprint : MethodFingerprint(
|
object TextComponentSpecParentFingerprint : MethodFingerprint(
|
||||||
null,
|
strings = listOf("TextComponentSpec: No converter for extension: ")
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
listOf("TextComponentSpec: No converter for extension: ")
|
|
||||||
)
|
)
|
@ -15,7 +15,6 @@ import app.revanced.patches.youtube.layout.sponsorblock.annotations.SponsorBlock
|
|||||||
@SponsorBlockCompatibility
|
@SponsorBlockCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object CreateVideoPlayerSeekbarFingerprint : MethodFingerprint(
|
object CreateVideoPlayerSeekbarFingerprint : MethodFingerprint(
|
||||||
"V", null, null,
|
"V",
|
||||||
null,
|
strings = listOf("timed_markers_width")
|
||||||
listOf("timed_markers_width")
|
|
||||||
)
|
)
|
@ -17,8 +17,5 @@ import org.jf.dexlib2.util.MethodUtil
|
|||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object NextGenWatchLayoutFingerprint : MethodFingerprint(
|
object NextGenWatchLayoutFingerprint : MethodFingerprint(
|
||||||
"V", // constructors return void, in favour of speed of matching, this fingerprint has been added
|
"V", // constructors return void, in favour of speed of matching, this fingerprint has been added
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
customFingerprint = { methodDef -> MethodUtil.isConstructor(methodDef) && methodDef.parameterTypes.size == 3 && methodDef.definingClass.endsWith("NextGenWatchLayout;") }
|
customFingerprint = { methodDef -> MethodUtil.isConstructor(methodDef) && methodDef.parameterTypes.size == 3 && methodDef.definingClass.endsWith("NextGenWatchLayout;") }
|
||||||
)
|
)
|
@ -16,7 +16,6 @@ import org.jf.dexlib2.Opcode
|
|||||||
@SponsorBlockCompatibility
|
@SponsorBlockCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object PlayerControllerSetTimeReferenceFingerprint : MethodFingerprint(
|
object PlayerControllerSetTimeReferenceFingerprint : MethodFingerprint(
|
||||||
null, null, null,
|
opcodes = listOf(Opcode.INVOKE_DIRECT_RANGE, Opcode.IGET_OBJECT),
|
||||||
listOf(Opcode.INVOKE_DIRECT_RANGE, Opcode.IGET_OBJECT),
|
strings = listOf("Media progress reported outside media playback: ")
|
||||||
listOf("Media progress reported outside media playback: ")
|
|
||||||
)
|
)
|
@ -15,8 +15,6 @@ import app.revanced.patches.youtube.layout.sponsorblock.annotations.SponsorBlock
|
|||||||
@SponsorBlockCompatibility
|
@SponsorBlockCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object PlayerInitFingerprint : MethodFingerprint(
|
object PlayerInitFingerprint : MethodFingerprint(
|
||||||
null, null, null,
|
|
||||||
null,
|
|
||||||
strings = listOf(
|
strings = listOf(
|
||||||
"playVideo called on player response with no videoStreamingData."
|
"playVideo called on player response with no videoStreamingData."
|
||||||
),
|
),
|
||||||
|
@ -15,8 +15,6 @@ import app.revanced.patches.youtube.layout.sponsorblock.annotations.SponsorBlock
|
|||||||
@SponsorBlockCompatibility
|
@SponsorBlockCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object PlayerOverlaysLayoutInitFingerprint : MethodFingerprint(
|
object PlayerOverlaysLayoutInitFingerprint : MethodFingerprint(
|
||||||
null, null, null,
|
|
||||||
null,
|
customFingerprint = { methodDef -> methodDef.returnType.endsWith("YouTubePlayerOverlaysLayout;") }
|
||||||
null,
|
|
||||||
{ methodDef -> methodDef.returnType.endsWith("YouTubePlayerOverlaysLayout;") }
|
|
||||||
)
|
)
|
@ -18,11 +18,7 @@ import org.jf.dexlib2.iface.reference.MethodReference
|
|||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object RectangleFieldInvalidatorFingerprint : MethodFingerprint(
|
object RectangleFieldInvalidatorFingerprint : MethodFingerprint(
|
||||||
"V",
|
"V",
|
||||||
null,
|
customFingerprint = custom@{ methodDef ->
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
custom@{ methodDef ->
|
|
||||||
val instructions = methodDef.implementation?.instructions!!
|
val instructions = methodDef.implementation?.instructions!!
|
||||||
val instructionCount = instructions.count()
|
val instructionCount = instructions.count()
|
||||||
|
|
||||||
|
@ -15,9 +15,5 @@ import app.revanced.patches.youtube.layout.sponsorblock.annotations.SponsorBlock
|
|||||||
@SponsorBlockCompatibility
|
@SponsorBlockCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object SeekFingerprint : MethodFingerprint(
|
object SeekFingerprint : MethodFingerprint(
|
||||||
null,
|
strings = listOf("Attempting to seek during an ad")
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
listOf("Attempting to seek during an ad")
|
|
||||||
)
|
)
|
@ -16,8 +16,7 @@ import org.jf.dexlib2.Opcode
|
|||||||
@SponsorBlockCompatibility
|
@SponsorBlockCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object VideoLengthFingerprint : MethodFingerprint(
|
object VideoLengthFingerprint : MethodFingerprint(
|
||||||
null, null, null,
|
opcodes = listOf(
|
||||||
listOf(
|
|
||||||
Opcode.MOVE_RESULT_WIDE,
|
Opcode.MOVE_RESULT_WIDE,
|
||||||
Opcode.CMP_LONG,
|
Opcode.CMP_LONG,
|
||||||
Opcode.IF_LEZ,
|
Opcode.IF_LEZ,
|
||||||
|
@ -15,6 +15,5 @@ import app.revanced.patches.youtube.layout.sponsorblock.annotations.SponsorBlock
|
|||||||
@SponsorBlockCompatibility
|
@SponsorBlockCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object VideoTimeFingerprint : MethodFingerprint(
|
object VideoTimeFingerprint : MethodFingerprint(
|
||||||
null, null, null, null,
|
strings = listOf("MedialibPlayerTimeInfo{currentPositionMillis=")
|
||||||
listOf("MedialibPlayerTimeInfo{currentPositionMillis=")
|
|
||||||
)
|
)
|
@ -16,6 +16,6 @@ import org.jf.dexlib2.Opcode
|
|||||||
@TabletMiniPlayerCompatibility
|
@TabletMiniPlayerCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object MiniPlayerOverrideFingerprint : MethodFingerprint(
|
object MiniPlayerOverrideFingerprint : MethodFingerprint(
|
||||||
"Z", AccessFlags.STATIC or AccessFlags.PUBLIC ,null,
|
"Z", AccessFlags.STATIC or AccessFlags.PUBLIC,
|
||||||
listOf(Opcode.RETURN), // anchor to insert the instruction
|
opcodes = listOf(Opcode.RETURN), // anchor to insert the instruction
|
||||||
)
|
)
|
@ -16,6 +16,6 @@ import org.jf.dexlib2.Opcode
|
|||||||
@TabletMiniPlayerCompatibility
|
@TabletMiniPlayerCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object MiniPlayerOverrideNoContextFingerprint : MethodFingerprint(
|
object MiniPlayerOverrideNoContextFingerprint : MethodFingerprint(
|
||||||
"Z", AccessFlags.FINAL or AccessFlags.PRIVATE ,null,
|
"Z", AccessFlags.FINAL or AccessFlags.PRIVATE,
|
||||||
listOf(Opcode.RETURN), // anchor to insert the instruction
|
opcodes = listOf(Opcode.RETURN), // anchor to insert the instruction
|
||||||
)
|
)
|
@ -32,6 +32,5 @@ object MiniPlayerResponseModelSizeCheckFingerprint : MethodFingerprint(
|
|||||||
Opcode.INVOKE_STATIC,
|
Opcode.INVOKE_STATIC,
|
||||||
Opcode.MOVE_RESULT,
|
Opcode.MOVE_RESULT,
|
||||||
Opcode.IF_NEZ,
|
Opcode.IF_NEZ,
|
||||||
),
|
)
|
||||||
null
|
|
||||||
)
|
)
|
@ -17,5 +17,5 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
@HideWatermarkCompatibility
|
@HideWatermarkCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object HideWatermarkFingerprint : MethodFingerprint (
|
object HideWatermarkFingerprint : MethodFingerprint (
|
||||||
"V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("L", "L"), null ,null, null
|
"V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("L", "L")
|
||||||
)
|
)
|
@ -17,5 +17,5 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
@HideWatermarkCompatibility
|
@HideWatermarkCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object HideWatermarkParentFingerprint : MethodFingerprint (
|
object HideWatermarkParentFingerprint : MethodFingerprint (
|
||||||
"L", AccessFlags.PUBLIC or AccessFlags.FINAL, null, null, listOf("player_overlay_in_video_programming"), null
|
"L", AccessFlags.PUBLIC or AccessFlags.FINAL, strings = listOf("player_overlay_in_video_programming")
|
||||||
)
|
)
|
||||||
|
@ -6,7 +6,6 @@ import app.revanced.patcher.extensions.or
|
|||||||
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.layout.reels.annotations.HideReelsCompatibility
|
|
||||||
import app.revanced.patches.youtube.layout.widesearchbar.annotations.WideSearchbarCompatibility
|
import app.revanced.patches.youtube.layout.widesearchbar.annotations.WideSearchbarCompatibility
|
||||||
import org.jf.dexlib2.AccessFlags
|
import org.jf.dexlib2.AccessFlags
|
||||||
import org.jf.dexlib2.Opcode
|
import org.jf.dexlib2.Opcode
|
||||||
@ -18,31 +17,7 @@ import org.jf.dexlib2.Opcode
|
|||||||
@DirectPatternScanMethod
|
@DirectPatternScanMethod
|
||||||
@WideSearchbarCompatibility
|
@WideSearchbarCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
|
|
||||||
/*
|
|
||||||
This finds the following method:
|
|
||||||
public final View i(akrl akrlVar, adpd adpdVar) {
|
|
||||||
}
|
|
||||||
|
|
||||||
Method we search for is located in smali now.
|
|
||||||
See:
|
|
||||||
.method public final i(Lakrl;Ladpd;)Landroid/view/View;
|
|
||||||
iget-object v0, p0, Ljkg;->a:Landroid/app/Activity;
|
|
||||||
invoke-static {v0}, Landroid/view/LayoutInflater;->from(Landroid/content/Context;)Landroid/view/LayoutInflater;
|
|
||||||
move-result-object v0
|
|
||||||
iget-object v1, p0, Ljkg;->g:Ljis;
|
|
||||||
const/4 v2, 0x0
|
|
||||||
invoke-interface {v1, v2}, Ljis;->h(Z)V
|
|
||||||
iget-object p1, p1, Lakrl;->f:Lahnq;
|
|
||||||
if-nez p1, :cond_12
|
|
||||||
sget-object p1, Lahnq;->a:Lahnq;
|
|
||||||
:cond_12
|
|
||||||
iget-object v1, p0, Ljkg;->x:Ltxm;
|
|
||||||
invoke-static {v1}, Lfbn;->aF(Ltxm;)Z //THIS IS WHAT WE SEARCH FOR (Method fbn.aF)
|
|
||||||
move-result v1
|
|
||||||
*/
|
|
||||||
|
|
||||||
object WideSearchbarOneFingerprint : MethodFingerprint(
|
object WideSearchbarOneFingerprint : MethodFingerprint(
|
||||||
"L", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("L", "L"), listOf(Opcode.IF_NEZ, Opcode.SGET_OBJECT, Opcode.IGET_OBJECT, Opcode.INVOKE_STATIC),
|
"L", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("L", "L"),
|
||||||
null, null
|
listOf(Opcode.IF_NEZ, Opcode.SGET_OBJECT, Opcode.IGET_OBJECT, Opcode.INVOKE_STATIC)
|
||||||
)
|
)
|
@ -3,10 +3,9 @@ package app.revanced.patches.youtube.layout.widesearchbar.fingerprints
|
|||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
import app.revanced.patches.youtube.layout.reels.annotations.HideReelsCompatibility
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.layout.widesearchbar.annotations.WideSearchbarCompatibility
|
import app.revanced.patches.youtube.layout.widesearchbar.annotations.WideSearchbarCompatibility
|
||||||
import org.jf.dexlib2.AccessFlags
|
import org.jf.dexlib2.AccessFlags
|
||||||
|
|
||||||
@ -17,31 +16,7 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
@FuzzyPatternScanMethod(3)
|
@FuzzyPatternScanMethod(3)
|
||||||
@WideSearchbarCompatibility
|
@WideSearchbarCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
|
|
||||||
/*
|
|
||||||
* This finds the following method:
|
|
||||||
private final void l(PaneDescriptor paneDescriptor) {
|
|
||||||
Class cls = null;
|
|
||||||
ahat f = paneDescriptor != null ? paneDescriptor.f() : null;
|
|
||||||
if (paneDescriptor != null) {
|
|
||||||
cls = paneDescriptor.a;
|
|
||||||
}
|
|
||||||
ftu k = k();
|
|
||||||
if ((k == null || !k.bk()) && ((!frx.k(f) && !((Boolean) aqer.S(this.n).X(new fac(this, f, 19)).K(irx.i).aH(false)).booleanValue()) || (f != null && f.qA(ReelWatchEndpointOuterClass$ReelWatchEndpoint.reelWatchEndpoint)))) {
|
|
||||||
String j = frx.j(f);
|
|
||||||
if ((j != null && ("FEhistory".equals(j) || "FEmy_videos".equals(j) || "FEpurchases".equals(j) || j.startsWith("VL"))) || cls == this.I.E() || cls == this.G.a) {
|
|
||||||
this.F = 3;
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
this.F = 2;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.F = 1;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
object WideSearchbarOneParentFingerprint : MethodFingerprint(
|
object WideSearchbarOneParentFingerprint : MethodFingerprint(
|
||||||
"V", AccessFlags.PRIVATE or AccessFlags.FINAL, listOf("L"), null,
|
"V", AccessFlags.PRIVATE or AccessFlags.FINAL, listOf("L"),
|
||||||
listOf("FEhistory", "FEmy_videos", "FEpurchases")
|
strings = listOf("FEhistory", "FEmy_videos", "FEpurchases")
|
||||||
)
|
)
|
@ -6,7 +6,6 @@ import app.revanced.patcher.extensions.or
|
|||||||
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.layout.reels.annotations.HideReelsCompatibility
|
|
||||||
import app.revanced.patches.youtube.layout.widesearchbar.annotations.WideSearchbarCompatibility
|
import app.revanced.patches.youtube.layout.widesearchbar.annotations.WideSearchbarCompatibility
|
||||||
import org.jf.dexlib2.AccessFlags
|
import org.jf.dexlib2.AccessFlags
|
||||||
import org.jf.dexlib2.Opcode
|
import org.jf.dexlib2.Opcode
|
||||||
@ -18,32 +17,8 @@ import org.jf.dexlib2.Opcode
|
|||||||
@DirectPatternScanMethod
|
@DirectPatternScanMethod
|
||||||
@WideSearchbarCompatibility
|
@WideSearchbarCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
|
|
||||||
/*
|
|
||||||
public static jis h(Context context, txm txmVar, uag uagVar, txp txpVar) {
|
|
||||||
return fbn.aB(txmVar) ? new jhx(context, txmVar, uagVar, txpVar) : jis.d;
|
|
||||||
}
|
|
||||||
|
|
||||||
Method we search for is located in smali now.
|
|
||||||
See:
|
|
||||||
.method public static h(Landroid/content/Context;Ltxm;Luag;Ltxp;)Ljis;
|
|
||||||
invoke-static {p1}, Lfbn;->aB(Ltxm;)Z //this is the method we want to change. fbn.aB
|
|
||||||
move-result v0
|
|
||||||
if-eqz v0, :cond_c
|
|
||||||
new-instance v0, Ljhx;
|
|
||||||
invoke-direct {v0, p0, p1, p2, p3}, Ljhx;-><init>(Landroid/content/Context;Ltxm;Luag;Ltxp;)V
|
|
||||||
goto :goto_e
|
|
||||||
:cond_c
|
|
||||||
sget-object v0, Ljis;->d:Ljis;
|
|
||||||
:goto_e
|
|
||||||
return-object v0
|
|
||||||
.end method
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
object WideSearchbarTwoFingerprint : MethodFingerprint(
|
object WideSearchbarTwoFingerprint : MethodFingerprint(
|
||||||
"L", AccessFlags.PUBLIC or AccessFlags.STATIC, null, listOf(
|
"L", AccessFlags.PUBLIC or AccessFlags.STATIC, opcodes = listOf(
|
||||||
Opcode.INVOKE_STATIC, Opcode.MOVE_RESULT, Opcode.IF_EQZ, Opcode.NEW_INSTANCE
|
Opcode.INVOKE_STATIC, Opcode.MOVE_RESULT, Opcode.IF_EQZ, Opcode.NEW_INSTANCE
|
||||||
),
|
)
|
||||||
null, null
|
|
||||||
)
|
)
|
@ -14,19 +14,7 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
)
|
)
|
||||||
@WideSearchbarCompatibility
|
@WideSearchbarCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
|
|
||||||
/*
|
|
||||||
This finds following method:
|
|
||||||
public static ies i(br brVar) {
|
|
||||||
bp f = brVar.getSupportFragmentManager().f("VIDEO_QUALITIES_QUICK_MENU_BOTTOM_SHEET_FRAGMENT");
|
|
||||||
if (f != null) {
|
|
||||||
return (kga) f;
|
|
||||||
}
|
|
||||||
return new kga();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
object WideSearchbarTwoParentFingerprint : MethodFingerprint(
|
object WideSearchbarTwoParentFingerprint : MethodFingerprint(
|
||||||
"L", AccessFlags.PUBLIC or AccessFlags.STATIC, listOf("L"), null,
|
"L", AccessFlags.PUBLIC or AccessFlags.STATIC, listOf("L"),
|
||||||
listOf("VIDEO_QUALITIES_QUICK_MENU_BOTTOM_SHEET_FRAGMENT")
|
strings = listOf("VIDEO_QUALITIES_QUICK_MENU_BOTTOM_SHEET_FRAGMENT")
|
||||||
)
|
)
|
@ -26,7 +26,5 @@ object AutoRepeatFingerprint : MethodFingerprint(
|
|||||||
"V",
|
"V",
|
||||||
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
listOf(),
|
listOf(),
|
||||||
null,
|
|
||||||
null,
|
|
||||||
customFingerprint = { methodDef -> methodDef.implementation!!.instructions.count() == 3 && methodDef.annotations.isEmpty()}
|
customFingerprint = { methodDef -> methodDef.implementation!!.instructions.count() == 3 && methodDef.annotations.isEmpty()}
|
||||||
)
|
)
|
@ -3,9 +3,9 @@ package app.revanced.patches.youtube.misc.autorepeat.fingerprints
|
|||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.misc.autorepeat.annotations.AutoRepeatCompatibility
|
import app.revanced.patches.youtube.misc.autorepeat.annotations.AutoRepeatCompatibility
|
||||||
import org.jf.dexlib2.AccessFlags
|
import org.jf.dexlib2.AccessFlags
|
||||||
|
|
||||||
@ -16,20 +16,11 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
@FuzzyPatternScanMethod(2)
|
@FuzzyPatternScanMethod(2)
|
||||||
@AutoRepeatCompatibility
|
@AutoRepeatCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
//This Fingerprints finds the play() method needed to be called when AutoRepeatPatch.shouldAutoRepeat() == true
|
|
||||||
/*
|
|
||||||
public final void E() {
|
|
||||||
Stuff happens
|
|
||||||
String str = "play() called when the player wasn't loaded.";
|
|
||||||
String str2 = "play() blocked because Background Playability failed";
|
|
||||||
Stuff happens again
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
object AutoRepeatParentFingerprint : MethodFingerprint(
|
object AutoRepeatParentFingerprint : MethodFingerprint(
|
||||||
"V",
|
"V",
|
||||||
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
null,
|
strings = listOf(
|
||||||
null,
|
"play() called when the player wasn't loaded.",
|
||||||
listOf("play() called when the player wasn't loaded.", "play() blocked because Background Playability failed"),
|
"play() blocked because Background Playability failed"
|
||||||
null
|
)
|
||||||
)
|
)
|
@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Package
|
|||||||
|
|
||||||
@Compatibility(
|
@Compatibility(
|
||||||
[
|
[
|
||||||
Package("com.google.android.youtube", arrayOf()),
|
Package("com.google.android.youtube"),
|
||||||
Package("com.vanced.android.youtube", arrayOf())
|
Package("com.vanced.android.youtube")
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
|
@ -12,9 +12,7 @@ import org.jf.dexlib2.Opcode
|
|||||||
@DirectPatternScanMethod
|
@DirectPatternScanMethod
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object UserAgentHeaderBuilderFingerprint : MethodFingerprint(
|
object UserAgentHeaderBuilderFingerprint : MethodFingerprint(
|
||||||
null,
|
parameters = listOf("L", "L", "L"),
|
||||||
null,
|
opcodes = listOf(Opcode.MOVE_RESULT_OBJECT, Opcode.INVOKE_VIRTUAL),
|
||||||
listOf("L", "L", "L"),
|
strings = listOf("(Linux; U; Android "),
|
||||||
listOf(Opcode.MOVE_RESULT_OBJECT, Opcode.INVOKE_VIRTUAL),
|
|
||||||
listOf("(Linux; U; Android "),
|
|
||||||
)
|
)
|
@ -12,7 +12,6 @@ import app.revanced.patcher.patch.annotations.Patch
|
|||||||
import app.revanced.patcher.patch.impl.BytecodePatch
|
import app.revanced.patcher.patch.impl.BytecodePatch
|
||||||
import app.revanced.patches.youtube.misc.clientspoof.annotations.ClientSpoofCompatibility
|
import app.revanced.patches.youtube.misc.clientspoof.annotations.ClientSpoofCompatibility
|
||||||
import app.revanced.patches.youtube.misc.clientspoof.fingerprints.UserAgentHeaderBuilderFingerprint
|
import app.revanced.patches.youtube.misc.clientspoof.fingerprints.UserAgentHeaderBuilderFingerprint
|
||||||
import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch
|
|
||||||
import org.jf.dexlib2.iface.instruction.FiveRegisterInstruction
|
import org.jf.dexlib2.iface.instruction.FiveRegisterInstruction
|
||||||
|
|
||||||
@Patch
|
@Patch
|
||||||
|
@ -3,9 +3,9 @@ package app.revanced.patches.youtube.misc.customplaybackspeed.fingerprints
|
|||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.misc.customplaybackspeed.annotations.CustomPlaybackSpeedCompatibility
|
import app.revanced.patches.youtube.misc.customplaybackspeed.annotations.CustomPlaybackSpeedCompatibility
|
||||||
import org.jf.dexlib2.AccessFlags
|
import org.jf.dexlib2.AccessFlags
|
||||||
import org.jf.dexlib2.Opcode
|
import org.jf.dexlib2.Opcode
|
||||||
@ -20,8 +20,7 @@ import org.jf.dexlib2.Opcode
|
|||||||
object SpeedArrayGeneratorFingerprint : MethodFingerprint(
|
object SpeedArrayGeneratorFingerprint : MethodFingerprint(
|
||||||
"[L",
|
"[L",
|
||||||
AccessFlags.PUBLIC or AccessFlags.STATIC,
|
AccessFlags.PUBLIC or AccessFlags.STATIC,
|
||||||
null,
|
opcodes = listOf(
|
||||||
listOf(
|
|
||||||
Opcode.IF_NEZ,
|
Opcode.IF_NEZ,
|
||||||
Opcode.SGET_OBJECT,
|
Opcode.SGET_OBJECT,
|
||||||
Opcode.GOTO,
|
Opcode.GOTO,
|
||||||
@ -29,5 +28,5 @@ object SpeedArrayGeneratorFingerprint : MethodFingerprint(
|
|||||||
Opcode.MOVE_RESULT_OBJECT,
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
Opcode.IGET_OBJECT,
|
Opcode.IGET_OBJECT,
|
||||||
),
|
),
|
||||||
listOf("0.0#")
|
strings = listOf("0.0#")
|
||||||
)
|
)
|
||||||
|
@ -3,11 +3,7 @@ package app.revanced.patches.youtube.misc.enabledebugging.annotations
|
|||||||
import app.revanced.patcher.annotation.Compatibility
|
import app.revanced.patcher.annotation.Compatibility
|
||||||
import app.revanced.patcher.annotation.Package
|
import app.revanced.patcher.annotation.Package
|
||||||
|
|
||||||
@Compatibility(
|
@Compatibility([Package("com.google.android.youtube")])
|
||||||
[Package(
|
|
||||||
"com.google.android.youtube", arrayOf()
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
internal annotation class EnableDebuggingCompatibility
|
internal annotation class EnableDebuggingCompatibility
|
||||||
|
@ -32,7 +32,6 @@ object HDRBrightnessFingerprintYEL : MethodFingerprint(
|
|||||||
Opcode.IGET_OBJECT,
|
Opcode.IGET_OBJECT,
|
||||||
Opcode.INVOKE_VIRTUAL
|
Opcode.INVOKE_VIRTUAL
|
||||||
),
|
),
|
||||||
null,
|
|
||||||
customFingerprint = { methodDef ->
|
customFingerprint = { methodDef ->
|
||||||
methodDef.implementation!!.instructions.any {
|
methodDef.implementation!!.instructions.any {
|
||||||
((it as? ReferenceInstruction)?.reference as? FieldReference)?.let { field ->
|
((it as? ReferenceInstruction)?.reference as? FieldReference)?.let { field ->
|
||||||
|
@ -16,8 +16,8 @@ import org.jf.dexlib2.Opcode
|
|||||||
@HDRBrightnessCompatibility
|
@HDRBrightnessCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object HDRBrightnessFingerprintYJK : MethodFingerprint(
|
object HDRBrightnessFingerprintYJK : MethodFingerprint(
|
||||||
"V", null, null,
|
"V",
|
||||||
listOf(
|
opcodes = listOf(
|
||||||
Opcode.SGET_OBJECT,
|
Opcode.SGET_OBJECT,
|
||||||
Opcode.IGET_OBJECT,
|
Opcode.IGET_OBJECT,
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
@ -27,5 +27,5 @@ object HDRBrightnessFingerprintYJK : MethodFingerprint(
|
|||||||
Opcode.IGET_OBJECT,
|
Opcode.IGET_OBJECT,
|
||||||
Opcode.INVOKE_VIRTUAL
|
Opcode.INVOKE_VIRTUAL
|
||||||
),
|
),
|
||||||
listOf("c.SettingNotFound;", "screen_brightness", "android.mediaview"),
|
strings = listOf("c.SettingNotFound;", "screen_brightness", "android.mediaview"),
|
||||||
)
|
)
|
@ -2,8 +2,8 @@ package app.revanced.patches.youtube.misc.integrations.fingerprints
|
|||||||
|
|
||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.misc.integrations.annotations.IntegrationsCompatibility
|
import app.revanced.patches.youtube.misc.integrations.annotations.IntegrationsCompatibility
|
||||||
|
|
||||||
@Name("init-fingerprint")
|
@Name("init-fingerprint")
|
||||||
@ -13,6 +13,5 @@ import app.revanced.patches.youtube.misc.integrations.annotations.IntegrationsCo
|
|||||||
@IntegrationsCompatibility
|
@IntegrationsCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object InitFingerprint : MethodFingerprint(
|
object InitFingerprint : MethodFingerprint(
|
||||||
null, null, null, null,
|
strings = listOf("Application creation")
|
||||||
listOf("Application creation")
|
|
||||||
)
|
)
|
@ -3,11 +3,7 @@ package app.revanced.patches.youtube.misc.manifest.annotations
|
|||||||
import app.revanced.patcher.annotation.Compatibility
|
import app.revanced.patcher.annotation.Compatibility
|
||||||
import app.revanced.patcher.annotation.Package
|
import app.revanced.patcher.annotation.Package
|
||||||
|
|
||||||
@Compatibility(
|
@Compatibility([Package("com.google.android.youtube")])
|
||||||
[Package(
|
|
||||||
"com.google.android.youtube", arrayOf()
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
internal annotation class FixLocaleConfigErrorCompatibility
|
internal annotation class FixLocaleConfigErrorCompatibility
|
@ -2,9 +2,9 @@ package app.revanced.patches.youtube.misc.microg.fingerprints
|
|||||||
|
|
||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
||||||
|
|
||||||
@Name("cast-context-fetch-fingerprint")
|
@Name("cast-context-fetch-fingerprint")
|
||||||
@ -15,6 +15,5 @@ import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibi
|
|||||||
@MicroGPatchCompatibility
|
@MicroGPatchCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object CastContextFetchFingerprint : MethodFingerprint(
|
object CastContextFetchFingerprint : MethodFingerprint(
|
||||||
null, null, null, null,
|
strings = listOf("Error fetching CastContext.")
|
||||||
listOf("Error fetching CastContext.")
|
|
||||||
)
|
)
|
@ -2,9 +2,9 @@ package app.revanced.patches.youtube.misc.microg.fingerprints
|
|||||||
|
|
||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
||||||
|
|
||||||
@Name("cast-module-fingerprint")
|
@Name("cast-module-fingerprint")
|
||||||
@ -15,6 +15,5 @@ import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibi
|
|||||||
@MicroGPatchCompatibility
|
@MicroGPatchCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object CastDynamiteModuleFingerprint : MethodFingerprint(
|
object CastDynamiteModuleFingerprint : MethodFingerprint(
|
||||||
null, null, null, null,
|
strings = listOf("com.google.android.gms.cast.framework.internal.CastDynamiteModuleImpl")
|
||||||
listOf("com.google.android.gms.cast.framework.internal.CastDynamiteModuleImpl")
|
|
||||||
)
|
)
|
@ -2,9 +2,9 @@ package app.revanced.patches.youtube.misc.microg.fingerprints
|
|||||||
|
|
||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
||||||
|
|
||||||
@Name("cast-context-fetch-fingerprint")
|
@Name("cast-context-fetch-fingerprint")
|
||||||
@ -15,6 +15,5 @@ import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibi
|
|||||||
@MicroGPatchCompatibility
|
@MicroGPatchCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object CastDynamiteModuleV2Fingerprint : MethodFingerprint(
|
object CastDynamiteModuleV2Fingerprint : MethodFingerprint(
|
||||||
null, null, null, null,
|
strings = listOf("Failed to load module via V2: ")
|
||||||
listOf("Failed to load module via V2: ")
|
|
||||||
)
|
)
|
@ -17,5 +17,8 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
@MicroGPatchCompatibility
|
@MicroGPatchCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object GooglePlayUtilityFingerprint : MethodFingerprint(
|
object GooglePlayUtilityFingerprint : MethodFingerprint(
|
||||||
"I", AccessFlags.PUBLIC or AccessFlags.STATIC, listOf("L", "L"), null, listOf("This should never happen.", "MetadataValueReader", "com.google.android.gms")
|
"I",
|
||||||
|
AccessFlags.PUBLIC or AccessFlags.STATIC,
|
||||||
|
listOf("L", "L"),
|
||||||
|
strings = listOf("This should never happen.", "MetadataValueReader", "com.google.android.gms")
|
||||||
)
|
)
|
@ -17,5 +17,6 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
@MicroGPatchCompatibility
|
@MicroGPatchCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object IntegrityCheckFingerprint : MethodFingerprint(
|
object IntegrityCheckFingerprint : MethodFingerprint(
|
||||||
"L", AccessFlags.PUBLIC or AccessFlags.STATIC, listOf("L", "L"), null, listOf("This should never happen.", "GooglePlayServicesUtil", "Google Play Store signature invalid.")
|
"L", AccessFlags.PUBLIC or AccessFlags.STATIC, listOf("L", "L"),
|
||||||
|
strings = listOf("This should never happen.", "GooglePlayServicesUtil", "Google Play Store signature invalid.")
|
||||||
)
|
)
|
@ -2,9 +2,9 @@ package app.revanced.patches.youtube.misc.microg.fingerprints
|
|||||||
|
|
||||||
import app.revanced.patcher.annotation.Name
|
import app.revanced.patcher.annotation.Name
|
||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
import app.revanced.patcher.fingerprint.method.annotation.DirectPatternScanMethod
|
||||||
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibility
|
||||||
|
|
||||||
@Name("google-play-prime-fingerprint")
|
@Name("google-play-prime-fingerprint")
|
||||||
@ -15,5 +15,5 @@ import app.revanced.patches.youtube.misc.microg.annotations.MicroGPatchCompatibi
|
|||||||
@MicroGPatchCompatibility
|
@MicroGPatchCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object PrimeFingerprint : MethodFingerprint(
|
object PrimeFingerprint : MethodFingerprint(
|
||||||
null, null, null, null, listOf("com.google.android.GoogleCamera", "com.android.vending")
|
strings = listOf("com.google.android.GoogleCamera", "com.android.vending")
|
||||||
)
|
)
|
@ -17,6 +17,6 @@ import org.jf.dexlib2.AccessFlags
|
|||||||
@MicroGPatchCompatibility
|
@MicroGPatchCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object ServiceCheckFingerprint : MethodFingerprint(
|
object ServiceCheckFingerprint : MethodFingerprint(
|
||||||
"V", AccessFlags.PUBLIC or AccessFlags.STATIC, listOf("L", "I"), null
|
"V", AccessFlags.PUBLIC or AccessFlags.STATIC, listOf("L", "I"),
|
||||||
, listOf("Google Play Services not available", "GooglePlayServices not available due to error ")
|
strings = listOf("Google Play Services not available", "GooglePlayServices not available due to error ")
|
||||||
)
|
)
|
@ -29,6 +29,5 @@ object MinimizedPlaybackKidsFingerprint : MethodFingerprint(
|
|||||||
Opcode.IGET,
|
Opcode.IGET,
|
||||||
Opcode.INVOKE_STATIC
|
Opcode.INVOKE_STATIC
|
||||||
),
|
),
|
||||||
null,
|
customFingerprint = { it.definingClass.endsWith("MinimizedPlaybackPolicyController;") }
|
||||||
{ it.definingClass.endsWith("MinimizedPlaybackPolicyController;") }
|
|
||||||
)
|
)
|
||||||
|
@ -20,8 +20,7 @@ import org.jf.dexlib2.Opcode
|
|||||||
object MinimizedPlaybackSettingsFingerprint : MethodFingerprint(
|
object MinimizedPlaybackSettingsFingerprint : MethodFingerprint(
|
||||||
"L",
|
"L",
|
||||||
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
null,
|
opcodes = listOf(
|
||||||
listOf(
|
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
Opcode.MOVE_RESULT,
|
Opcode.MOVE_RESULT,
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
@ -18,12 +18,12 @@ import org.jf.dexlib2.iface.instruction.WideLiteralInstruction
|
|||||||
@PlayerControlsCompatibility
|
@PlayerControlsCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object BottomControlsInflateFingerprint : MethodFingerprint(
|
object BottomControlsInflateFingerprint : MethodFingerprint(
|
||||||
null, null, null, listOf(
|
opcodes = listOf(
|
||||||
Opcode.CHECK_CAST,
|
Opcode.CHECK_CAST,
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
Opcode.MOVE_RESULT_OBJECT
|
Opcode.MOVE_RESULT_OBJECT
|
||||||
), null,
|
),
|
||||||
{ methodDef ->
|
customFingerprint = { methodDef ->
|
||||||
methodDef.implementation?.instructions?.any { instruction ->
|
methodDef.implementation?.instructions?.any { instruction ->
|
||||||
(instruction as? WideLiteralInstruction)?.wideLiteral == PlayerControlsBytecodePatch.bottomUiContainerResourceId
|
(instruction as? WideLiteralInstruction)?.wideLiteral == PlayerControlsBytecodePatch.bottomUiContainerResourceId
|
||||||
} == true
|
} == true
|
||||||
|
@ -15,7 +15,9 @@ import app.revanced.patches.youtube.misc.playercontrols.annotation.PlayerControl
|
|||||||
@PlayerControlsCompatibility
|
@PlayerControlsCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object PlayerControlsVisibilityFingerprint : MethodFingerprint(
|
object PlayerControlsVisibilityFingerprint : MethodFingerprint(
|
||||||
"V", null, listOf("Z", "Z"), null, null, { methodDef ->
|
"V",
|
||||||
|
parameters = listOf("Z", "Z"),
|
||||||
|
customFingerprint = { methodDef ->
|
||||||
methodDef.definingClass.endsWith("YouTubeControlsOverlay;")
|
methodDef.definingClass.endsWith("YouTubeControlsOverlay;")
|
||||||
}
|
}
|
||||||
)
|
)
|
@ -15,7 +15,7 @@ import app.revanced.patches.youtube.misc.playeroverlay.annotation.PlayerOverlays
|
|||||||
@PlayerOverlaysHookCompatibility
|
@PlayerOverlaysHookCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object PlayerOverlaysOnFinishInflateFingerprint : MethodFingerprint(
|
object PlayerOverlaysOnFinishInflateFingerprint : MethodFingerprint(
|
||||||
null, null, null, null, null, { methodDef ->
|
customFingerprint = { methodDef ->
|
||||||
methodDef.definingClass.endsWith("YouTubePlayerOverlaysLayout;") && methodDef.name == "onFinishInflate"
|
methodDef.definingClass.endsWith("YouTubePlayerOverlaysLayout;") && methodDef.name == "onFinishInflate"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -22,8 +22,7 @@ import org.jf.dexlib2.Opcode
|
|||||||
object UpdatePlayerTypeFingerprint : MethodFingerprint(
|
object UpdatePlayerTypeFingerprint : MethodFingerprint(
|
||||||
"V",
|
"V",
|
||||||
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
null,
|
opcodes = listOf(
|
||||||
listOf(
|
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
Opcode.IGET_OBJECT,
|
Opcode.IGET_OBJECT,
|
||||||
Opcode.IF_NE,
|
Opcode.IF_NE,
|
||||||
|
@ -3,11 +3,7 @@ package app.revanced.patches.youtube.misc.settings.annotations
|
|||||||
import app.revanced.patcher.annotation.Compatibility
|
import app.revanced.patcher.annotation.Compatibility
|
||||||
import app.revanced.patcher.annotation.Package
|
import app.revanced.patcher.annotation.Package
|
||||||
|
|
||||||
@Compatibility(
|
@Compatibility([Package("com.google.android.youtube")])
|
||||||
[Package(
|
|
||||||
"com.google.android.youtube", arrayOf()
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
internal annotation class SettingsCompatibility
|
internal annotation class SettingsCompatibility
|
@ -15,12 +15,7 @@ import app.revanced.patches.youtube.misc.settings.annotations.SettingsCompatibil
|
|||||||
@SettingsCompatibility
|
@SettingsCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object LicenseActivityFingerprint : MethodFingerprint(
|
object LicenseActivityFingerprint : MethodFingerprint(
|
||||||
null,
|
customFingerprint = { methodDef ->
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
{ methodDef ->
|
|
||||||
methodDef.definingClass.endsWith("LicenseActivity;") && methodDef.name == "onCreate"
|
methodDef.definingClass.endsWith("LicenseActivity;") && methodDef.name == "onCreate"
|
||||||
}
|
}
|
||||||
)
|
)
|
@ -15,12 +15,7 @@ import app.revanced.patches.youtube.misc.settings.annotations.SettingsCompatibil
|
|||||||
@SettingsCompatibility
|
@SettingsCompatibility
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object ReVancedSettingsActivityFingerprint : MethodFingerprint(
|
object ReVancedSettingsActivityFingerprint : MethodFingerprint(
|
||||||
null,
|
customFingerprint = { methodDef ->
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
{ methodDef ->
|
|
||||||
methodDef.definingClass.endsWith("ReVancedSettingActivity;") && methodDef.name == "initializeSettings"
|
methodDef.definingClass.endsWith("ReVancedSettingActivity;") && methodDef.name == "initializeSettings"
|
||||||
}
|
}
|
||||||
)
|
)
|
@ -17,11 +17,8 @@ import org.jf.dexlib2.iface.instruction.WideLiteralInstruction
|
|||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
object ThemeSetterFingerprint : MethodFingerprint(
|
object ThemeSetterFingerprint : MethodFingerprint(
|
||||||
"L",
|
"L",
|
||||||
null,
|
opcodes = listOf(Opcode.RETURN_OBJECT),
|
||||||
null,
|
customFingerprint = { methodDef ->
|
||||||
listOf(Opcode.RETURN_OBJECT),
|
|
||||||
null,
|
|
||||||
{ methodDef ->
|
|
||||||
methodDef.implementation?.instructions?.any {
|
methodDef.implementation?.instructions?.any {
|
||||||
it.opcode.ordinal == Opcode.CONST.ordinal && (it as WideLiteralInstruction).wideLiteral == SettingsPatch.appearanceStringId
|
it.opcode.ordinal == Opcode.CONST.ordinal && (it as WideLiteralInstruction).wideLiteral == SettingsPatch.appearanceStringId
|
||||||
} == true
|
} == true
|
||||||
|
@ -21,12 +21,11 @@ import org.jf.dexlib2.iface.instruction.NarrowLiteralInstruction
|
|||||||
object MaxBufferFingerprint : MethodFingerprint(
|
object MaxBufferFingerprint : MethodFingerprint(
|
||||||
"I", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf(),
|
"I", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf(),
|
||||||
listOf(Opcode.SGET_OBJECT, Opcode.IGET, Opcode.IF_EQZ, Opcode.RETURN),
|
listOf(Opcode.SGET_OBJECT, Opcode.IGET, Opcode.IF_EQZ, Opcode.RETURN),
|
||||||
null,
|
|
||||||
customFingerprint = { methodDef ->
|
customFingerprint = { methodDef ->
|
||||||
methodDef.definingClass.equals("Lcom/google/android/libraries/youtube/innertube/model/media/PlayerConfigModel;")
|
methodDef.definingClass == "Lcom/google/android/libraries/youtube/innertube/model/media/PlayerConfigModel;"
|
||||||
&& methodDef.implementation!!.instructions.any {
|
&& methodDef.implementation!!.instructions.any {
|
||||||
((it as? NarrowLiteralInstruction)?.narrowLiteral == 120000)
|
((it as? NarrowLiteralInstruction)?.narrowLiteral == 120000)
|
||||||
&& methodDef.name.equals("r")
|
&& methodDef.name == "r"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
@ -21,9 +21,8 @@ import org.jf.dexlib2.iface.instruction.NarrowLiteralInstruction
|
|||||||
object PlaybackBufferFingerprint : MethodFingerprint(
|
object PlaybackBufferFingerprint : MethodFingerprint(
|
||||||
"I", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf(),
|
"I", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf(),
|
||||||
listOf(Opcode.IF_LEZ, Opcode.RETURN),
|
listOf(Opcode.IF_LEZ, Opcode.RETURN),
|
||||||
null,
|
|
||||||
customFingerprint = { methodDef ->
|
customFingerprint = { methodDef ->
|
||||||
methodDef.definingClass.equals("Lcom/google/android/libraries/youtube/innertube/model/media/PlayerConfigModel;")
|
methodDef.definingClass == "Lcom/google/android/libraries/youtube/innertube/model/media/PlayerConfigModel;"
|
||||||
&& methodDef.implementation!!.instructions.any {
|
&& methodDef.implementation!!.instructions.any {
|
||||||
((it as? NarrowLiteralInstruction)?.narrowLiteral == 1600)
|
((it as? NarrowLiteralInstruction)?.narrowLiteral == 1600)
|
||||||
}
|
}
|
||||||
|
@ -21,9 +21,8 @@ import org.jf.dexlib2.iface.instruction.NarrowLiteralInstruction
|
|||||||
object ReBufferFingerprint : MethodFingerprint(
|
object ReBufferFingerprint : MethodFingerprint(
|
||||||
"I", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf(),
|
"I", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf(),
|
||||||
listOf(Opcode.IF_LEZ, Opcode.RETURN),
|
listOf(Opcode.IF_LEZ, Opcode.RETURN),
|
||||||
null,
|
|
||||||
customFingerprint = { methodDef ->
|
customFingerprint = { methodDef ->
|
||||||
methodDef.definingClass.equals("Lcom/google/android/libraries/youtube/innertube/model/media/PlayerConfigModel;")
|
methodDef.definingClass == "Lcom/google/android/libraries/youtube/innertube/model/media/PlayerConfigModel;"
|
||||||
&& methodDef.implementation!!.instructions.any {
|
&& methodDef.implementation!!.instructions.any {
|
||||||
((it as? NarrowLiteralInstruction)?.narrowLiteral == 5000)
|
((it as? NarrowLiteralInstruction)?.narrowLiteral == 5000)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user