Skip to content

feat: Update to patcher v22 #4409

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 246 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
246 commits
Select commit Hold shift + click to select a range
bf83db8
refactor: Basic use of patcher v22 instruction filters
LisoUseInAIKyrios Jan 1, 2025
6111bca
refactor
LisoUseInAIKyrios Jan 2, 2025
f9767e1
refactor
LisoUseInAIKyrios Jan 2, 2025
96e60a4
fix: add missing dependency used by fingerprints
LisoUseInAIKyrios Jan 2, 2025
cfce280
refactor: use 'by' semantic
LisoUseInAIKyrios Jan 3, 2025
2d1f7ff
Allow using a fingerprint result inside another fingerprint
LisoUseInAIKyrios Jan 3, 2025
5c3fb65
refactor
LisoUseInAIKyrios Jan 3, 2025
3db7566
use non deprecated method
LisoUseInAIKyrios Jan 3, 2025
f3b8602
Simplify
LisoUseInAIKyrios Jan 3, 2025
d2fbbf5
refactor: Simplify with class (parent) fingerprint
LisoUseInAIKyrios Jan 3, 2025
37833a0
refactor
LisoUseInAIKyrios Jan 4, 2025
0dfa503
use `NewInstanceFilter` filter
LisoUseInAIKyrios Jan 4, 2025
adc89a6
fix version constrain
LisoUseInAIKyrios Jan 4, 2025
e823574
refactor
LisoUseInAIKyrios Jan 4, 2025
2c1cdcc
Restore use of context receivers
LisoUseInAIKyrios Jan 5, 2025
d44f860
refactor: Rename to `MethodCallFilter` and `FieldCallFilter`
LisoUseInAIKyrios Jan 5, 2025
7ca1542
Revert "refactor: Simplify with class (parent) fingerprint"
LisoUseInAIKyrios Jan 5, 2025
d270192
refactor: Rename FieldCallFilter -> FieldAccessFilter
LisoUseInAIKyrios Jan 6, 2025
e0d97f4
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 6, 2025
8114617
refactor: Use DSL style constructor functions
LisoUseInAIKyrios Jan 7, 2025
dfd6149
refactor: Use String literal instruction filter
LisoUseInAIKyrios Jan 7, 2025
d2900b7
refactor
LisoUseInAIKyrios Jan 8, 2025
41f753e
simplify
LisoUseInAIKyrios Jan 9, 2025
0277624
vastly simplify
LisoUseInAIKyrios Jan 10, 2025
676991a
refactor: Match class types using endsWith
LisoUseInAIKyrios Jan 10, 2025
d293cdd
unofficial 20.02
LisoUseInAIKyrios Jan 10, 2025
1802d00
refactor
LisoUseInAIKyrios Jan 12, 2025
ce7613f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 15, 2025
8a9c5ab
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 18, 2025
c57ad58
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 20, 2025
5322672
fix merge
LisoUseInAIKyrios Jan 20, 2025
9d3ba64
refactor
LisoUseInAIKyrios Jan 20, 2025
d20905e
unofficial 20.03 support
LisoUseInAIKyrios Jan 20, 2025
62be6fb
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 20, 2025
7ddd83b
fix Open Shorts fullscreen patch with 19.50+
LisoUseInAIKyrios Jan 21, 2025
573c628
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 21, 2025
598baa4
refactor, fix 19.25
LisoUseInAIKyrios Jan 21, 2025
e802bc3
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 22, 2025
76b5f23
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 22, 2025
f05794a
simplify
LisoUseInAIKyrios Jan 22, 2025
0f7fc1f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 23, 2025
605044e
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 23, 2025
d68b096
refactor
LisoUseInAIKyrios Jan 23, 2025
4658742
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 25, 2025
24daaac
refactor: Simplify
LisoUseInAIKyrios Jan 25, 2025
9ca9479
refactor: Simplify
LisoUseInAIKyrios Jan 25, 2025
d55cb5d
Add debugging code
LisoUseInAIKyrios Jan 27, 2025
e4c298e
Revert "Add debugging code"
LisoUseInAIKyrios Jan 27, 2025
6acbf34
refactor: Remove ClassProxy wrapper that's no longer needed
LisoUseInAIKyrios Jan 28, 2025
d151839
refactor
LisoUseInAIKyrios Jan 28, 2025
d9679c0
refactor
LisoUseInAIKyrios Jan 28, 2025
6ff3359
fix a/b seekbar color
LisoUseInAIKyrios Jan 29, 2025
a3339b4
add Miniplayer Modern 4, fix visual glitch if horizontal drag is enabled
LisoUseInAIKyrios Jan 29, 2025
af2e935
Add comments for literal filters
LisoUseInAIKyrios Jan 29, 2025
3ba91aa
fix Modern 4 hide overlay buttons
LisoUseInAIKyrios Jan 29, 2025
66dce1f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 30, 2025
fe3d0c0
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 30, 2025
9cbc3ba
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 30, 2025
68b6d63
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 30, 2025
bdf60f8
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 30, 2025
737e291
fix Twitch
LisoUseInAIKyrios Jan 30, 2025
f02489d
refactor
LisoUseInAIKyrios Jan 30, 2025
f0e179e
Unofficial support for 20.05 beta
LisoUseInAIKyrios Jan 30, 2025
fd571c3
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 31, 2025
47b60c8
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 31, 2025
c68f11d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 2, 2025
aceb3a6
Simplify with instruction filters
LisoUseInAIKyrios Feb 2, 2025
3d667d8
Remove `lastInstruction()` filter
LisoUseInAIKyrios Feb 2, 2025
08a5854
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 5, 2025
7b51a99
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 5, 2025
2d14bb0
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 6, 2025
3b7b30c
refactor
LisoUseInAIKyrios Feb 6, 2025
0f693ef
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 7, 2025
02e66a4
Remove unneeded annotations
LisoUseInAIKyrios Feb 8, 2025
55e3070
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 8, 2025
91d19ad
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 10, 2025
a0135eb
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 11, 2025
f23834a
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 11, 2025
9881f71
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 13, 2025
e5bf3d0
fix floating point literals
LisoUseInAIKyrios Feb 13, 2025
042f16f
Unofficial 20.07 support
LisoUseInAIKyrios Feb 13, 2025
093b3b7
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 13, 2025
2616ce2
refactor
LisoUseInAIKyrios Feb 13, 2025
bc40cc4
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 18, 2025
6feba55
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 18, 2025
b31b0eb
refactor: Use map instead of list to lookup resource ids
LisoUseInAIKyrios Feb 18, 2025
8421499
refactor: Use map resource lookup
LisoUseInAIKyrios Feb 18, 2025
58ab98f
fix: Remove deprecated and non functional legacy code
LisoUseInAIKyrios Feb 18, 2025
f82c817
refactor: Add method to check if a resource exists
LisoUseInAIKyrios Feb 18, 2025
fed59e1
refactor: Remove multi-threaded resource reading as it's faster witho…
LisoUseInAIKyrios Feb 19, 2025
3b64bf2
fix: Remove debugging code
LisoUseInAIKyrios Feb 19, 2025
2d18567
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 19, 2025
0033e8d
refactor: Simplify
LisoUseInAIKyrios Feb 20, 2025
010f876
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 20, 2025
8e160f1
refactor: Simplify
LisoUseInAIKyrios Feb 21, 2025
a1a5867
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 22, 2025
2038f97
Simplify with instruction filters
LisoUseInAIKyrios Feb 22, 2025
c04b620
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 22, 2025
ced3706
refactor
LisoUseInAIKyrios Feb 22, 2025
191a937
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 22, 2025
4767127
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 25, 2025
4c79270
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 27, 2025
8e47c2f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 27, 2025
ff020a0
Finish merge
LisoUseInAIKyrios Feb 27, 2025
c5b5695
Fix 20.07 dislikes span spacing
LisoUseInAIKyrios Feb 27, 2025
0ef9765
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 27, 2025
845e034
Unofficial 20.09 support
LisoUseInAIKyrios Mar 1, 2025
080e500
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 1, 2025
eea8e5d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 2, 2025
11ef434
Finish merge
LisoUseInAIKyrios Mar 2, 2025
617487c
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 3, 2025
0237bf9
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 6, 2025
b3ef55d
refactor
LisoUseInAIKyrios Mar 6, 2025
50b5b66
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 6, 2025
205bd8b
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 6, 2025
6051abb
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 6, 2025
91e7e5f
Partial unofficial support for 20.10 support. High quality seekbar t…
LisoUseInAIKyrios Mar 6, 2025
29efd8f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 9, 2025
85bb1a9
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 9, 2025
b013694
refactor(Spotify): Use instruction filters
LisoUseInAIKyrios Mar 9, 2025
b9349ad
fix: Turn off 20.03 / 20.10+ playback feature flags that breaks strea…
LisoUseInAIKyrios Mar 9, 2025
f8d0131
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 19, 2025
44198a1
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 19, 2025
92cd7c8
fix: add version checks warnings for 20.09+
LisoUseInAIKyrios Mar 19, 2025
7094941
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 20, 2025
5025591
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 21, 2025
03e9c88
feat: Unofficial support for 20.12, remove reflections usage in Spons…
LisoUseInAIKyrios Mar 21, 2025
208816a
fix: Restore autoplay behavior with 20.09+
LisoUseInAIKyrios Mar 22, 2025
3bbef34
refactor
LisoUseInAIKyrios Mar 22, 2025
5b5a669
refactor
LisoUseInAIKyrios Mar 22, 2025
c9056da
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 26, 2025
8328cc2
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 28, 2025
96022e0
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 28, 2025
2ebe42d
fix: update compatibility
LisoUseInAIKyrios Mar 28, 2025
d7f0b8d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 28, 2025
ae9b0ca
refactor: Add helper method to find a free register for a specific in…
LisoUseInAIKyrios Mar 28, 2025
e89ee5e
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 29, 2025
cc6415f
refactor
LisoUseInAIKyrios Mar 29, 2025
4b7bc70
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 30, 2025
7543b0f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 1, 2025
537b89b
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 1, 2025
1f6d16b
fix: Remove deprecated binary compatibility classes
LisoUseInAIKyrios Apr 1, 2025
ab4b73b
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 2, 2025
787e73b
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 4, 2025
edba384
refactor: Simplify with instruction filters
LisoUseInAIKyrios Apr 4, 2025
99f419d
feat: Unofficial 20.24 support
LisoUseInAIKyrios Apr 4, 2025
43924a5
fix dislike spacing fixed with 20.14
LisoUseInAIKyrios Apr 7, 2025
b9b0c4d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 7, 2025
aae0d16
fix: Update RYD separator spacing of 20.12+ font.
LisoUseInAIKyrios Apr 8, 2025
b3e7bf3
refactor
LisoUseInAIKyrios Apr 8, 2025
ad98bc6
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 10, 2025
fb34f4f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 11, 2025
fafca3a
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 11, 2025
b7a4455
fix: Remove obsolete code
LisoUseInAIKyrios Apr 11, 2025
73fd235
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 12, 2025
6d29254
feat: Unofficial 20.15 support
LisoUseInAIKyrios Apr 12, 2025
896ed1c
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 13, 2025
a6d92b8
fix merge
LisoUseInAIKyrios Apr 13, 2025
d4bbef4
fix merge
LisoUseInAIKyrios Apr 13, 2025
02a6d4f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 13, 2025
e937737
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 13, 2025
3aa348d
finish merge
LisoUseInAIKyrios Apr 13, 2025
03f43a2
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 15, 2025
48d5949
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 16, 2025
c87dc6d
Finish merge
LisoUseInAIKyrios Apr 16, 2025
b0ceab0
Fix merge
LisoUseInAIKyrios Apr 16, 2025
04b708c
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 17, 2025
87fd88f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 19, 2025
4526986
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 20, 2025
9a84789
feat: Unofficial 20.16
LisoUseInAIKyrios Apr 20, 2025
33323dd
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 20, 2025
12187bc
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 24, 2025
ccb5eac
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 26, 2025
2d34b2f
refactor
LisoUseInAIKyrios Apr 26, 2025
4b1c113
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 27, 2025
3b36deb
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 29, 2025
8d2f3ab
refactor
LisoUseInAIKyrios Apr 29, 2025
f9fd9d6
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 30, 2025
dd12fd9
feat: Unofficial 20.18
LisoUseInAIKyrios May 2, 2025
79fc5e6
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 5, 2025
d41c7dc
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 10, 2025
9a3ffbf
fix merge
LisoUseInAIKyrios May 10, 2025
8a3160b
20.19 work in progress (Doesn't work yet, lots of changes to fix)
LisoUseInAIKyrios May 10, 2025
32f8997
fix build
LisoUseInAIKyrios May 10, 2025
7c9eb84
unofficial 20.19
LisoUseInAIKyrios May 10, 2025
2fa35c7
perf: Skip re-writing public.xml file after reading
LisoUseInAIKyrios May 10, 2025
a7c813c
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 13, 2025
e687849
cleanup
LisoUseInAIKyrios May 13, 2025
158957a
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 17, 2025
8e6a2e1
finish merge
LisoUseInAIKyrios May 17, 2025
8d804bf
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 17, 2025
03068a7
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 22, 2025
93bfcf8
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 22, 2025
46dfe09
finish merge
LisoUseInAIKyrios May 22, 2025
b05683b
fix build
LisoUseInAIKyrios May 22, 2025
94734d5
Merge branch 'upstream-dev' into feat/patcher_instruction_filters
LisoUseInAIKyrios May 22, 2025
fa2df48
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 22, 2025
0c3f290
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 23, 2025
01506e4
refactor
LisoUseInAIKyrios May 25, 2025
fcff925
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 25, 2025
46f82ce
finish merge
LisoUseInAIKyrios May 25, 2025
886dca8
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 26, 2025
8a5be4f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 26, 2025
c0451d6
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 27, 2025
9a071a8
20.21 work in progress: App patches and works, but nav buttons patch …
LisoUseInAIKyrios May 27, 2025
1d80531
Unofficial 20.21 support
LisoUseInAIKyrios May 27, 2025
7d7416d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 28, 2025
edcc153
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 30, 2025
72611bd
20.22 work in progress (litho buffer filtering is broken)
LisoUseInAIKyrios May 30, 2025
4d0ffae
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 1, 2025
1d01ba7
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 2, 2025
a790aa0
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 3, 2025
2e7d0a7
finish merge
LisoUseInAIKyrios Jun 3, 2025
aceff7d
Remove instruction filter context receivers
LisoUseInAIKyrios Jun 3, 2025
1b9f7a1
fix: Turn off experimental non-litho Shorts player that breaks hide f…
LisoUseInAIKyrios Jun 4, 2025
3f0f177
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 4, 2025
39a0ffe
Comments
LisoUseInAIKyrios Jun 4, 2025
f5ad2d8
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 5, 2025
331b22e
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 5, 2025
3ee82ee
Fix litho buffer filter work in progress
LisoUseInAIKyrios Jun 5, 2025
58eb2e7
Revert "Fix litho buffer filter work in progress"
LisoUseInAIKyrios Jun 5, 2025
361690f
feat: Add "Navigation bar animations" setting
LisoUseInAIKyrios Jun 5, 2025
37269c2
fix merged code
LisoUseInAIKyrios Jun 5, 2025
e959a50
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 6, 2025
1dd11ea
finish merge
LisoUseInAIKyrios Jun 6, 2025
257f403
refactor
LisoUseInAIKyrios Jun 6, 2025
585c0ee
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 6, 2025
dee1218
Work in progress fix for 20.22. Still doesn't work right, and action…
LisoUseInAIKyrios Jun 6, 2025
a29c4e4
refactor
LisoUseInAIKyrios Jun 6, 2025
c841662
Refactor litho filtering to a different method that doesn't need a th…
LisoUseInAIKyrios Jun 7, 2025
3df963f
fix min version for override tap and hold speed
LisoUseInAIKyrios Jun 7, 2025
8b5c42a
refactor
LisoUseInAIKyrios Jun 7, 2025
6798142
Comments
LisoUseInAIKyrios Jun 7, 2025
fcc3fb9
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 7, 2025
8e45222
refactor
LisoUseInAIKyrios Jun 7, 2025
b6eb1ce
Add litho component type to filtering. Doesn't seem as useful as firs…
LisoUseInAIKyrios Jun 8, 2025
0fb8689
Revert "Add litho component type to filtering. Doesn't seem as useful…
LisoUseInAIKyrios Jun 8, 2025
f445a44
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 8, 2025
97e6e1d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 13, 2025
fb41be9
finish merge
LisoUseInAIKyrios Jun 13, 2025
612a714
finish merge
LisoUseInAIKyrios Jun 13, 2025
8f08897
Remove deprecated unused patch code
LisoUseInAIKyrios Jun 13, 2025
a08fcc6
fix merge
LisoUseInAIKyrios Jun 13, 2025
a34ccf1
refactor
LisoUseInAIKyrios Jun 13, 2025
7df8e8d
refactor
LisoUseInAIKyrios Jun 19, 2025
9cdd53d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public final class DownloadsPatch {
/**
* Injection point.
*/
public static void activityCreated(Activity mainActivity) {
public static void setMainActivity(Activity mainActivity) {
activityRef = new WeakReference<>(mainActivity);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,13 @@ public static void hideNavigationButtonLabels(TextView navigationLabelsView) {
hideViewUnderCondition(Settings.HIDE_NAVIGATION_BUTTON_LABELS, navigationLabelsView);
}

/**
* Injection point.
*/
public static boolean useAnimatedNavigationButtons(boolean original) {
return Settings.NAVIGATION_BAR_ANIMATIONS.get();
}

/**
* Injection point.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,6 @@ public enum ShortsPlayerType {
REGULAR_PLAYER_FULLSCREEN
}

static {
if (!VersionCheckPatch.IS_19_46_OR_GREATER
&& Settings.SHORTS_PLAYER_TYPE.get() == ShortsPlayerType.REGULAR_PLAYER_FULLSCREEN) {
// User imported newer settings to an older app target.
Logger.printInfo(() -> "Resetting " + Settings.SHORTS_PLAYER_TYPE);
Settings.SHORTS_PLAYER_TYPE.resetToDefault();
}
}

private static WeakReference<Activity> mainActivityRef = new WeakReference<>(null);

private static volatile boolean overrideBackPressToExit;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,20 @@ private static boolean isFullScreenPatchIncluded() {

/**
* Injection point.
*
* Returns negated value.
*/
public static boolean openVideoFullscreenPortrait(boolean original) {
public static boolean doNotOpenVideoFullscreenPortrait(boolean original) {
Boolean openFullscreen = openNextVideoFullscreen;
if (openFullscreen != null) {
openNextVideoFullscreen = null;
return openFullscreen;
return !openFullscreen;
}

if (!isFullScreenPatchIncluded()) {
return original;
}

return Settings.OPEN_VIDEOS_FULLSCREEN_PORTRAIT.get();
return !Settings.OPEN_VIDEOS_FULLSCREEN_PORTRAIT.get();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public void onGlobalLayout() {

Logger.printDebug(() -> "fullscreen button visibility: "
+ (visibility == View.VISIBLE ? "VISIBLE" :
visibility == View.GONE ? "GONE" : "INVISIBLE"));
visibility == View.GONE ? "GONE" : "INVISIBLE"));

fullscreenButtonVisibilityChanged(visibility == View.VISIBLE);
}
Expand All @@ -57,11 +57,4 @@ public void onGlobalLayout() {
private static void fullscreenButtonVisibilityChanged(boolean isVisible) {
// Code added during patching.
}

/**
* Injection point.
*/
public static String getPlayerTopControlsLayoutResourceName(String original) {
return "default";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

import android.app.Activity;

import androidx.annotation.Nullable;

import java.lang.ref.WeakReference;
import java.util.Objects;

Expand Down Expand Up @@ -78,7 +76,7 @@ public static void setYTShortsRepeatEnum(Enum<?> ytEnum) {
/**
* Injection point.
*/
public static Enum<?> changeShortsRepeatBehavior(@Nullable Enum<?> original) {
public static Enum<?> changeShortsRepeatBehavior(Enum<?> original) {
try {
final boolean autoplay;

Expand All @@ -95,19 +93,19 @@ public static Enum<?> changeShortsRepeatBehavior(@Nullable Enum<?> original) {
autoplay = Settings.SHORTS_AUTOPLAY.get();
}

final ShortsLoopBehavior behavior = autoplay
Enum<?> overrideBehavior = (autoplay
? ShortsLoopBehavior.SINGLE_PLAY
: ShortsLoopBehavior.REPEAT;
: ShortsLoopBehavior.REPEAT).ytEnumValue;

if (behavior.ytEnumValue != null) {
if (overrideBehavior != null) {
Logger.printDebug(() -> {
String name = (original == null ? "unknown (null)" : original.name());
return behavior == original
return overrideBehavior == original
? "Behavior setting is same as original. Using original: " + name
: "Changing Shorts repeat behavior from: " + name + " to: " + behavior.name();
: "Changing Shorts repeat behavior from: " + name + " to: " + overrideBehavior.name();
});

return behavior.ytEnumValue;
return overrideBehavior;
}

if (original == null) {
Expand All @@ -118,13 +116,12 @@ public static Enum<?> changeShortsRepeatBehavior(@Nullable Enum<?> original) {
return unknown;
}
} catch (Exception ex) {
Logger.printException(() -> "changeShortsRepeatBehavior failure", ex);
Logger.printException(() -> "changeShortsRepeatState failure", ex);
}

return original;
}


/**
* Injection point.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@ private static boolean isVersionOrGreater(String version) {
public static final boolean IS_19_29_OR_GREATER = isVersionOrGreater("19.29.00");
@Deprecated
public static final boolean IS_19_34_OR_GREATER = isVersionOrGreater("19.34.00");
public static final boolean IS_19_46_OR_GREATER = isVersionOrGreater("19.46.00");
public static final boolean IS_20_07_OR_GREATER = isVersionOrGreater("20.07.00");
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public String toString() {
/**
* Search through a byte array for all ASCII strings.
*/
private static void findAsciiStrings(StringBuilder builder, byte[] buffer) {
static void findAsciiStrings(StringBuilder builder, byte[] buffer) {
// Valid ASCII values (ignore control characters).
final int minimumAscii = 32; // 32 = space character
final int maximumAscii = 126; // 127 = delete character
Expand All @@ -74,8 +74,13 @@ private static void findAsciiStrings(StringBuilder builder, byte[] buffer) {
}
}

/**
* Placeholder for actual filters.
*/
private static final class DummyFilter extends Filter { }

private static final Filter[] filters = new Filter[] {
new DummyFilter() // Replaced by patch.
new DummyFilter() // Replaced patching, do not touch.
};

private static final StringTrieSearch pathSearchTree = new StringTrieSearch();
Expand All @@ -87,11 +92,7 @@ private static void findAsciiStrings(StringBuilder builder, byte[] buffer) {
* Because litho filtering is multi-threaded and the buffer is passed in from a different injection point,
* the buffer is saved to a ThreadLocal so each calling thread does not interfere with other threads.
*/
private static final ThreadLocal<ByteBuffer> bufferThreadLocal = new ThreadLocal<>();
/**
* Results of calling {@link #filter(String, StringBuilder)}.
*/
private static final ThreadLocal<Boolean> filterResult = new ThreadLocal<>();
private static final ThreadLocal<byte[]> bufferThreadLocal = new ThreadLocal<>();

static {
for (Filter filter : filters) {
Expand Down Expand Up @@ -146,58 +147,52 @@ private static void filterUsingCallbacks(StringTrieSearch pathSearchTree,

/**
* Injection point. Called off the main thread.
* Targets 20.22+
*/
@SuppressWarnings("unused")
public static void setProtoBuffer(@Nullable ByteBuffer protobufBuffer) {
public static void setProtoBuffer(byte[] buffer) {
// Set the buffer to a thread local. The buffer will remain in memory, even after the call to #filter completes.
// This is intentional, as it appears the buffer can be set once and then filtered multiple times.
// The buffer will be cleared from memory after a new buffer is set by the same thread,
// or when the calling thread eventually dies.
if (protobufBuffer == null) {
bufferThreadLocal.set(buffer);
}

/**
* Injection point. Called off the main thread.
* Targets 20.21 and lower.
*/
public static void setProtoBuffer(@Nullable ByteBuffer buffer) {
// Set the buffer to a thread local. The buffer will remain in memory, even after the call to #filter completes.
// This is intentional, as it appears the buffer can be set once and then filtered multiple times.
// The buffer will be cleared from memory after a new buffer is set by the same thread,
// or when the calling thread eventually dies.
if (buffer == null || !buffer.hasArray()) {
// It appears the buffer can be cleared out just before the call to #filter()
// Ignore this null value and retain the last buffer that was set.
Logger.printDebug(() -> "Ignoring null protobuffer");
Logger.printDebug(() -> "Ignoring null or empty buffer: " + buffer);
} else {
bufferThreadLocal.set(protobufBuffer);
setProtoBuffer(buffer.array());
}
}

/**
* Injection point.
*/
public static boolean shouldFilter() {
Boolean shouldFilter = filterResult.get();
return shouldFilter != null && shouldFilter;
}

/**
* Injection point. Called off the main thread, and commonly called by multiple threads at the same time.
*/
public static void filter(@Nullable String lithoIdentifier, StringBuilder pathBuilder) {
filterResult.set(handleFiltering(lithoIdentifier, pathBuilder));
}

private static boolean handleFiltering(@Nullable String lithoIdentifier, StringBuilder pathBuilder) {
public static boolean shouldFilter(@Nullable String lithoIdentifier, StringBuilder pathBuilder) {
try {
if (pathBuilder.length() == 0) {
return false;
}

ByteBuffer protobufBuffer = bufferThreadLocal.get();
final byte[] bufferArray;
byte[] buffer = bufferThreadLocal.get();
// Potentially the buffer may have been null or never set up until now.
// Use an empty buffer so the litho id/path filters still work correctly.
if (protobufBuffer == null) {
bufferArray = EMPTY_BYTE_ARRAY;
} else if (!protobufBuffer.hasArray()) {
Logger.printDebug(() -> "Proto buffer does not have an array, using an empty buffer array");
bufferArray = EMPTY_BYTE_ARRAY;
} else {
bufferArray = protobufBuffer.array();
if (buffer == null) {
buffer = EMPTY_BYTE_ARRAY;
}

LithoFilterParameters parameter = new LithoFilterParameters(lithoIdentifier,
pathBuilder.toString(), bufferArray);
LithoFilterParameters parameter = new LithoFilterParameters(
lithoIdentifier, pathBuilder.toString(), buffer);
Logger.printDebug(() -> "Searching " + parameter);

if (parameter.identifier != null && identifierSearchTree.matches(parameter.identifier, parameter)) {
Expand All @@ -214,8 +209,3 @@ private static boolean handleFiltering(@Nullable String lithoIdentifier, StringB
return false;
}
}

/**
* Placeholder for actual filters.
*/
final class DummyFilter extends Filter { }
Original file line number Diff line number Diff line change
Expand Up @@ -382,17 +382,6 @@ private static boolean shouldHideShortsFeedItems() {
};
}

/**
* Injection point. Only used if patching older than 19.03.
* This hook may be obsolete even for old versions
* as they now use a litho layout like newer versions.
*/
public static void hideShortsShelf(final View shortsShelfView) {
if (shouldHideShortsFeedItems()) {
Utils.hideViewByLayoutParams(shortsShelfView);
}
}

public static int getSoundButtonSize(int original) {
if (Settings.HIDE_SHORTS_SOUND_BUTTON.get()) {
return 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,8 @@ private static SpannableString createDislikeSpan(@NonNull Spanned oldSpannable,
// middle separator
String middleSeparatorString = compactLayout
? " " + MIDDLE_SEPARATOR_CHARACTER + " "
: " \u2009" + MIDDLE_SEPARATOR_CHARACTER + "\u2009 "; // u2009 = 'narrow space' character
: " \u2009\u2009" + MIDDLE_SEPARATOR_CHARACTER + "\u2009\u2009 "; // u2009 = 'narrow space'

final int shapeInsertionIndex = middleSeparatorString.length() / 2;
Spannable middleSeparatorSpan = new SpannableString(middleSeparatorString);
ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import static app.revanced.extension.youtube.patches.ChangeStartPagePatch.StartPage;
import static app.revanced.extension.youtube.patches.ExitFullscreenPatch.FullscreenMode;
import static app.revanced.extension.youtube.patches.ForceOriginalAudioPatch.ForceOriginalAudioAvailability;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerHideOverlayButtonsAvailability;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerHorizontalDragAvailability;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerType;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerType.MINIMAL;
Expand Down Expand Up @@ -43,7 +44,6 @@
import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.StillImagesAvailability;
import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.ThumbnailOption;
import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.ThumbnailStillTime;
import app.revanced.extension.youtube.patches.MiniplayerPatch;
import app.revanced.extension.youtube.sponsorblock.SponsorBlockSettings;
import app.revanced.extension.youtube.swipecontrols.SwipeControlsConfigurationProvider.SwipeOverlayStyle;

Expand Down Expand Up @@ -164,8 +164,8 @@ public class Settings extends BaseSettings {
public static final BooleanSetting MINIPLAYER_DOUBLE_TAP_ACTION = new BooleanSetting("revanced_miniplayer_double_tap_action", TRUE, true, MINIPLAYER_ANY_MODERN);
public static final BooleanSetting MINIPLAYER_DRAG_AND_DROP = new BooleanSetting("revanced_miniplayer_drag_and_drop", TRUE, true, MINIPLAYER_ANY_MODERN);
public static final BooleanSetting MINIPLAYER_HORIZONTAL_DRAG = new BooleanSetting("revanced_miniplayer_horizontal_drag", FALSE, true, new MiniplayerHorizontalDragAvailability());
public static final BooleanSetting MINIPLAYER_HIDE_OVERLAY_BUTTONS = new BooleanSetting("revanced_miniplayer_hide_overlay_buttons", FALSE, true, new MiniplayerPatch.MiniplayerHideOverlayButtonsAvailability());
public static final BooleanSetting MINIPLAYER_HIDE_SUBTEXT = new BooleanSetting("revanced_miniplayer_hide_subtext", FALSE, true, MINIPLAYER_TYPE.availability(MODERN_1, MODERN_3));
public static final BooleanSetting MINIPLAYER_HIDE_OVERLAY_BUTTONS = new BooleanSetting("revanced_miniplayer_hide_overlay_buttons", FALSE, true, new MiniplayerHideOverlayButtonsAvailability());
public static final BooleanSetting MINIPLAYER_HIDE_SUBTEXT = new BooleanSetting("revanced_miniplayer_hide_subtext", FALSE, true, MINIPLAYER_TYPE.availability(MODERN_1, MODERN_3, MODERN_4));
public static final BooleanSetting MINIPLAYER_HIDE_REWIND_FORWARD = new BooleanSetting("revanced_miniplayer_hide_rewind_forward", TRUE, true, MINIPLAYER_TYPE.availability(MODERN_1));
public static final BooleanSetting MINIPLAYER_ROUNDED_CORNERS = new BooleanSetting("revanced_miniplayer_rounded_corners", TRUE, true, MINIPLAYER_ANY_MODERN);
public static final IntegerSetting MINIPLAYER_WIDTH_DIP = new IntegerSetting("revanced_miniplayer_width_dip", 192, true, MINIPLAYER_ANY_MODERN);
Expand Down Expand Up @@ -249,6 +249,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_NOTIFICATIONS_BUTTON = new BooleanSetting("revanced_hide_notifications_button", FALSE, true);
public static final BooleanSetting SWITCH_CREATE_WITH_NOTIFICATIONS_BUTTON = new BooleanSetting("revanced_switch_create_with_notifications_button", TRUE, true,
"revanced_switch_create_with_notifications_button_user_dialog_message");
public static final BooleanSetting NAVIGATION_BAR_ANIMATIONS = new BooleanSetting("revanced_navigation_bar_animations", FALSE);
public static final BooleanSetting DISABLE_TRANSLUCENT_STATUS_BAR = new BooleanSetting("revanced_disable_translucent_status_bar", FALSE, true,
"revanced_disable_translucent_status_bar_user_dialog_message");
public static final BooleanSetting DISABLE_TRANSLUCENT_NAVIGATION_BAR_LIGHT = new BooleanSetting("revanced_disable_translucent_navigation_bar_light", FALSE, true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package app.revanced.extension.youtube.shared

import app.revanced.extension.shared.Logger
import app.revanced.extension.youtube.Event
import app.revanced.extension.youtube.patches.VideoInformation

/**
* Regular player type.
Expand Down
Loading
Loading