fix(youtube): add support YouTube v18.25.39

This commit is contained in:
inotia00 2023-07-06 12:04:20 +09:00
parent 4179e8dadc
commit f7e1bf978f
10 changed files with 21 additions and 20 deletions

View File

@ -31,7 +31,8 @@ Example:
"18.21.35", "18.21.35",
"18.22.37", "18.22.37",
"18.23.36", "18.23.36",
"18.24.37" "18.24.37",
"18.25.39"
] ]
} }
] ]

View File

@ -8,7 +8,8 @@ object FullscreenEngagementPanelFingerprint : MethodFingerprint(
returnType = "L", returnType = "L",
parameters = listOf("L"), parameters = listOf("L"),
customFingerprint = { methodDef, _ -> customFingerprint = { methodDef, _ ->
methodDef.definingClass.endsWith("/FullscreenEngagementPanelOverlay;") && methodDef.isWideLiteralExists(
methodDef.isWideLiteralExists(FullScreenEngagementPanel) FullScreenEngagementPanel
)
} }
) )

View File

@ -4,6 +4,7 @@ import app.revanced.patcher.extensions.or
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.AccessFlags
import org.jf.dexlib2.Opcode import org.jf.dexlib2.Opcode
import org.jf.dexlib2.iface.instruction.NarrowLiteralInstruction
object KidsMinimizedPlaybackPolicyControllerFingerprint : MethodFingerprint( object KidsMinimizedPlaybackPolicyControllerFingerprint : MethodFingerprint(
returnType = "V", returnType = "V",
@ -39,6 +40,7 @@ object KidsMinimizedPlaybackPolicyControllerFingerprint : MethodFingerprint(
Opcode.RETURN_VOID Opcode.RETURN_VOID
), ),
customFingerprint = { methodDef, _ -> customFingerprint = { methodDef, _ ->
methodDef.definingClass.endsWith("/MinimizedPlaybackPolicyController;") methodDef.implementation!!.instructions.any {
((it as? NarrowLiteralInstruction)?.narrowLiteral == 5)
} }
) })

View File

@ -11,6 +11,7 @@ object MusicAppDeeplinkButtonFingerprint : MethodFingerprint(
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
parameters = listOf("Z", "Z"), parameters = listOf("Z", "Z"),
customFingerprint = { methodDef, _ -> customFingerprint = { methodDef, _ ->
methodDef.definingClass.endsWith("MusicAppDeeplinkButtonController;") && methodDef.isWideLiteralExists(
methodDef.isWideLiteralExists(MusicAppDeeplinkButtonView) MusicAppDeeplinkButtonView
)
}) })

View File

@ -39,6 +39,6 @@ object TimeCounterFingerprint : MethodFingerprint(
customFingerprint = { _, classDef -> customFingerprint = { _, classDef ->
// On older devices this fingerprint resolves very slowly. // On older devices this fingerprint resolves very slowly.
// Speed this up by checking for the number of methods. // Speed this up by checking for the number of methods.
classDef.methods.count() == 14 classDef.methods.count() == 14 || classDef.methods.count() == 15
} }
) )

View File

@ -10,7 +10,8 @@ import app.revanced.patcher.annotation.Package
"18.21.35", "18.21.35",
"18.22.37", "18.22.37",
"18.23.36", "18.23.36",
"18.24.37" "18.24.37",
"18.25.39"
) )
)] )]
) )

View File

@ -17,7 +17,8 @@ object YouTubeControlsOverlayFingerprint : MethodFingerprint(
Opcode.IF_EQZ Opcode.IF_EQZ
), ),
customFingerprint = { methodDef, _ -> customFingerprint = { methodDef, _ ->
methodDef.definingClass.endsWith("/YouTubeControlsOverlay;") && methodDef.isWideLiteralExists(
methodDef.isWideLiteralExists(YoutubeControlsOverlay) YoutubeControlsOverlay
)
} }
) )

View File

@ -17,8 +17,5 @@ object VideoStateFingerprint : MethodFingerprint(
Opcode.IF_EQZ, Opcode.IF_EQZ,
Opcode.IF_EQZ, Opcode.IF_EQZ,
Opcode.IGET_OBJECT, // obfuscated parameter field name Opcode.IGET_OBJECT, // obfuscated parameter field name
), )
customFingerprint = { methodDef, _ ->
methodDef.definingClass.endsWith("/YouTubeControlsOverlay;")
}
) )

View File

@ -6,7 +6,4 @@ object VideoIdParentFingerprint : MethodFingerprint(
returnType = "V", returnType = "V",
parameters = listOf("Ljava/lang/Object;", "Ljava/lang/Exception;"), parameters = listOf("Ljava/lang/Object;", "Ljava/lang/Exception;"),
strings = listOf("error retrieving subtitle"), strings = listOf("error retrieving subtitle"),
customFingerprint = { methodDef, _ ->
methodDef.definingClass.endsWith("/SubtitlesOverlayPresenter;")
}
) )

View File

@ -266,7 +266,7 @@
<!-- SETTINGS: SPOOF_APP_VERSION <!-- SETTINGS: SPOOF_APP_VERSION
<SwitchPreference android:title="@string/revanced_spoof_app_version_title" android:key="revanced_spoof_app_version" android:defaultValue="false" android:summary="@string/revanced_spoof_app_version_summary" /> <SwitchPreference android:title="@string/revanced_spoof_app_version_title" android:key="revanced_spoof_app_version" android:defaultValue="false" android:summary="@string/revanced_spoof_app_version_summary" />
<ListPreference android:title="@string/revanced_spoof_app_version_target_entry_title" android:key="revanced_spoof_app_version_target" android:entries="@array/revanced_spoof_app_version_target_entry" android:defaultValue="18.20.39" android:entryValues="@array/revanced_spoof_app_version_target_entry_value" /> <ListPreference android:title="@string/revanced_spoof_app_version_target_entry_title" android:key="revanced_spoof_app_version_target" android:entries="@array/revanced_spoof_app_version_target_entry" android:defaultValue="18.20.39" android:entryValues="@array/revanced_spoof_app_version_target_entry_value" />
<app.revanced.integrations.settingsmenu.ResettableEditTextPreference android:hint="17.30.34" android:title="@string/revanced_spoof_app_version_target_title" android:key="revanced_spoof_app_version_target" android:summary="@string/revanced_spoof_app_version_target_summary" android:inputType="text" android:dependency="revanced_spoof_app_version" />SETTINGS: SPOOF_APP_VERSION --> <app.revanced.integrations.settingsmenu.ResettableEditTextPreference android:hint="18.20.39" android:title="@string/revanced_spoof_app_version_target_title" android:key="revanced_spoof_app_version_target" android:summary="@string/revanced_spoof_app_version_target_summary" android:inputType="text" android:dependency="revanced_spoof_app_version" />SETTINGS: SPOOF_APP_VERSION -->
<!-- SETTINGS: SPOOF_PLAYER_PARAMETER <!-- SETTINGS: SPOOF_PLAYER_PARAMETER
<SwitchPreference android:title="@string/revanced_spoof_player_parameter_title" android:key="revanced_spoof_player_parameter" android:defaultValue="true" android:summary="@string/revanced_spoof_player_parameter_summary" /> <SwitchPreference android:title="@string/revanced_spoof_player_parameter_title" android:key="revanced_spoof_player_parameter" android:defaultValue="true" android:summary="@string/revanced_spoof_player_parameter_summary" />