revanced-patches icon indicating copy to clipboard operation
revanced-patches copied to clipboard

feat: Update to patcher v22

Open LisoUseInAIKyrios opened this issue 2 months ago • 190 comments

Initial usage of Patcher v22 method instruction filters.

https://github.com/ReVanced/revanced-patcher/pull/329

LisoUseInAIKyrios avatar Sep 25 '25 18:09 LisoUseInAIKyrios

@MarcaDian @LisoUseInAIKyrios

20.39 -> New end video suggestions (litho based)

Screenshot_20250926_221209

0xrxL avatar Sep 26 '25 20:09 0xrxL

@0xrxL I don't think so it is from 20.39+. I had used 20.38 and I got that new end screen. This could be started from 20.21 because litho filtering is currently does not work.

cyberboh avatar Sep 27 '25 00:09 cyberboh

@0xrxL I don't think so it is from 20.39+. I had used 20.38 and I got that new end screen. This could be started from 20.21 because litho filtering is currently does not work.

I got it in 20.39, but I don't know starting which version was implemented.

0xrxL avatar Sep 27 '25 04:09 0xrxL

Yes, this screen is present on 20.21.

MarcaDian avatar Sep 27 '25 06:09 MarcaDian

@LisoUseInAIKyrios if you want to hide the new endscreen, just put a return-void at the beginning of method b() in version 20.14.43.

Screenshot_20250927_220645

0xrxL avatar Sep 27 '25 20:09 0xrxL

@MarcaDian Do you have the link to Google Feedback website, about the litho battery drain issue? I want to track its development, to understand if they will fix it sooner or later (and to understand if I can disable the workaround).

0xrxL avatar Sep 27 '25 22:09 0xrxL

The only feedback I know of is Google ignoring user reports and telling them copy pasted generic troubleshooting like clearing app data. Otherwise they haven't said anything.

https://github.com/ReVanced/revanced-patches/issues/5223#issuecomment-3007631098

LisoUseInAIKyrios avatar Sep 27 '25 22:09 LisoUseInAIKyrios

Do you have the link to Google Feedback website, about the litho battery drain issue?

I don't know about the feedback, but about 10 people wrote to me with this problem (Samsung SG 22-25), and it seems like it was fixed by changing the number of Litho threads.

MarcaDian avatar Sep 28 '25 13:09 MarcaDian

yt_fill_bell_black_24 (1)

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24"
        android:viewportHeight="24">
    <path
            android:fillColor="?android:attr/textColorPrimary"
            android:pathData="M12,2 C10.9805,2,10.1133,2.59766,10.0117,4.41406 C8.23438,4.85156,7.36328,5.87109,6.84766,6.80078 C6.16797,8.02734,6.12109,8.55859,6.03906,11.9102 L5.95313,15.4414 L4.97656,16.3984 C4.23047,17.125,4,17.5469,4,18.1758 L4,19 L20,19 L20,18.1758 C20,17.5469,19.7695,17.125,19.0234,16.3984 L18.0469,15.4414 L17.9609,11.9102 C17.8789,8.55859,17.832,8.02734,17.1523,6.80078 C16.6367,5.87109,15.7656,4.86328,13.9883,4.42578 C13.8867,2.60156,13.0195,2,12,2 Z M10,20 C10,21.0078,10.7461,22,12,22 C13.2539,22,14,21.0078,14,20 Z M10,20" />
</vector>

MarcaDian avatar Oct 01 '25 13:10 MarcaDian

Another variant (cairo?)

