Skip to content

Commit 6d29254

Browse files
feat: Unofficial 20.15 support
1 parent 73fd235 commit 6d29254

File tree

4 files changed

+39
-3
lines changed

4 files changed

+39
-3
lines changed

patches/api/patches.api

+1
Original file line numberDiff line numberDiff line change
@@ -1338,6 +1338,7 @@ public final class app/revanced/patches/youtube/misc/playservice/VersionCheckPat
13381338
public static final fun is_20_09_or_greater ()Z
13391339
public static final fun is_20_10_or_greater ()Z
13401340
public static final fun is_20_14_or_greater ()Z
1341+
public static final fun is_20_15_or_greater ()Z
13411342
}
13421343

13431344
public final class app/revanced/patches/youtube/misc/privacy/RemoveTrackingQueryParameterPatchKt {

patches/src/main/kotlin/app/revanced/patches/youtube/misc/playservice/VersionCheckPatch.kt

+3
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ var is_20_10_or_greater = false
4949
private set
5050
var is_20_14_or_greater = false
5151
private set
52+
var is_20_15_or_greater = false
53+
private set
5254

5355
val versionCheckPatch = resourcePatch(
5456
description = "Uses the Play Store service version to find the major/minor version of the YouTube target app.",
@@ -86,5 +88,6 @@ val versionCheckPatch = resourcePatch(
8688
is_20_09_or_greater = 251006000 <= playStoreServicesVersion
8789
is_20_10_or_greater = 251105000 <= playStoreServicesVersion
8890
is_20_14_or_greater = 251505000 <= playStoreServicesVersion
91+
is_20_15_or_greater = 251605000 <= playStoreServicesVersion
8992
}
9093
}

patches/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/Fingerprints.kt

+30-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,37 @@ import app.revanced.patcher.string
55
import com.android.tools.smali.dexlib2.AccessFlags
66

77
/**
8-
* For targets 20.10 and later.
8+
* For targets 20.15 and later.
99
*/
1010
internal val playerParameterBuilderFingerprint by fingerprint {
11+
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
12+
returns("L")
13+
parameters(
14+
"Ljava/lang/String;", // VideoId.
15+
"[B",
16+
"Ljava/lang/String;", // Player parameters proto buffer.
17+
"Ljava/lang/String;",
18+
"I",
19+
"Z",
20+
"I",
21+
"L",
22+
"Ljava/util/Set;",
23+
"Ljava/lang/String;",
24+
"Ljava/lang/String;",
25+
"L",
26+
"Z", // Appears to indicate if the video id is being opened or is currently playing.
27+
"Z",
28+
"Z"
29+
)
30+
instructions(
31+
string("psps")
32+
)
33+
}
34+
35+
/**
36+
* For targets 20.10 to 20.14.
37+
*/
38+
internal val playerParameterBuilder2010Fingerprint by fingerprint {
1139
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
1240
returns("L")
1341
parameters(
@@ -89,7 +117,7 @@ internal val playerParameterBuilder1925Fingerprint by fingerprint {
89117
}
90118

91119
/**
92-
* For targets 19.24 and earlier.
120+
* For targets 19.01 to 19.24.
93121
*/
94122
internal val playerParameterBuilderLegacyFingerprint by fingerprint {
95123
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)

patches/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch.kt

+5-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
99
import app.revanced.patches.youtube.misc.playservice.is_19_23_or_greater
1010
import app.revanced.patches.youtube.misc.playservice.is_20_02_or_greater
1111
import app.revanced.patches.youtube.misc.playservice.is_20_10_or_greater
12+
import app.revanced.patches.youtube.misc.playservice.is_20_15_or_greater
1213
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
1314

1415
private val hooks = mutableSetOf<Hook>()
@@ -39,9 +40,12 @@ val playerResponseMethodHookPatch = bytecodePatch {
3940

4041
execute {
4142
val fingerprint : Fingerprint
42-
if (is_20_10_or_greater) {
43+
if (is_20_15_or_greater) {
4344
parameterIsShortAndOpeningOrPlaying = 13
4445
fingerprint = playerParameterBuilderFingerprint
46+
} else if (is_20_10_or_greater) {
47+
parameterIsShortAndOpeningOrPlaying = 13
48+
fingerprint = playerParameterBuilder2010Fingerprint
4549
} else if (is_20_02_or_greater) {
4650
parameterIsShortAndOpeningOrPlaying = 12
4751
fingerprint = playerParameterBuilder2002Fingerprint

0 commit comments

Comments
 (0)