yt_outline_bell_cairo_black_24 (1)

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24"
        android:viewportHeight="24">
    <path
            android:fillColor="?android:attr/textColorPrimary"
            android:pathData="M12,2 C10.2422,1.96094,9.25,3.66016,9.09766,4.90234 C6.95703,6.16016,6.00781,7.20313,6,11.5 C5.99609,14.375,5.92969,14.2383,4.89844,16 C4.60156,16.5117,4.03906,17.2617,3.89844,17.8828 C3.76172,18.5039,4.34766,19,5,19 L9,19 C9,20.0078,9.80859,22,12,22 C14.1914,22,15,20.0078,15,19 L19,19 C19.6523,19,20.2383,18.5039,20.0977,17.8828 C19.9609,17.2617,19.3984,16.5117,19.0977,16 C18.0703,14.2383,18.0039,14.375,18,11.5 C17.9922,7.20313,17.043,6.16016,14.8984,4.90234 C14.75,3.66016,13.7578,1.96094,12,2 Z M12,2" />
</vector>

MarcaDian avatar Oct 01 '25 14:10 MarcaDian

I still don't understand what this icon is, since I'm not using version 20.39 yet) it would be great if you added a screenshot

MarcaDian avatar Oct 01 '25 14:10 MarcaDian

It's the selected notification tab icon. Change ReVanced nav bar settings so the notification tab is visible. This icon is the selected state (unpatched YT is missing this icon. Issue affects all versions of YT)

Previously the missing icon was solved by using the non Cairo notification icon (if you look carefully at the selected vs unselected state, the icon is slightly different shape but you don't notice because your finger covers the icon when it changes). But in 20.39 YT removed the old icons so we need to provide our own.

LisoUseInAIKyrios avatar Oct 01 '25 14:10 LisoUseInAIKyrios

I think the first icon you posted looks good. It also closely matches the "no notifications" background image in the notification tab.

LisoUseInAIKyrios avatar Oct 01 '25 14:10 LisoUseInAIKyrios

Now I understand what this icon is, I always switch the creation button with the notification button, so I didn't understand what you were talking about)))

MarcaDian avatar Oct 01 '25 14:10 MarcaDian

Is it fixing an issue where some components are not hiding, where the lithofilter broke and you fixed it?

MarcaDian avatar Oct 03 '25 07:10 MarcaDian

All litho filtering is fixed, except filtering sub components such as the player action buttons is still not fixed.

For 20.22+ the hide player/shorts action button settings are removed because they don't work. It's possible other hide settings also don't work and nobody has noticed yet.

The issue is the subcomponents get the same buffer as the parent component, so it's not possible to tell which subcomponent (which button) is currently being filtered because the buffer contains all the action buttons.

I have a few ideas how to maybe fix it, but I haven't tried them and I'm not confident they will work.

LisoUseInAIKyrios avatar Oct 03 '25 07:10 LisoUseInAIKyrios

Finally you fixed litho filtering issue. At least half of issues for 20.22+ is solved. For wide searchbar issue, why don't you remove it instead if it's does not work on latest YouTube?

cyberboh avatar Oct 03 '25 14:10 cyberboh

Litho filtering was fixed like a month ago or more. The same limitations that existed then still exist now (cannot hide player/shorts action buttons).

Wide searchbar patch doesn't work with latest YouTube because the old legacy UI code was removed by YouTube.

It might be possible to add back a search bar but it looks like a lot of work for a small return. The feature isn't terrible useful anyway since it doesn't actually save any time and only makes a large area to tap for search instead of taping the small button.

LisoUseInAIKyrios avatar Oct 03 '25 14:10 LisoUseInAIKyrios

... but it looks like a lot of work for a small return. The feature isn't terrible useful anyway since it doesn't actually save any time ...

Better remove it instead of full pain in the a$$ 😆

cyberboh avatar Oct 03 '25 14:10 cyberboh

The same limitations that existed then still exist now (cannot hide player/shorts action buttons).

The solution exists, and it's modular, but unfortunately this is not appreciated by the leaders on the upper floors.

Screenshot_20251004_164023

0xrxL avatar Oct 04 '25 14:10 0xrxL

Please do not vague post like that from now on, I've caught you doing this a couple of times already

oSumAtrIX avatar Oct 04 '25 14:10 oSumAtrIX

Please do not vague post like that from now on, I've caught you doing this a couple of times already

I'm not vague. Mine is a clear but synthetic reference of the fact that you don't want this fix to be implemented, because you prefer a specific type of patch with precise characteristics. Therefore, you discarding any possible solution that does not belong to the aforementioned type.

And I accept that, but talking like a solution doesn't exist is lying.

0xrxL avatar Oct 04 '25 14:10 0xrxL

It is vague because you say "solution" and nothing more, therefore someone coming across your comment won't know what your "solution" is. This is not a single occure but the last one I'll tolerate. I'm open for constructive comments, but passive aggressive and vague ones like this won't be tolerated anymore

oSumAtrIX avatar Oct 04 '25 15:10 oSumAtrIX

It is vague because you say "solution" and nothing more, therefore someone coming across your comment won't know what your "solution" is. This is not a single occure but the last one I'll tolerate. I'm open for constructive comments, but passive aggressive and vague ones like this won't be tolerated anymore

The solution is the same already discussed in the old Patch v22 PR:

Obtain the list of action buttons via API and locate the litho object array for the buttons, then remove these objects from the array based on the index of the buttons obtained via API.

0xrxL avatar Oct 04 '25 15:10 0xrxL

With the comment above I am not asking for the solution, I am saying that I won't tolerate vague posts in general taking an example of your initial post.

I have already told you why the solution is bad and gave you a good reason why (API spam). However you leave out the reason in your vague post and frame it like it is being dismissed without good reason which is why I will not permit you vague posting anymore. If you have constructive comments, feel free to post them, however if I see another framing attempt (e.g. like here leaving out the good reason and displaying like there's no reason for dismisal, at all), I will take action.

Specifically to your solution, I explained that you spam the API multiple times, leading to future rate limits or even worse bans. I'm marking this topic as off topic

oSumAtrIX avatar Oct 04 '25 15:10 oSumAtrIX

I'm confident there is somehow a way to infer what player buttons are present without making fake calls to the YT api.

The same litho issue exists in the Shorts player, and also the ability to hide individual Shorts in a shelf with keyword filters (instead the entire shelf is hidden if any one of the Shorts matches a keyword).

LisoUseInAIKyrios avatar Oct 04 '25 15:10 LisoUseInAIKyrios

I'm confident there is somehow a way to infer what player buttons are present without making fake calls to the YT api.

The same litho issue exists in the Shorts player, and also the ability to hide individual Shorts in a shelf with keyword filters (instead the entire shelf is hidden if any one of the Shorts matches a keyword).

The API call is the same used to get the video stream, except that instead of fetching the video stream, you fetch the buttons or whatever else you need. Thinking that Google can ban this is equal to think that Google can ban whoever watch a video two times (because the first time was stucked on loading).

I would agree if the API differed between video stream fetching and buttons, but that's not the case.

0xrxL avatar Oct 04 '25 15:10 0xrxL

Just updated and patched with latest commits, cli stuck at compiling resources, it tooks much time compared previous version. Maybe additional resources affect it. Because recent changes revanced modified many resources aspect. Can it be speed up while compiling resources? I am aware if revanced modified resources very much in the future will slower the patching process.

cyberboh avatar Oct 08 '25 04:10 cyberboh

@cyberboh I'm not seeing any slow issues. I'm using 20.40 now and no issues when compiling or patching.

Try cleaning each project.

LisoUseInAIKyrios avatar Oct 08 '25 05:10 LisoUseInAIKyrios

@cyberboh I'm not seeing any slow issues. I'm using 20.40 now and no issues when compiling or patching.

Try cleaning each project.

I always do ./gradlew clean everytime I compiling. It compiled successfully. My issue is while patching YouTube app with ReVanced CLI, it tooks more time while compiling resources. Idk if this issue is from my environment. I am using old laptop running core i3 6th Generation, with 4 GiB RAM.

cyberboh avatar Oct 08 '25 06:10 cyberboh