-
-
Notifications
You must be signed in to change notification settings - Fork 322
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
fix(YouTube): Fix video playback by switching to ReVanced GmsCore vendor #2907
Conversation
Any Gms option migration must be done in patches, since there is no integrations settings for Gms. The simplest is to reject Vanced MicroG in the option validation of
But to most users this will show what looks like an error in the patching logs (even though everything is ok):
Alternatively it could validate outside the patch options instance, and use the new default if the old Vanced MicroG is set. |
Can't integrations show a dialog at start? The migration is only relevant for those that have actually touched the patch options or ReVanced CLI users in case they saved the option value to the json. Additionally, the Logger facade can be used, or traditionally, the patch option validator, but that comes with its own merrits |
Perhaps ReVanced Manager can check for option values that aren't present anymore, unless the user chose a custom value |
If the user does not have the updated Gms core installed (and it was patched using the updated Gms), then The only thing that can be shown is a toast, since it's queued up before the app exits. A toast is already shown but it is very brief and only says "Gms Core is not installed. Install it", without any explanation that their old Vanced MicroG is obsolete and needs updating. |
On first launch the app will start a query for the vendor that was used for MicroG. The user is asked to install it via a toast as well. Once that is done, the app will launch normally at which point the dialog can be shown. The user would be told that the vendor they are using can not be used anymore properly and asked to switch the vendor by using the default vendor (app.revanced) for example. |
Or maybe temporarily change the website that is opened during launch. Right now Integrations opens the website of Then a few months from now the url can be changed back to the github latest releast page. |
Maybe I am misunderstanding something, but Vanced used com.mgoogle and ReVanced uses app.revanced as the group id. Users that have previously used Vanced, but haven't changed the patch options, will automatically be asked to install GmsCore forked by us, whereas those who have set the patch option to Vanced explicitly, will be asked to install GmsCore by Vanced. In both cases, once done, the application starts normally |
If the user is allowed to patch with the obsolete option of using Vanced MicroG, then Integrations can show an update dialog explaining the user needs to install an updated Gms Core and they need to repatch again and pick ReVanced as the Gms provider. That would work, but why not forbid using Vanced MicroG during patching and save the user a lot of steps? Then they only need to install ReVanced Gms and they're done. |
Mainly because we have little options to do so before patching as you have explained. The user would see an error while patching and not know how to solve it, unlike with a dedicated popup at launch. Am I missing something? |
The patch options can be validated, and rejected if they are set to Vanced MicroG. Either silently reject (validate and override in the patch itself), or reject with more verbosity by validating in the patch options. If the patch options are still set to Vanced MicroG, I think for now the best solution is to quietly ignore the patch option and use ReVanced Gms during patching. Then the user gets the correct Gms set during patching, no confusing error messages, and no stupid posts of "I updated and playback is still broken". The integrations toast that normally says |
My problem with that is that we would forbid using Vanced MicroG whereas with the dialog on app launch the user is warned. Using the validator to check the input but returning true isn't necessary though as the option value can be checked in the execute method. But then either the patch is aborted with a message that they are forced to move away from Vanced MicroG, or the patch continues and the user ignores it or has to repatch leading to the same outcome as just displaying the dialog. Forbidding using Vanced MicroG or unexpectedly migrating off it is something that we should avoid |
I just checked, and a dialog cannot be shown during the GmsCore check in integrations because the context is not suitable for a dialog. (it is an Activity context, and not the context for an Android View). The use case for allowing Vanced MicroG as a patch option:
The use case for quietly migrating Vanced MicroG patch options to ReVanced GmsCore:
|
…fferent 'gms not installed' toast message
// Ignore old Vanced MicroG options, if the patch options are from an old Manager/CLI installation. | ||
// This could be done in the option validation, but that shows | ||
// a warning message the user might interpret as something went wrong. | ||
// So instead silently use the updated default value. | ||
// TODO: Remove this temporary logic (and also revert the `gms_core_not_running_warning` string change) | ||
if (gmsCoreVendorOption.value == OBSOLETE_VANCED_MICROG_PATCH_OPTION_VALUE) { | ||
gmsCoreVendorOption.value = gmsCoreVendorOption.default | ||
// If there was patch logging, it would be useful here. | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the simplest approach, to keep updating as simple and foolproof as possible.
Since there is no easy way to show a dialog in the Integrations Gms check, allowing Vanced MicroG makes it much more difficult informing the user what to do to fix their app.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding logging, you can use the regular logger facade by Java:
Logger.info()
To clarify why I prefer to not hardcore com.mgoogle and not allow patching with it is because every vendor should be treated equally. While we deem com.mgoogle as unreliable or useless, what speaks of anyone creating their own fork with that group id. Why would we restrict exactly that group id then? Note, that there are vendors of GmsCore apart from Vanced that used the same group id. While they are something that we do not take into consideration, I am trying to clarify the problem that I am seeing with preventing to use an arbitrary group id.
I just realized, the shortcut by migrating directly to ReVanced is to not require the user to repatch an additional time. Regardless, this still prevents the user from using Vanced MicroG or any other vendor even if by choice. (For example unaffected users, those who have issues with our fork or who need the Huawei sign in) |
Nearly all unaffected users will soon become affected users. As of right now, there is no other forks with the updated GmsCore fix. Could Manager do a one off migration, where on startup only once it clears the option values of |
I just realized, that since |
Unfortunately ReVanced Manager follows the strict policy of being agnostic to any patch. Every patch that ReVanced Manager sees is the super type "Patch". What can be done instead is solve an existing open issue. ReVanced Manager can save what kind of option was selected. A preset or a custom value. In either case, it can handle the scenario in which a preset is removed such as in the current scenario. If the user did not manually enter com.mgoogle and instead selected the preset, when the preset is deleted from the patch, ReVanced Manager can for example fall back to the default value (with a warning dialog for example). ReVanced Manager now also has introduced an update dialog when ever an update is available which makes more users aware of when an update exists. Additionally we are working on counting how many users are on older versions and how many on newer versions so we can properly migrate off deprecated APIs (if you noticed, ReVanced Patches uses the deprecated ones as to not break patches for users that haven't updated ReVanced Manager to be able to use the new APIs). Til now ReVanced Manager has not saved what kind of option value was selected (preset or custom value). In this case we need to default to either behavior. The correct one would be to treat them as custom values as to not surprise the user with fallbacking to a default value, but then this makes it useless for this current scenario, as this case would also be treated as a custom value whereas the fallback never happens. |
Adding to my previous comment, if ReVanced Manager would've implemented that feature, the migration code in the patch you pushed would not be needed anymore |
That doesn't mean we should invalidate anyone else creating an updated version of GmsCore with the group id com.mgoogle. Previous to the last commit, any vendor was treated equally. The design was intentional to be flexible and free, but with the latest commit com.mgoogle is now impossible to use. I understand the reason behind that, but perhaps there is a better solution (such as the proposal with ReVanced Manager falling back to default value). For now, we can keep this, as to not waste time, and if we find a better solution along the way, we can quickly implement that 👍 |
The problem with the migration idea is, even if it is temporary, once it is reverted or removed, the next time the user patches, they will be asked to install Vanced MicroG again. There is no way to persist the setting for those who have manually selected Vanced as the vendor (which is a little amount of people likely), unless the feature with falling back to default is added to ReVanced Manager (ideally for ReVanced CLi as well, thus subject to being implemented in ReVanced Library) for example. |
I think you are assuming that setting the value will also save it in ReVanced Manager. That is not the case, the option values are only set at the beginning but not read to be saved after patching, this can be a great addition to the API though. An onChanged handler parameter could be added to options so that ReVanced Patches can set the values and ReVanced Manager and co can handle that. Kotlin supports properly delegation which means the setter can be delegated, one that can be hooked by ReVanced Manager. Its slightly off topic for now though |
Then the migration logic could be kept until Manager better handles defaults options that change between patch releases. If there was logging available to patches it would be helpful to print out something informing an option migration is applied (and keep the language in a "everything is ok" tone). But as far as I know only system println can be used and I don't know if that works with Manager. I understand that changing the option value during patches does not change what is saved to disk. It would be useful if patches could alter the saved options, but the use case is pretty limited. |
@LisoUseInAIKyrios The regular Java logging facade can be used by patches. Everything else is automatically handled, I can push that in a minute |
@LisoUseInAIKyrios same issue, app crashes
|
Try clearing the app data? The logs should show something if the app crashes. |
I'm doing a clean install maybe
|
@MarcaDian Could be caused by this PR ReVanced/revanced-integrations#589 isn't merged yet |
Granting contacts permission to patched YouTube works. But it doesn't show any accounts even after logging in. |
The issue is known but kinda difficult to fix in certain terms. Basically you are missing YouTube on your device. How the fork works is, if you launch the patched app, GmsCore checks the app for whitelisted signatures. Because YouTube is modified, it fails these checks. This is why the fork includes a small workaround by asking for patched apps to include a spoof package name and signature meta in the manifest. GmsCore checks for that and spoofs the app to the original app. But because you don't have the original app installed GmsCore can not check for whatever it checks. Now, we could go as far as to simply check if the app is installed on the device but that would mean changing more in GmsCore than we should for the purpose of spoofing. We added the necessary code to spoof and workaround the whitelist, but checking if the original app exists in GmsCore is something that we arent supposed to look into, even if it's easy to do. To note, because we work around the whitelist checks of GmsCore, this is an open hole for any kind of malware to abuse the same spoofing method to gain access to your Google account. This was the case with the previous vendor of GmsCore as well so we have no regression here. The solution to that, while offtopic, is to make GmsCore ask the user for confirmation to use the spoofed app. If malware attempts to use GmsCore, the user would first need to grant permission, same would be in the case of the GmsCore support patch. |
@oSumAtrIX Yes, my factory YouTube was frozen. I just installed standard YouTube from the market and everything worked. Thank you very much. |
I don't know what frozen means, but even when installed as a system app and disabled on Android, it should work just fine |
I'll probably leave this here for future users who will also encounter this. Maybe this will be useful for them. I used the XiaomiADBFastbootTools program (A simple tool for Xiaomi devices, utilising ADB and Fastboot) to freeze standard applications pre-installed by the vendor. I don’t know the exact commands that it sends, but after them the standard YouTube disappears from the installed ones, but the files remain in the firmware, since after the reset everything returns as it was. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
# [4.4.0](v4.3.0...v4.4.0) (2024-03-27) ### Bug Fixes * **TikTok:** Hook application context earlier to prevent crash ([#2893](#2893)) ([395ccda](395ccda)) * **YouTube - Client spoof:** Spoof all user agents ([44a8a13](44a8a13)) * **YouTube - Downloads:** Use new task context ([#2841](#2841)) ([6d88cb4](6d88cb4)) * **YouTube - Hide ads:** Prevent app crash if hiding fullscreen ads is not possible ([#2910](#2910)) ([9f50470](9f50470)) * **YouTube Music:** Fix compatibility with latest versions ([#2924](#2924)) ([8378c84](8378c84)) * **YouTube:** Fix video playback by switching to ReVanced GmsCore vendor ([#2907](#2907)) ([33ea122](33ea122)) * **YouTube:** Move setting to correct screen ([a16eda8](a16eda8)) ### Features * **Instagram - Hide timeline ads:** Make compatible with latest versions ([a212f29](a212f29)) * **Mi Fitness:** Add `Force English locale` and `Fix login` patch ([#2734](#2734)) ([7a25791](7a25791)) * **Sync for Lemmy:** Add `Disable ads` patch ([#2872](#2872)) ([0785819](0785819)) * **YouTube - Downloads:** Use external downloader when selecting 'Download' in home feed flyout menu ([#2881](#2881)) ([10afc8c](10afc8c)) * **YouTube - External downloader:** Add ability to use in-app download button ([d900011](d900011)) * **YouTube - Hide layout components:** Filter home/search results by keywords ([#2853](#2853)) ([5916204](5916204)) * **YouTube - Hide Shorts components:** Hide like and dislike buttons ([2df0892](2df0892)) * **YouTube - Hide Shorts components:** Hide sound metadata label ([ea7d1e0](ea7d1e0)) * **YouTube - Hide Shorts components:** Hide title and full video link label ([e7b64e1](e7b64e1)) * **YouTube - Hide Shorts components:** Selectively hide Shorts for home / subscription / search ([#2925](#2925)) ([497c067](497c067)) * **YouTube :** Remove `HDR auto brightness` patch ([#2863](#2863)) ([b4c7bf4](b4c7bf4)) * **YouTube Vanced:** Remove `Hide ads` patch ([87887e4](87887e4)) * **YouTube:** Support version `19.05`, `19.06`, `19.07`, `19.08` and `19.09` ([#2862](#2862)) ([f044dde](f044dde))
# [4.4.0](v4.3.0...v4.4.0) (2024-03-27) ### Bug Fixes * **TikTok:** Hook application context earlier to prevent crash ([ReVanced#2893](https://github.com/E85Addict/revanced-patches/issues/2893)) ([395ccda](395ccda)) * **YouTube - Client spoof:** Spoof all user agents ([44a8a13](44a8a13)) * **YouTube - Downloads:** Use new task context ([ReVanced#2841](https://github.com/E85Addict/revanced-patches/issues/2841)) ([6d88cb4](6d88cb4)) * **YouTube - Hide ads:** Prevent app crash if hiding fullscreen ads is not possible ([ReVanced#2910](https://github.com/E85Addict/revanced-patches/issues/2910)) ([9f50470](9f50470)) * **YouTube Music:** Fix compatibility with latest versions ([ReVanced#2924](https://github.com/E85Addict/revanced-patches/issues/2924)) ([8378c84](8378c84)) * **YouTube:** Fix video playback by switching to ReVanced GmsCore vendor ([ReVanced#2907](https://github.com/E85Addict/revanced-patches/issues/2907)) ([33ea122](33ea122)) * **YouTube:** Move setting to correct screen ([a16eda8](a16eda8)) ### Features * **Instagram - Hide timeline ads:** Make compatible with latest versions ([a212f29](a212f29)) * **Mi Fitness:** Add `Force English locale` and `Fix login` patch ([ReVanced#2734](https://github.com/E85Addict/revanced-patches/issues/2734)) ([7a25791](7a25791)) * **Sync for Lemmy:** Add `Disable ads` patch ([ReVanced#2872](https://github.com/E85Addict/revanced-patches/issues/2872)) ([0785819](0785819)) * **YouTube - Downloads:** Use external downloader when selecting 'Download' in home feed flyout menu ([ReVanced#2881](https://github.com/E85Addict/revanced-patches/issues/2881)) ([10afc8c](10afc8c)) * **YouTube - External downloader:** Add ability to use in-app download button ([d900011](d900011)) * **YouTube - Hide layout components:** Filter home/search results by keywords ([ReVanced#2853](https://github.com/E85Addict/revanced-patches/issues/2853)) ([5916204](5916204)) * **YouTube - Hide Shorts components:** Hide like and dislike buttons ([2df0892](2df0892)) * **YouTube - Hide Shorts components:** Hide sound metadata label ([ea7d1e0](ea7d1e0)) * **YouTube - Hide Shorts components:** Hide title and full video link label ([e7b64e1](e7b64e1)) * **YouTube - Hide Shorts components:** Selectively hide Shorts for home / subscription / search ([ReVanced#2925](https://github.com/E85Addict/revanced-patches/issues/2925)) ([497c067](497c067)) * **YouTube :** Remove `HDR auto brightness` patch ([ReVanced#2863](https://github.com/E85Addict/revanced-patches/issues/2863)) ([b4c7bf4](b4c7bf4)) * **YouTube Vanced:** Remove `Hide ads` patch ([87887e4](87887e4)) * **YouTube:** Support version `19.05`, `19.06`, `19.07`, `19.08` and `19.09` ([ReVanced#2862](https://github.com/E85Addict/revanced-patches/issues/2862)) ([f044dde](f044dde)) ### Performance Improvements * Personal Logo && Add upstream sync ([5022724](5022724))
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
What do you mean by changing more then it should be in gmscore ? |
Is there a reason why #2878 is still left open? (Wanted to ask there but it's locked so asking over here) |
It was kept open so that people don't open duplicates, can be closed now. |
# [4.0.0](v3.1.0...v4.0.0) (2024-05-22) ### Bug Fixes * Case patch option title correctly ([259c8b4](259c8b4)) * Compile DEX without debugging information ([f5df957](f5df957)) * Correctly handle patches jar path if it contains exclamation marks ([056e2d7](056e2d7)) * Indent patch option description correctly ([bd86ef6](bd86ef6)) * **Infinity for Reddit - Unlock subscription:** Do not crash by patching billing client ([7d76e2e](7d76e2e)) * **Infinity for Reddit - Unlock subscription:** Restore functionality on v7.0.0 ([bf19af9](bf19af9)) * **Mi Fitness - Fix login:** Patch correct register ([ReVanced#2942](https://github.com/n-34/revanced-patches/issues/2942)) ([dc96942](dc96942)) * Only set Android key if not null to prevent build errors ([1181b0b](1181b0b)) * **Override certificate pinning:** Always overwrite with a generic network security configuration ([2a842a1](2a842a1)) * Publicize abstract property ([b7c108e](b7c108e)) * **Reddit is Fun - Spoof client:** Fix login by updating the authorization subdomain from "old" to "ssl" ([b156cb1](b156cb1)) * Remove extra space from patch description ([ReVanced#2780](https://github.com/n-34/revanced-patches/issues/2780)) ([96a3f35](96a3f35)) * **Spoof SIM country:** Validate patch option value correctly ([8105463](8105463)) * **Tiktok - Remember clear display:** Use correct name ([d7e44cb](d7e44cb)) * **TikTok:** Hook application context earlier to prevent crash ([ReVanced#2893](https://github.com/n-34/revanced-patches/issues/2893)) ([395ccda](395ccda)) * **Tumblr - Fix old versions:** Improve reliability by removing remnances of Tumblr Live ([ReVanced#2988](https://github.com/n-34/revanced-patches/issues/2988)) ([897b4db](897b4db)) * **Tumblr:** Restore compatibility with latest versions ([ReVanced#2955](https://github.com/n-34/revanced-patches/issues/2955)) ([2954ba7](2954ba7)) * **Twitch:** Correct patch resources to fix build ([1b63898](1b63898)) * URL decode path to JAR containing spaces to get JAR manifest ([ReVanced#3079](https://github.com/n-34/revanced-patches/issues/3079)) ([e1bbcb3](e1bbcb3)) * Use correct preference key ([3732b2c](3732b2c)) * Use deprecated members to ensure backwards compatibility ([083bd40](083bd40)) * Use new integrations patch path ([51e2f3b](51e2f3b)) * Use UrlDecoder API available in older Android versions ([d42fbb1](d42fbb1)) * **YouTube - Alternative thumbnails:** Clarify DeArrow support is for thumbnails ([ReVanced#2531](https://github.com/n-34/revanced-patches/issues/2531)) ([828abb0](828abb0)) * **YouTube - Change header:** Improve patch descriptions ([ReVanced#2581](https://github.com/n-34/revanced-patches/issues/2581)) ([43a5677](43a5677)) * **YouTube - Client spoof:** Spoof all user agents ([44a8a13](44a8a13)) * **YouTube - Client spoof:** Spoof client to fix playback ([ReVanced#3199](https://github.com/n-34/revanced-patches/issues/3199)) ([bec1eef](bec1eef)) * **YouTube - Downloads:** Use new task context ([ReVanced#2841](https://github.com/n-34/revanced-patches/issues/2841)) ([6d88cb4](6d88cb4)) * **YouTube - Enable slide to seek:** Change patch default to excluded and add description disclaimer ([ReVanced#2610](https://github.com/n-34/revanced-patches/issues/2610)) ([2fdc4c2](2fdc4c2)) * **YouTube - GmsCore support:** Prompt to disable battery optimizations, if not done already ([ReVanced#2958](https://github.com/n-34/revanced-patches/issues/2958)) ([82acb84](82acb84)) * **YouTube - Hide ads:** Fix string typo ([ecc56d6](ecc56d6)) * **YouTube - Hide ads:** Prevent app crash if hiding fullscreen ads is not possible ([ReVanced#2910](https://github.com/n-34/revanced-patches/issues/2910)) ([9f50470](9f50470)) * **YouTube - Hide ads:** rename `Hide paid content` to `Hide paid promotion label` ([ReVanced#3026](https://github.com/n-34/revanced-patches/issues/3026)) ([17e4ac9](17e4ac9)) * **YouTube - Hide load more button:** Include patch with `Hide layout components`, and hide button only in search feed ([ReVanced#2959](https://github.com/n-34/revanced-patches/issues/2959)) ([b007e8e](b007e8e)) * **YouTube - Hide Shorts components:** Correctly hide Shorts if navigation tab is changed using device back button ([ReVanced#3007](https://github.com/n-34/revanced-patches/issues/3007)) ([e5848e9](e5848e9)) * **YouTube - Hide Shorts components:** Rename option title to make it consistent ([4d6e34b](4d6e34b)) * **YouTube - Hide video action buttons:** Remove obsolete `hide Shop button` ([ReVanced#3057](https://github.com/n-34/revanced-patches/issues/3057)) ([b5e34f3](b5e34f3)) * **YouTube - Navigation buttons:** Adjust summary text of switch notification button ([ReVanced#3130](https://github.com/n-34/revanced-patches/issues/3130)) ([cc8b4c9](cc8b4c9)) * **YouTube - Player flyout menu:** Add hide Lock screen menu ([ReVanced#2985](https://github.com/n-34/revanced-patches/issues/2985)) ([308de4a](308de4a)) * **YouTube - Player flyout menu:** Remove obsolete `Hide report menu` ([d627d44](d627d44)) * **YouTube - Restore old video quality menu:** Show advanced quality menu in Shorts quality flyout ([ReVanced#3155](https://github.com/n-34/revanced-patches/issues/3155)) ([c2b5bb7](c2b5bb7)) * **YouTube - SponsorBlock:** Export local statistics with saved settings ([f8365b4](f8365b4)) * **YouTube - SponsorBlock:** Show correct segment times if video is over 24 hours in length ([ReVanced#3138](https://github.com/n-34/revanced-patches/issues/3138)) ([6cdf697](6cdf697)) * **YouTube - Spoof app version:** Remove broken versions ([ReVanced#2776](https://github.com/n-34/revanced-patches/issues/2776)) ([9466d97](9466d97)) * **YouTube - Spoof device dimensions:** Warn about potential performance issues ([ReVanced#3039](https://github.com/n-34/revanced-patches/issues/3039)) ([9d6f305](9d6f305)) * **YouTube - Spoof signature:** Fix tracking such as history or watch time ([bcd8b48](bcd8b48)) * **YouTube Music - Remove upgrade button:** Fix compatibility with latest versions ([ReVanced#3045](https://github.com/n-34/revanced-patches/issues/3045)) ([80de996](80de996)) * **YouTube Music:** Fix compatibility with latest versions ([ReVanced#2924](https://github.com/n-34/revanced-patches/issues/2924)) ([8378c84](8378c84)) * **YouTube Music:** Make `Hide 'Get Music Premium' label` and `Remove upgrade button` compatible with latest version ([ReVanced#3164](https://github.com/n-34/revanced-patches/issues/3164)) ([3ff20de](3ff20de)) * **YouTube:** Correctly show channel page on tablet devices ([ReVanced#2656](https://github.com/n-34/revanced-patches/issues/2656)) ([c7c9700](c7c9700)) * **YouTube:** Do not crash on startup for root installs ([ReVanced#2655](https://github.com/n-34/revanced-patches/issues/2655)) ([02abace](02abace)) * **YouTube:** Fix grammer mistakes in patch descriptions ([ReVanced#2543](https://github.com/n-34/revanced-patches/issues/2543)) ([ebf5993](ebf5993)) * **YouTube:** Fix video playback by switching to ReVanced GmsCore vendor ([ReVanced#2907](https://github.com/n-34/revanced-patches/issues/2907)) ([33ea122](33ea122)) * **YouTube:** Move setting to correct screen ([a16eda8](a16eda8)) * **YouTube:** Shorten setting titles to fit on screen ([ReVanced#2579](https://github.com/n-34/revanced-patches/issues/2579)) ([b2a5dd3](b2a5dd3)) ### Code Refactoring * Fix package and code structure ([ReVanced#2541](https://github.com/n-34/revanced-patches/issues/2541)) ([a08457e](a08457e)) ### Features * Add `Hex` patch ([ReVanced#3034](https://github.com/n-34/revanced-patches/issues/3034)) ([3c95aac](3c95aac)) * **Amazon:** Add `Always allow deep-linking` patch ([ReVanced#3000](https://github.com/n-34/revanced-patches/issues/3000)) ([a92b7fb](a92b7fb)) * **Change package name:** Mention caveat of the patch in the description ([427b81a](427b81a)) * **ID Austria:** Remove constraint on any version ([ReVanced#2526](https://github.com/n-34/revanced-patches/issues/2526)) ([de2cb88](de2cb88)) * **Instagram - Hide timeline ads:** Make compatible with latest versions ([a212f29](a212f29)) * **Mi Fitness:** Add `Force English locale` and `Fix login` patch ([ReVanced#2734](https://github.com/n-34/revanced-patches/issues/2734)) ([7a25791](7a25791)) * Move strings to resources for localization ([ReVanced#2440](https://github.com/n-34/revanced-patches/issues/2440)) ([060ab8f](060ab8f)) * **MyFitnessPal:** Add `Hide ads` patch ([ReVanced#2594](https://github.com/n-34/revanced-patches/issues/2594)) ([fd4b3c7](fd4b3c7)) * **OpeningHours:** Add `Fix crash` patch ([ReVanced#2697](https://github.com/n-34/revanced-patches/issues/2697)) ([0d011b8](0d011b8)) * **Photomath:** Add `Hide update popup` patch ([ReVanced#2637](https://github.com/n-34/revanced-patches/issues/2637)) ([fbbecd3](fbbecd3)) * **Photomath:** Support version `8.37.0` ([ReVanced#3109](https://github.com/n-34/revanced-patches/issues/3109)) ([fb02b48](fb02b48)) * **Piccoma:** Add `Disable tracking` patch ([ReVanced#3143](https://github.com/n-34/revanced-patches/issues/3143)) ([8ab9e8f](8ab9e8f)) * **Piccoma:** Add `Spoof Android device ID` patch ([ReVanced#3145](https://github.com/n-34/revanced-patches/issues/3145)) ([d953c6b](d953c6b)) * **Public API:** Deprecate `HideEmailAddressPatch` ([866bceb](866bceb)) * **Public API:** Make `BottomControlsResource#addControls` public ([ReVanced#2514](https://github.com/n-34/revanced-patches/issues/2514)) ([f4e2257](f4e2257)) * Remove unnecessary description from patch ([1a89dd9](1a89dd9)) * **Strava - Unlock subscription:** Remove compatible version constraint ([80a5599](80a5599)) * **Sync for Lemmy:** Add `Disable ads` patch ([ReVanced#2872](https://github.com/n-34/revanced-patches/issues/2872)) ([0785819](0785819)) * **Sync for Reddit:** Add `Fix /s/ links` patch ([f15ef3f](f15ef3f)) * **Tiktok - Playback speed:** Remember playback speed ([ReVanced#2506](https://github.com/n-34/revanced-patches/issues/2506)) ([d2970e5](d2970e5)) * **Tiktok:** Add `Remember clear mode` patch ([ReVanced#2509](https://github.com/n-34/revanced-patches/issues/2509)) ([048bf59](048bf59)) * **Tumblr:** Add `Disable Ad-Free Banner` patch ([ReVanced#3091](https://github.com/n-34/revanced-patches/issues/3091)) ([54baf08](54baf08)) * **Tumblr:** Add `Fix old versions` patch ([ReVanced#2954](https://github.com/n-34/revanced-patches/issues/2954)) ([2fde60e](2fde60e)) * **Twitter - Unlock downloads:** Unlock GIF downloads ([d0f91c8](d0f91c8)) * **Twitter:** Add `Sanitize sharing links` patch ([ReVanced#3003](https://github.com/n-34/revanced-patches/issues/3003)) ([186b887](186b887)) * **VSCO - Unlock pro:** Constrain to last working version ([6dd4a7c](6dd4a7c)) * **WarnWetter - Promo code unlock:** Constrain to last working version ([ReVanced#3110](https://github.com/n-34/revanced-patches/issues/3110)) ([92fc8aa](92fc8aa)) * **X:** Add `Hide view count` patch ([bf064ec](bf064ec)) * **X:** Add `Open links as query` patch ([ReVanced#2730](https://github.com/n-34/revanced-patches/issues/2730)) ([ba75a51](ba75a51)) * **X:** Add `Unlock downloads` patch ([2c20844](2c20844)) * **YouTube - Alternative thumbnails:** Selectively enable for home / subscription / search ([ReVanced#2926](https://github.com/n-34/revanced-patches/issues/2926)) ([8549e1b](8549e1b)) * **YouTube - Change header:** Change to ReVanced borderless logo header by default ([ReVanced#2512](https://github.com/n-34/revanced-patches/issues/2512)) ([75f785d](75f785d)) * **YouTube - Change header:** Improve patch option description ([3b8bc08](3b8bc08)) * **YouTube - Change start page:** Add more start pages ([cc1d9b7](cc1d9b7)) * **YouTube - Comments:** Add option to hide timestamp and emoji buttons ([ReVanced#3076](https://github.com/n-34/revanced-patches/issues/3076)) ([7efe5ae](7efe5ae)) * **YouTube - Custom branding:** Improve patch option description ([e27f56c](e27f56c)) * **YouTube - Custom filter:** Custom filtering of the protocol buffer ([ReVanced#2682](https://github.com/n-34/revanced-patches/issues/2682)) ([872a5b6](872a5b6)) * **YouTube - Downloads:** Use external downloader when selecting 'Download' in home feed flyout menu ([ReVanced#2881](https://github.com/n-34/revanced-patches/issues/2881)) ([10afc8c](10afc8c)) * **YouTube - External downloader:** Add ability to use in-app download button ([d900011](d900011)) * **YouTube - GmsCore:** Require ignoring battery optimizations ([ReVanced#2952](https://github.com/n-34/revanced-patches/issues/2952)) ([c0bef25](c0bef25)) * **YouTube - Hide ads:** Add option to hide the 'Visit store' button on channel pages ([ReVanced#3077](https://github.com/n-34/revanced-patches/issues/3077)) ([03d2cfa](03d2cfa)) * **YouTube - Hide ads:** Hide fullscreen ads ([bdc9a12](bdc9a12)) * **YouTube - Hide layout components:** Add option to hide horizontal shelves ([ReVanced#2951](https://github.com/n-34/revanced-patches/issues/2951)) ([9ae0650](9ae0650)) * **YouTube - Hide layout components:** Filter home/search results by keywords ([ReVanced#2853](https://github.com/n-34/revanced-patches/issues/2853)) ([5916204](5916204)) * **YouTube - Hide layout components:** Hide playables ([8423515](8423515)) * **YouTube - Hide layout components:** Hide search result recommendations ([55cc7f1](55cc7f1)) * **YouTube - Hide Shorts components:** Hide 'Buy super thanks' button ([ReVanced#3176](https://github.com/n-34/revanced-patches/issues/3176)) ([89c1548](89c1548)) * **YouTube - Hide Shorts components:** Hide `Shop`, `Location` and `Save sound to playlist` buttons ([ReVanced#3018](https://github.com/n-34/revanced-patches/issues/3018)) ([5210ac4](5210ac4)) * **YouTube - Hide Shorts components:** Hide like / dislike button in video ads ([ReVanced#3062](https://github.com/n-34/revanced-patches/issues/3062)) ([1296985](1296985)) * **YouTube - Hide Shorts components:** Hide like and dislike buttons ([2df0892](2df0892)) * **YouTube - Hide Shorts components:** Hide sound metadata label ([ea7d1e0](ea7d1e0)) * **YouTube - Hide Shorts components:** Hide tagged products, hide search suggestions ([ReVanced#3019](https://github.com/n-34/revanced-patches/issues/3019)) ([e0d2fe5](e0d2fe5)) * **YouTube - Hide Shorts components:** Hide title and full video link label ([e7b64e1](e7b64e1)) * **YouTube - Hide Shorts components:** Selectively hide Shorts for home / subscription / search ([ReVanced#2925](https://github.com/n-34/revanced-patches/issues/2925)) ([497c067](497c067)) * **YouTube - Navigation buttons:** Add option to hide navigation button labels ([ReVanced#3189](https://github.com/n-34/revanced-patches/issues/3189)) ([f9dc705](f9dc705)) * **YouTube - Spoof app version:** Add `18.09.39` to restore library tab ([ReVanced#2643](https://github.com/n-34/revanced-patches/issues/2643)) ([dd108ff](dd108ff)) * **YouTube - Spoof app version:** Add target versions ([ReVanced#2787](https://github.com/n-34/revanced-patches/issues/2787)) ([83a7bd8](83a7bd8)) * **YouTube - Swipe controls:** Save and restore brightness and add auto-brightness toggle ([ReVanced#2996](https://github.com/n-34/revanced-patches/issues/2996)) ([f6c3bc4](f6c3bc4)) * **YouTube - Theme:** Add classic dark color to presets ([ReVanced#2542](https://github.com/n-34/revanced-patches/issues/2542)) ([4e1dc00](4e1dc00)) * **YouTube :** Remove `HDR auto brightness` patch ([ReVanced#2863](https://github.com/n-34/revanced-patches/issues/2863)) ([b4c7bf4](b4c7bf4)) * **YouTube Vanced:** Remove `Hide ads` patch ([87887e4](87887e4)) * **YouTube:** Add 'About' preference to settings menu ([ReVanced#2981](https://github.com/n-34/revanced-patches/issues/2981)) ([5abf894](5abf894)) * **YouTube:** Add `Remove viewer discretion dialog` patch ([a07f83f](a07f83f)) * **YouTube:** Improve patch descriptions ([ReVanced#2519](https://github.com/n-34/revanced-patches/issues/2519)) ([e8d1389](e8d1389)) * **YouTube:** Match overlay icons style to YouTube ([ReVanced#3023](https://github.com/n-34/revanced-patches/issues/3023)) ([6849393](6849393)) * **YouTube:** Remove `Hide email address` patch ([3b84305](3b84305)) * **YouTube:** Reorganize settings menu ([ReVanced#2737](https://github.com/n-34/revanced-patches/issues/2737)) ([36132df](36132df)) * **YouTube:** Support version `19.02.34` ([ReVanced#2627](https://github.com/n-34/revanced-patches/issues/2627)) ([94e08b7](94e08b7)) * **YouTube:** Support version `19.03.35` ([ReVanced#2640](https://github.com/n-34/revanced-patches/issues/2640)) ([ff08f58](ff08f58)) * **YouTube:** Support version `19.04.37` ([ReVanced#2687](https://github.com/n-34/revanced-patches/issues/2687)) ([c23e023](c23e023)) * **YouTube:** Support version `19.05`, `19.06`, `19.07`, `19.08` and `19.09` ([ReVanced#2862](https://github.com/n-34/revanced-patches/issues/2862)) ([f044dde](f044dde)) * **YouTube:** Support version `19.09.38`, `19.10.39` and `19.11.43` ([ReVanced#2971](https://github.com/n-34/revanced-patches/issues/2971)) ([730f3e3](730f3e3)) * **YouTube:** Support versions `18.48.39`, `18.49.37` and `19.01.34` ([ReVanced#2551](https://github.com/n-34/revanced-patches/issues/2551)) ([a938e73](a938e73)) * **YT Music - Hide 'Get Music Premium' label:** Remove occurences of label in settings ([ReVanced#3046](https://github.com/n-34/revanced-patches/issues/3046)) ([10e170a](10e170a)) * **YT Music:** Add support for `7.01.52` ([ReVanced#3177](https://github.com/n-34/revanced-patches/issues/3177)) ([e9bfb25](e9bfb25)) ### BREAKING CHANGES * **Photomath:** Some packages have changed locations. * Various APIs have been changed. * Various public APIs have changed names and packages or were removed entirely
# [4.0.0](v3.1.0...v4.0.0) (2024-05-22) ### Bug Fixes * Case patch option title correctly ([259c8b4](259c8b4)) * Compile DEX without debugging information ([f5df957](f5df957)) * Correctly handle patches jar path if it contains exclamation marks ([056e2d7](056e2d7)) * Indent patch option description correctly ([bd86ef6](bd86ef6)) * **Infinity for Reddit - Unlock subscription:** Do not crash by patching billing client ([7d76e2e](7d76e2e)) * **Infinity for Reddit - Unlock subscription:** Restore functionality on v7.0.0 ([bf19af9](bf19af9)) * **Mi Fitness - Fix login:** Patch correct register ([ReVanced#2942](https://github.com/n-34/revanced-patches/issues/2942)) ([dc96942](dc96942)) * Only set Android key if not null to prevent build errors ([1181b0b](1181b0b)) * **Override certificate pinning:** Always overwrite with a generic network security configuration ([2a842a1](2a842a1)) * Publicize abstract property ([b7c108e](b7c108e)) * **Reddit is Fun - Spoof client:** Fix login by updating the authorization subdomain from "old" to "ssl" ([b156cb1](b156cb1)) * Remove extra space from patch description ([ReVanced#2780](https://github.com/n-34/revanced-patches/issues/2780)) ([96a3f35](96a3f35)) * **Spoof SIM country:** Validate patch option value correctly ([8105463](8105463)) * **Tiktok - Remember clear display:** Use correct name ([d7e44cb](d7e44cb)) * **TikTok:** Hook application context earlier to prevent crash ([ReVanced#2893](https://github.com/n-34/revanced-patches/issues/2893)) ([395ccda](395ccda)) * **Tumblr - Fix old versions:** Improve reliability by removing remnances of Tumblr Live ([ReVanced#2988](https://github.com/n-34/revanced-patches/issues/2988)) ([897b4db](897b4db)) * **Tumblr:** Restore compatibility with latest versions ([ReVanced#2955](https://github.com/n-34/revanced-patches/issues/2955)) ([2954ba7](2954ba7)) * **Twitch:** Correct patch resources to fix build ([1b63898](1b63898)) * URL decode path to JAR containing spaces to get JAR manifest ([ReVanced#3079](https://github.com/n-34/revanced-patches/issues/3079)) ([e1bbcb3](e1bbcb3)) * Use correct preference key ([3732b2c](3732b2c)) * Use deprecated members to ensure backwards compatibility ([083bd40](083bd40)) * Use new integrations patch path ([51e2f3b](51e2f3b)) * Use UrlDecoder API available in older Android versions ([d42fbb1](d42fbb1)) * **YouTube - Alternative thumbnails:** Clarify DeArrow support is for thumbnails ([ReVanced#2531](https://github.com/n-34/revanced-patches/issues/2531)) ([828abb0](828abb0)) * **YouTube - Change header:** Improve patch descriptions ([ReVanced#2581](https://github.com/n-34/revanced-patches/issues/2581)) ([43a5677](43a5677)) * **YouTube - Client spoof:** Spoof all user agents ([44a8a13](44a8a13)) * **YouTube - Client spoof:** Spoof client to fix playback ([ReVanced#3199](https://github.com/n-34/revanced-patches/issues/3199)) ([bec1eef](bec1eef)) * **YouTube - Downloads:** Use new task context ([ReVanced#2841](https://github.com/n-34/revanced-patches/issues/2841)) ([6d88cb4](6d88cb4)) * **YouTube - Enable slide to seek:** Change patch default to excluded and add description disclaimer ([ReVanced#2610](https://github.com/n-34/revanced-patches/issues/2610)) ([2fdc4c2](2fdc4c2)) * **YouTube - GmsCore support:** Prompt to disable battery optimizations, if not done already ([ReVanced#2958](https://github.com/n-34/revanced-patches/issues/2958)) ([82acb84](82acb84)) * **YouTube - Hide ads:** Fix string typo ([ecc56d6](ecc56d6)) * **YouTube - Hide ads:** Prevent app crash if hiding fullscreen ads is not possible ([ReVanced#2910](https://github.com/n-34/revanced-patches/issues/2910)) ([9f50470](9f50470)) * **YouTube - Hide ads:** rename `Hide paid content` to `Hide paid promotion label` ([ReVanced#3026](https://github.com/n-34/revanced-patches/issues/3026)) ([17e4ac9](17e4ac9)) * **YouTube - Hide load more button:** Include patch with `Hide layout components`, and hide button only in search feed ([ReVanced#2959](https://github.com/n-34/revanced-patches/issues/2959)) ([b007e8e](b007e8e)) * **YouTube - Hide Shorts components:** Correctly hide Shorts if navigation tab is changed using device back button ([ReVanced#3007](https://github.com/n-34/revanced-patches/issues/3007)) ([e5848e9](e5848e9)) * **YouTube - Hide Shorts components:** Rename option title to make it consistent ([4d6e34b](4d6e34b)) * **YouTube - Hide video action buttons:** Remove obsolete `hide Shop button` ([ReVanced#3057](https://github.com/n-34/revanced-patches/issues/3057)) ([b5e34f3](b5e34f3)) * **YouTube - Navigation buttons:** Adjust summary text of switch notification button ([ReVanced#3130](https://github.com/n-34/revanced-patches/issues/3130)) ([cc8b4c9](cc8b4c9)) * **YouTube - Player flyout menu:** Add hide Lock screen menu ([ReVanced#2985](https://github.com/n-34/revanced-patches/issues/2985)) ([308de4a](308de4a)) * **YouTube - Player flyout menu:** Remove obsolete `Hide report menu` ([d627d44](d627d44)) * **YouTube - Restore old video quality menu:** Show advanced quality menu in Shorts quality flyout ([ReVanced#3155](https://github.com/n-34/revanced-patches/issues/3155)) ([c2b5bb7](c2b5bb7)) * **YouTube - SponsorBlock:** Export local statistics with saved settings ([f8365b4](f8365b4)) * **YouTube - SponsorBlock:** Show correct segment times if video is over 24 hours in length ([ReVanced#3138](https://github.com/n-34/revanced-patches/issues/3138)) ([6cdf697](6cdf697)) * **YouTube - Spoof app version:** Remove broken versions ([ReVanced#2776](https://github.com/n-34/revanced-patches/issues/2776)) ([9466d97](9466d97)) * **YouTube - Spoof device dimensions:** Warn about potential performance issues ([ReVanced#3039](https://github.com/n-34/revanced-patches/issues/3039)) ([9d6f305](9d6f305)) * **YouTube - Spoof signature:** Fix tracking such as history or watch time ([bcd8b48](bcd8b48)) * **YouTube Music - Remove upgrade button:** Fix compatibility with latest versions ([ReVanced#3045](https://github.com/n-34/revanced-patches/issues/3045)) ([80de996](80de996)) * **YouTube Music:** Fix compatibility with latest versions ([ReVanced#2924](https://github.com/n-34/revanced-patches/issues/2924)) ([8378c84](8378c84)) * **YouTube Music:** Make `Hide 'Get Music Premium' label` and `Remove upgrade button` compatible with latest version ([ReVanced#3164](https://github.com/n-34/revanced-patches/issues/3164)) ([3ff20de](3ff20de)) * **YouTube:** Correctly show channel page on tablet devices ([ReVanced#2656](https://github.com/n-34/revanced-patches/issues/2656)) ([c7c9700](c7c9700)) * **YouTube:** Do not crash on startup for root installs ([ReVanced#2655](https://github.com/n-34/revanced-patches/issues/2655)) ([02abace](02abace)) * **YouTube:** Fix grammer mistakes in patch descriptions ([ReVanced#2543](https://github.com/n-34/revanced-patches/issues/2543)) ([ebf5993](ebf5993)) * **YouTube:** Fix video playback by switching to ReVanced GmsCore vendor ([ReVanced#2907](https://github.com/n-34/revanced-patches/issues/2907)) ([33ea122](33ea122)) * **YouTube:** Move setting to correct screen ([a16eda8](a16eda8)) * **YouTube:** Shorten setting titles to fit on screen ([ReVanced#2579](https://github.com/n-34/revanced-patches/issues/2579)) ([b2a5dd3](b2a5dd3)) ### Code Refactoring * Fix package and code structure ([ReVanced#2541](https://github.com/n-34/revanced-patches/issues/2541)) ([a08457e](a08457e)) ### Features * Add `Hex` patch ([ReVanced#3034](https://github.com/n-34/revanced-patches/issues/3034)) ([3c95aac](3c95aac)) * **Amazon:** Add `Always allow deep-linking` patch ([ReVanced#3000](https://github.com/n-34/revanced-patches/issues/3000)) ([a92b7fb](a92b7fb)) * **Change package name:** Mention caveat of the patch in the description ([427b81a](427b81a)) * **ID Austria:** Remove constraint on any version ([ReVanced#2526](https://github.com/n-34/revanced-patches/issues/2526)) ([de2cb88](de2cb88)) * **Instagram - Hide timeline ads:** Make compatible with latest versions ([a212f29](a212f29)) * **Mi Fitness:** Add `Force English locale` and `Fix login` patch ([ReVanced#2734](https://github.com/n-34/revanced-patches/issues/2734)) ([7a25791](7a25791)) * Move strings to resources for localization ([ReVanced#2440](https://github.com/n-34/revanced-patches/issues/2440)) ([060ab8f](060ab8f)) * **MyFitnessPal:** Add `Hide ads` patch ([ReVanced#2594](https://github.com/n-34/revanced-patches/issues/2594)) ([fd4b3c7](fd4b3c7)) * **OpeningHours:** Add `Fix crash` patch ([ReVanced#2697](https://github.com/n-34/revanced-patches/issues/2697)) ([0d011b8](0d011b8)) * **Photomath:** Add `Hide update popup` patch ([ReVanced#2637](https://github.com/n-34/revanced-patches/issues/2637)) ([fbbecd3](fbbecd3)) * **Photomath:** Support version `8.37.0` ([ReVanced#3109](https://github.com/n-34/revanced-patches/issues/3109)) ([fb02b48](fb02b48)) * **Piccoma:** Add `Disable tracking` patch ([ReVanced#3143](https://github.com/n-34/revanced-patches/issues/3143)) ([8ab9e8f](8ab9e8f)) * **Piccoma:** Add `Spoof Android device ID` patch ([ReVanced#3145](https://github.com/n-34/revanced-patches/issues/3145)) ([d953c6b](d953c6b)) * **Public API:** Deprecate `HideEmailAddressPatch` ([866bceb](866bceb)) * **Public API:** Make `BottomControlsResource#addControls` public ([ReVanced#2514](https://github.com/n-34/revanced-patches/issues/2514)) ([f4e2257](f4e2257)) * Remove unnecessary description from patch ([1a89dd9](1a89dd9)) * **Strava - Unlock subscription:** Remove compatible version constraint ([80a5599](80a5599)) * **Sync for Lemmy:** Add `Disable ads` patch ([ReVanced#2872](https://github.com/n-34/revanced-patches/issues/2872)) ([0785819](0785819)) * **Sync for Reddit:** Add `Fix /s/ links` patch ([f15ef3f](f15ef3f)) * **Tiktok - Playback speed:** Remember playback speed ([ReVanced#2506](https://github.com/n-34/revanced-patches/issues/2506)) ([d2970e5](d2970e5)) * **Tiktok:** Add `Remember clear mode` patch ([ReVanced#2509](https://github.com/n-34/revanced-patches/issues/2509)) ([048bf59](048bf59)) * **Tumblr:** Add `Disable Ad-Free Banner` patch ([ReVanced#3091](https://github.com/n-34/revanced-patches/issues/3091)) ([54baf08](54baf08)) * **Tumblr:** Add `Fix old versions` patch ([ReVanced#2954](https://github.com/n-34/revanced-patches/issues/2954)) ([2fde60e](2fde60e)) * **Twitter - Unlock downloads:** Unlock GIF downloads ([d0f91c8](d0f91c8)) * **Twitter:** Add `Sanitize sharing links` patch ([ReVanced#3003](https://github.com/n-34/revanced-patches/issues/3003)) ([186b887](186b887)) * **VSCO - Unlock pro:** Constrain to last working version ([6dd4a7c](6dd4a7c)) * **WarnWetter - Promo code unlock:** Constrain to last working version ([ReVanced#3110](https://github.com/n-34/revanced-patches/issues/3110)) ([92fc8aa](92fc8aa)) * **X:** Add `Hide view count` patch ([bf064ec](bf064ec)) * **X:** Add `Open links as query` patch ([ReVanced#2730](https://github.com/n-34/revanced-patches/issues/2730)) ([ba75a51](ba75a51)) * **X:** Add `Unlock downloads` patch ([2c20844](2c20844)) * **YouTube - Alternative thumbnails:** Selectively enable for home / subscription / search ([ReVanced#2926](https://github.com/n-34/revanced-patches/issues/2926)) ([8549e1b](8549e1b)) * **YouTube - Change header:** Change to ReVanced borderless logo header by default ([ReVanced#2512](https://github.com/n-34/revanced-patches/issues/2512)) ([75f785d](75f785d)) * **YouTube - Change header:** Improve patch option description ([3b8bc08](3b8bc08)) * **YouTube - Change start page:** Add more start pages ([cc1d9b7](cc1d9b7)) * **YouTube - Comments:** Add option to hide timestamp and emoji buttons ([ReVanced#3076](https://github.com/n-34/revanced-patches/issues/3076)) ([7efe5ae](7efe5ae)) * **YouTube - Custom branding:** Improve patch option description ([e27f56c](e27f56c)) * **YouTube - Custom filter:** Custom filtering of the protocol buffer ([ReVanced#2682](https://github.com/n-34/revanced-patches/issues/2682)) ([872a5b6](872a5b6)) * **YouTube - Downloads:** Use external downloader when selecting 'Download' in home feed flyout menu ([ReVanced#2881](https://github.com/n-34/revanced-patches/issues/2881)) ([10afc8c](10afc8c)) * **YouTube - External downloader:** Add ability to use in-app download button ([d900011](d900011)) * **YouTube - GmsCore:** Require ignoring battery optimizations ([ReVanced#2952](https://github.com/n-34/revanced-patches/issues/2952)) ([c0bef25](c0bef25)) * **YouTube - Hide ads:** Add option to hide the 'Visit store' button on channel pages ([ReVanced#3077](https://github.com/n-34/revanced-patches/issues/3077)) ([03d2cfa](03d2cfa)) * **YouTube - Hide ads:** Hide fullscreen ads ([bdc9a12](bdc9a12)) * **YouTube - Hide layout components:** Add option to hide horizontal shelves ([ReVanced#2951](https://github.com/n-34/revanced-patches/issues/2951)) ([9ae0650](9ae0650)) * **YouTube - Hide layout components:** Filter home/search results by keywords ([ReVanced#2853](https://github.com/n-34/revanced-patches/issues/2853)) ([5916204](5916204)) * **YouTube - Hide layout components:** Hide playables ([8423515](8423515)) * **YouTube - Hide layout components:** Hide search result recommendations ([55cc7f1](55cc7f1)) * **YouTube - Hide Shorts components:** Hide 'Buy super thanks' button ([ReVanced#3176](https://github.com/n-34/revanced-patches/issues/3176)) ([89c1548](89c1548)) * **YouTube - Hide Shorts components:** Hide `Shop`, `Location` and `Save sound to playlist` buttons ([ReVanced#3018](https://github.com/n-34/revanced-patches/issues/3018)) ([5210ac4](5210ac4)) * **YouTube - Hide Shorts components:** Hide like / dislike button in video ads ([ReVanced#3062](https://github.com/n-34/revanced-patches/issues/3062)) ([1296985](1296985)) * **YouTube - Hide Shorts components:** Hide like and dislike buttons ([2df0892](2df0892)) * **YouTube - Hide Shorts components:** Hide sound metadata label ([ea7d1e0](ea7d1e0)) * **YouTube - Hide Shorts components:** Hide tagged products, hide search suggestions ([ReVanced#3019](https://github.com/n-34/revanced-patches/issues/3019)) ([e0d2fe5](e0d2fe5)) * **YouTube - Hide Shorts components:** Hide title and full video link label ([e7b64e1](e7b64e1)) * **YouTube - Hide Shorts components:** Selectively hide Shorts for home / subscription / search ([ReVanced#2925](https://github.com/n-34/revanced-patches/issues/2925)) ([497c067](497c067)) * **YouTube - Navigation buttons:** Add option to hide navigation button labels ([ReVanced#3189](https://github.com/n-34/revanced-patches/issues/3189)) ([f9dc705](f9dc705)) * **YouTube - Spoof app version:** Add `18.09.39` to restore library tab ([ReVanced#2643](https://github.com/n-34/revanced-patches/issues/2643)) ([dd108ff](dd108ff)) * **YouTube - Spoof app version:** Add target versions ([ReVanced#2787](https://github.com/n-34/revanced-patches/issues/2787)) ([83a7bd8](83a7bd8)) * **YouTube - Swipe controls:** Save and restore brightness and add auto-brightness toggle ([ReVanced#2996](https://github.com/n-34/revanced-patches/issues/2996)) ([f6c3bc4](f6c3bc4)) * **YouTube - Theme:** Add classic dark color to presets ([ReVanced#2542](https://github.com/n-34/revanced-patches/issues/2542)) ([4e1dc00](4e1dc00)) * **YouTube :** Remove `HDR auto brightness` patch ([ReVanced#2863](https://github.com/n-34/revanced-patches/issues/2863)) ([b4c7bf4](b4c7bf4)) * **YouTube Vanced:** Remove `Hide ads` patch ([87887e4](87887e4)) * **YouTube:** Add 'About' preference to settings menu ([ReVanced#2981](https://github.com/n-34/revanced-patches/issues/2981)) ([5abf894](5abf894)) * **YouTube:** Add `Remove viewer discretion dialog` patch ([a07f83f](a07f83f)) * **YouTube:** Improve patch descriptions ([ReVanced#2519](https://github.com/n-34/revanced-patches/issues/2519)) ([e8d1389](e8d1389)) * **YouTube:** Match overlay icons style to YouTube ([ReVanced#3023](https://github.com/n-34/revanced-patches/issues/3023)) ([6849393](6849393)) * **YouTube:** Remove `Hide email address` patch ([3b84305](3b84305)) * **YouTube:** Reorganize settings menu ([ReVanced#2737](https://github.com/n-34/revanced-patches/issues/2737)) ([36132df](36132df)) * **YouTube:** Support version `19.02.34` ([ReVanced#2627](https://github.com/n-34/revanced-patches/issues/2627)) ([94e08b7](94e08b7)) * **YouTube:** Support version `19.03.35` ([ReVanced#2640](https://github.com/n-34/revanced-patches/issues/2640)) ([ff08f58](ff08f58)) * **YouTube:** Support version `19.04.37` ([ReVanced#2687](https://github.com/n-34/revanced-patches/issues/2687)) ([c23e023](c23e023)) * **YouTube:** Support version `19.05`, `19.06`, `19.07`, `19.08` and `19.09` ([ReVanced#2862](https://github.com/n-34/revanced-patches/issues/2862)) ([f044dde](f044dde)) * **YouTube:** Support version `19.09.38`, `19.10.39` and `19.11.43` ([ReVanced#2971](https://github.com/n-34/revanced-patches/issues/2971)) ([730f3e3](730f3e3)) * **YouTube:** Support versions `18.48.39`, `18.49.37` and `19.01.34` ([ReVanced#2551](https://github.com/n-34/revanced-patches/issues/2551)) ([a938e73](a938e73)) * **YT Music - Hide 'Get Music Premium' label:** Remove occurences of label in settings ([ReVanced#3046](https://github.com/n-34/revanced-patches/issues/3046)) ([10e170a](10e170a)) * **YT Music:** Add support for `7.01.52` ([ReVanced#3177](https://github.com/n-34/revanced-patches/issues/3177)) ([e9bfb25](e9bfb25)) ### BREAKING CHANGES * **Photomath:** Some packages have changed locations. * Various APIs have been changed. * Various public APIs have changed names and packages or were removed entirely
# [4.0.0](v3.1.0...v4.0.0) (2024-05-22) ### Bug Fixes * Case patch option title correctly ([259c8b4](259c8b4)) * Compile DEX without debugging information ([f5df957](f5df957)) * Correctly handle patches jar path if it contains exclamation marks ([056e2d7](056e2d7)) * Indent patch option description correctly ([bd86ef6](bd86ef6)) * **Infinity for Reddit - Unlock subscription:** Do not crash by patching billing client ([7d76e2e](7d76e2e)) * **Infinity for Reddit - Unlock subscription:** Restore functionality on v7.0.0 ([bf19af9](bf19af9)) * **Mi Fitness - Fix login:** Patch correct register ([ReVanced#2942](https://github.com/n-34/revanced-patches/issues/2942)) ([dc96942](dc96942)) * Only set Android key if not null to prevent build errors ([1181b0b](1181b0b)) * **Override certificate pinning:** Always overwrite with a generic network security configuration ([2a842a1](2a842a1)) * Publicize abstract property ([b7c108e](b7c108e)) * **Reddit is Fun - Spoof client:** Fix login by updating the authorization subdomain from "old" to "ssl" ([b156cb1](b156cb1)) * Remove extra space from patch description ([ReVanced#2780](https://github.com/n-34/revanced-patches/issues/2780)) ([96a3f35](96a3f35)) * **Spoof SIM country:** Validate patch option value correctly ([8105463](8105463)) * **Tiktok - Remember clear display:** Use correct name ([d7e44cb](d7e44cb)) * **TikTok:** Hook application context earlier to prevent crash ([ReVanced#2893](https://github.com/n-34/revanced-patches/issues/2893)) ([395ccda](395ccda)) * **Tumblr - Fix old versions:** Improve reliability by removing remnances of Tumblr Live ([ReVanced#2988](https://github.com/n-34/revanced-patches/issues/2988)) ([897b4db](897b4db)) * **Tumblr:** Restore compatibility with latest versions ([ReVanced#2955](https://github.com/n-34/revanced-patches/issues/2955)) ([2954ba7](2954ba7)) * **Twitch:** Correct patch resources to fix build ([1b63898](1b63898)) * URL decode path to JAR containing spaces to get JAR manifest ([ReVanced#3079](https://github.com/n-34/revanced-patches/issues/3079)) ([e1bbcb3](e1bbcb3)) * Use correct preference key ([3732b2c](3732b2c)) * Use deprecated members to ensure backwards compatibility ([083bd40](083bd40)) * Use new integrations patch path ([51e2f3b](51e2f3b)) * Use UrlDecoder API available in older Android versions ([d42fbb1](d42fbb1)) * **YouTube - Alternative thumbnails:** Clarify DeArrow support is for thumbnails ([ReVanced#2531](https://github.com/n-34/revanced-patches/issues/2531)) ([828abb0](828abb0)) * **YouTube - Change header:** Improve patch descriptions ([ReVanced#2581](https://github.com/n-34/revanced-patches/issues/2581)) ([43a5677](43a5677)) * **YouTube - Client spoof:** Spoof all user agents ([44a8a13](44a8a13)) * **YouTube - Client spoof:** Spoof client to fix playback ([ReVanced#3199](https://github.com/n-34/revanced-patches/issues/3199)) ([bec1eef](bec1eef)) * **YouTube - Downloads:** Use new task context ([ReVanced#2841](https://github.com/n-34/revanced-patches/issues/2841)) ([6d88cb4](6d88cb4)) * **YouTube - Enable slide to seek:** Change patch default to excluded and add description disclaimer ([ReVanced#2610](https://github.com/n-34/revanced-patches/issues/2610)) ([2fdc4c2](2fdc4c2)) * **YouTube - GmsCore support:** Prompt to disable battery optimizations, if not done already ([ReVanced#2958](https://github.com/n-34/revanced-patches/issues/2958)) ([82acb84](82acb84)) * **YouTube - Hide ads:** Fix string typo ([ecc56d6](ecc56d6)) * **YouTube - Hide ads:** Prevent app crash if hiding fullscreen ads is not possible ([ReVanced#2910](https://github.com/n-34/revanced-patches/issues/2910)) ([9f50470](9f50470)) * **YouTube - Hide ads:** rename `Hide paid content` to `Hide paid promotion label` ([ReVanced#3026](https://github.com/n-34/revanced-patches/issues/3026)) ([17e4ac9](17e4ac9)) * **YouTube - Hide load more button:** Include patch with `Hide layout components`, and hide button only in search feed ([ReVanced#2959](https://github.com/n-34/revanced-patches/issues/2959)) ([b007e8e](b007e8e)) * **YouTube - Hide Shorts components:** Correctly hide Shorts if navigation tab is changed using device back button ([ReVanced#3007](https://github.com/n-34/revanced-patches/issues/3007)) ([e5848e9](e5848e9)) * **YouTube - Hide Shorts components:** Rename option title to make it consistent ([4d6e34b](4d6e34b)) * **YouTube - Hide video action buttons:** Remove obsolete `hide Shop button` ([ReVanced#3057](https://github.com/n-34/revanced-patches/issues/3057)) ([b5e34f3](b5e34f3)) * **YouTube - Navigation buttons:** Adjust summary text of switch notification button ([ReVanced#3130](https://github.com/n-34/revanced-patches/issues/3130)) ([cc8b4c9](cc8b4c9)) * **YouTube - Player flyout menu:** Add hide Lock screen menu ([ReVanced#2985](https://github.com/n-34/revanced-patches/issues/2985)) ([308de4a](308de4a)) * **YouTube - Player flyout menu:** Remove obsolete `Hide report menu` ([d627d44](d627d44)) * **YouTube - Restore old video quality menu:** Show advanced quality menu in Shorts quality flyout ([ReVanced#3155](https://github.com/n-34/revanced-patches/issues/3155)) ([c2b5bb7](c2b5bb7)) * **YouTube - SponsorBlock:** Export local statistics with saved settings ([f8365b4](f8365b4)) * **YouTube - SponsorBlock:** Show correct segment times if video is over 24 hours in length ([ReVanced#3138](https://github.com/n-34/revanced-patches/issues/3138)) ([6cdf697](6cdf697)) * **YouTube - Spoof app version:** Remove broken versions ([ReVanced#2776](https://github.com/n-34/revanced-patches/issues/2776)) ([9466d97](9466d97)) * **YouTube - Spoof device dimensions:** Warn about potential performance issues ([ReVanced#3039](https://github.com/n-34/revanced-patches/issues/3039)) ([9d6f305](9d6f305)) * **YouTube - Spoof signature:** Fix tracking such as history or watch time ([bcd8b48](bcd8b48)) * **YouTube Music - Remove upgrade button:** Fix compatibility with latest versions ([ReVanced#3045](https://github.com/n-34/revanced-patches/issues/3045)) ([80de996](80de996)) * **YouTube Music:** Fix compatibility with latest versions ([ReVanced#2924](https://github.com/n-34/revanced-patches/issues/2924)) ([8378c84](8378c84)) * **YouTube Music:** Make `Hide 'Get Music Premium' label` and `Remove upgrade button` compatible with latest version ([ReVanced#3164](https://github.com/n-34/revanced-patches/issues/3164)) ([3ff20de](3ff20de)) * **YouTube:** Correctly show channel page on tablet devices ([ReVanced#2656](https://github.com/n-34/revanced-patches/issues/2656)) ([c7c9700](c7c9700)) * **YouTube:** Do not crash on startup for root installs ([ReVanced#2655](https://github.com/n-34/revanced-patches/issues/2655)) ([02abace](02abace)) * **YouTube:** Fix grammer mistakes in patch descriptions ([ReVanced#2543](https://github.com/n-34/revanced-patches/issues/2543)) ([ebf5993](ebf5993)) * **YouTube:** Fix video playback by switching to ReVanced GmsCore vendor ([ReVanced#2907](https://github.com/n-34/revanced-patches/issues/2907)) ([33ea122](33ea122)) * **YouTube:** Move setting to correct screen ([a16eda8](a16eda8)) * **YouTube:** Shorten setting titles to fit on screen ([ReVanced#2579](https://github.com/n-34/revanced-patches/issues/2579)) ([b2a5dd3](b2a5dd3)) ### Code Refactoring * Fix package and code structure ([ReVanced#2541](https://github.com/n-34/revanced-patches/issues/2541)) ([a08457e](a08457e)) ### Features * Add `Hex` patch ([ReVanced#3034](https://github.com/n-34/revanced-patches/issues/3034)) ([3c95aac](3c95aac)) * **Amazon:** Add `Always allow deep-linking` patch ([ReVanced#3000](https://github.com/n-34/revanced-patches/issues/3000)) ([a92b7fb](a92b7fb)) * **Change package name:** Mention caveat of the patch in the description ([427b81a](427b81a)) * **ID Austria:** Remove constraint on any version ([ReVanced#2526](https://github.com/n-34/revanced-patches/issues/2526)) ([de2cb88](de2cb88)) * **Instagram - Hide timeline ads:** Make compatible with latest versions ([a212f29](a212f29)) * **Mi Fitness:** Add `Force English locale` and `Fix login` patch ([ReVanced#2734](https://github.com/n-34/revanced-patches/issues/2734)) ([7a25791](7a25791)) * Move strings to resources for localization ([ReVanced#2440](https://github.com/n-34/revanced-patches/issues/2440)) ([060ab8f](060ab8f)) * **MyFitnessPal:** Add `Hide ads` patch ([ReVanced#2594](https://github.com/n-34/revanced-patches/issues/2594)) ([fd4b3c7](fd4b3c7)) * **OpeningHours:** Add `Fix crash` patch ([ReVanced#2697](https://github.com/n-34/revanced-patches/issues/2697)) ([0d011b8](0d011b8)) * **Photomath:** Add `Hide update popup` patch ([ReVanced#2637](https://github.com/n-34/revanced-patches/issues/2637)) ([fbbecd3](fbbecd3)) * **Photomath:** Support version `8.37.0` ([ReVanced#3109](https://github.com/n-34/revanced-patches/issues/3109)) ([fb02b48](fb02b48)) * **Piccoma:** Add `Disable tracking` patch ([ReVanced#3143](https://github.com/n-34/revanced-patches/issues/3143)) ([8ab9e8f](8ab9e8f)) * **Piccoma:** Add `Spoof Android device ID` patch ([ReVanced#3145](https://github.com/n-34/revanced-patches/issues/3145)) ([d953c6b](d953c6b)) * **Public API:** Deprecate `HideEmailAddressPatch` ([866bceb](866bceb)) * **Public API:** Make `BottomControlsResource#addControls` public ([ReVanced#2514](https://github.com/n-34/revanced-patches/issues/2514)) ([f4e2257](f4e2257)) * Remove unnecessary description from patch ([1a89dd9](1a89dd9)) * **Strava - Unlock subscription:** Remove compatible version constraint ([80a5599](80a5599)) * **Sync for Lemmy:** Add `Disable ads` patch ([ReVanced#2872](https://github.com/n-34/revanced-patches/issues/2872)) ([0785819](0785819)) * **Sync for Reddit:** Add `Fix /s/ links` patch ([f15ef3f](f15ef3f)) * **Tiktok - Playback speed:** Remember playback speed ([ReVanced#2506](https://github.com/n-34/revanced-patches/issues/2506)) ([d2970e5](d2970e5)) * **Tiktok:** Add `Remember clear mode` patch ([ReVanced#2509](https://github.com/n-34/revanced-patches/issues/2509)) ([048bf59](048bf59)) * **Tumblr:** Add `Disable Ad-Free Banner` patch ([ReVanced#3091](https://github.com/n-34/revanced-patches/issues/3091)) ([54baf08](54baf08)) * **Tumblr:** Add `Fix old versions` patch ([ReVanced#2954](https://github.com/n-34/revanced-patches/issues/2954)) ([2fde60e](2fde60e)) * **Twitter - Unlock downloads:** Unlock GIF downloads ([d0f91c8](d0f91c8)) * **Twitter:** Add `Sanitize sharing links` patch ([ReVanced#3003](https://github.com/n-34/revanced-patches/issues/3003)) ([186b887](186b887)) * **VSCO - Unlock pro:** Constrain to last working version ([6dd4a7c](6dd4a7c)) * **WarnWetter - Promo code unlock:** Constrain to last working version ([ReVanced#3110](https://github.com/n-34/revanced-patches/issues/3110)) ([92fc8aa](92fc8aa)) * **X:** Add `Hide view count` patch ([bf064ec](bf064ec)) * **X:** Add `Open links as query` patch ([ReVanced#2730](https://github.com/n-34/revanced-patches/issues/2730)) ([ba75a51](ba75a51)) * **X:** Add `Unlock downloads` patch ([2c20844](2c20844)) * **YouTube - Alternative thumbnails:** Selectively enable for home / subscription / search ([ReVanced#2926](https://github.com/n-34/revanced-patches/issues/2926)) ([8549e1b](8549e1b)) * **YouTube - Change header:** Change to ReVanced borderless logo header by default ([ReVanced#2512](https://github.com/n-34/revanced-patches/issues/2512)) ([75f785d](75f785d)) * **YouTube - Change header:** Improve patch option description ([3b8bc08](3b8bc08)) * **YouTube - Change start page:** Add more start pages ([cc1d9b7](cc1d9b7)) * **YouTube - Comments:** Add option to hide timestamp and emoji buttons ([ReVanced#3076](https://github.com/n-34/revanced-patches/issues/3076)) ([7efe5ae](7efe5ae)) * **YouTube - Custom branding:** Improve patch option description ([e27f56c](e27f56c)) * **YouTube - Custom filter:** Custom filtering of the protocol buffer ([ReVanced#2682](https://github.com/n-34/revanced-patches/issues/2682)) ([872a5b6](872a5b6)) * **YouTube - Downloads:** Use external downloader when selecting 'Download' in home feed flyout menu ([ReVanced#2881](https://github.com/n-34/revanced-patches/issues/2881)) ([10afc8c](10afc8c)) * **YouTube - External downloader:** Add ability to use in-app download button ([d900011](d900011)) * **YouTube - GmsCore:** Require ignoring battery optimizations ([ReVanced#2952](https://github.com/n-34/revanced-patches/issues/2952)) ([c0bef25](c0bef25)) * **YouTube - Hide ads:** Add option to hide the 'Visit store' button on channel pages ([ReVanced#3077](https://github.com/n-34/revanced-patches/issues/3077)) ([03d2cfa](03d2cfa)) * **YouTube - Hide ads:** Hide fullscreen ads ([bdc9a12](bdc9a12)) * **YouTube - Hide layout components:** Add option to hide horizontal shelves ([ReVanced#2951](https://github.com/n-34/revanced-patches/issues/2951)) ([9ae0650](9ae0650)) * **YouTube - Hide layout components:** Filter home/search results by keywords ([ReVanced#2853](https://github.com/n-34/revanced-patches/issues/2853)) ([5916204](5916204)) * **YouTube - Hide layout components:** Hide playables ([8423515](8423515)) * **YouTube - Hide layout components:** Hide search result recommendations ([55cc7f1](55cc7f1)) * **YouTube - Hide Shorts components:** Hide 'Buy super thanks' button ([ReVanced#3176](https://github.com/n-34/revanced-patches/issues/3176)) ([89c1548](89c1548)) * **YouTube - Hide Shorts components:** Hide `Shop`, `Location` and `Save sound to playlist` buttons ([ReVanced#3018](https://github.com/n-34/revanced-patches/issues/3018)) ([5210ac4](5210ac4)) * **YouTube - Hide Shorts components:** Hide like / dislike button in video ads ([ReVanced#3062](https://github.com/n-34/revanced-patches/issues/3062)) ([1296985](1296985)) * **YouTube - Hide Shorts components:** Hide like and dislike buttons ([2df0892](2df0892)) * **YouTube - Hide Shorts components:** Hide sound metadata label ([ea7d1e0](ea7d1e0)) * **YouTube - Hide Shorts components:** Hide tagged products, hide search suggestions ([ReVanced#3019](https://github.com/n-34/revanced-patches/issues/3019)) ([e0d2fe5](e0d2fe5)) * **YouTube - Hide Shorts components:** Hide title and full video link label ([e7b64e1](e7b64e1)) * **YouTube - Hide Shorts components:** Selectively hide Shorts for home / subscription / search ([ReVanced#2925](https://github.com/n-34/revanced-patches/issues/2925)) ([497c067](497c067)) * **YouTube - Navigation buttons:** Add option to hide navigation button labels ([ReVanced#3189](https://github.com/n-34/revanced-patches/issues/3189)) ([f9dc705](f9dc705)) * **YouTube - Spoof app version:** Add `18.09.39` to restore library tab ([ReVanced#2643](https://github.com/n-34/revanced-patches/issues/2643)) ([dd108ff](dd108ff)) * **YouTube - Spoof app version:** Add target versions ([ReVanced#2787](https://github.com/n-34/revanced-patches/issues/2787)) ([83a7bd8](83a7bd8)) * **YouTube - Swipe controls:** Save and restore brightness and add auto-brightness toggle ([ReVanced#2996](https://github.com/n-34/revanced-patches/issues/2996)) ([f6c3bc4](f6c3bc4)) * **YouTube - Theme:** Add classic dark color to presets ([ReVanced#2542](https://github.com/n-34/revanced-patches/issues/2542)) ([4e1dc00](4e1dc00)) * **YouTube :** Remove `HDR auto brightness` patch ([ReVanced#2863](https://github.com/n-34/revanced-patches/issues/2863)) ([b4c7bf4](b4c7bf4)) * **YouTube Vanced:** Remove `Hide ads` patch ([87887e4](87887e4)) * **YouTube:** Add 'About' preference to settings menu ([ReVanced#2981](https://github.com/n-34/revanced-patches/issues/2981)) ([5abf894](5abf894)) * **YouTube:** Add `Remove viewer discretion dialog` patch ([a07f83f](a07f83f)) * **YouTube:** Improve patch descriptions ([ReVanced#2519](https://github.com/n-34/revanced-patches/issues/2519)) ([e8d1389](e8d1389)) * **YouTube:** Match overlay icons style to YouTube ([ReVanced#3023](https://github.com/n-34/revanced-patches/issues/3023)) ([6849393](6849393)) * **YouTube:** Remove `Hide email address` patch ([3b84305](3b84305)) * **YouTube:** Reorganize settings menu ([ReVanced#2737](https://github.com/n-34/revanced-patches/issues/2737)) ([36132df](36132df)) * **YouTube:** Support version `19.02.34` ([ReVanced#2627](https://github.com/n-34/revanced-patches/issues/2627)) ([94e08b7](94e08b7)) * **YouTube:** Support version `19.03.35` ([ReVanced#2640](https://github.com/n-34/revanced-patches/issues/2640)) ([ff08f58](ff08f58)) * **YouTube:** Support version `19.04.37` ([ReVanced#2687](https://github.com/n-34/revanced-patches/issues/2687)) ([c23e023](c23e023)) * **YouTube:** Support version `19.05`, `19.06`, `19.07`, `19.08` and `19.09` ([ReVanced#2862](https://github.com/n-34/revanced-patches/issues/2862)) ([f044dde](f044dde)) * **YouTube:** Support version `19.09.38`, `19.10.39` and `19.11.43` ([ReVanced#2971](https://github.com/n-34/revanced-patches/issues/2971)) ([730f3e3](730f3e3)) * **YouTube:** Support versions `18.48.39`, `18.49.37` and `19.01.34` ([ReVanced#2551](https://github.com/n-34/revanced-patches/issues/2551)) ([a938e73](a938e73)) * **YT Music - Hide 'Get Music Premium' label:** Remove occurences of label in settings ([ReVanced#3046](https://github.com/n-34/revanced-patches/issues/3046)) ([10e170a](10e170a)) * **YT Music:** Add support for `7.01.52` ([ReVanced#3177](https://github.com/n-34/revanced-patches/issues/3177)) ([e9bfb25](e9bfb25)) ### BREAKING CHANGES * **Photomath:** Some packages have changed locations. * Various APIs have been changed. * Various public APIs have changed names and packages or were removed entirely
About
This PR switches to the ReVanced GmsCore vendor to fix playback issues. The previous vendor did not update GmsCore, resulting in missing features required for playback, specifically PoToken, which was added to requests recently. Because the PoToken was missing, playback failed.
Related:
GetPoIntegrityTokenRequest
returns noGetPoIntegrityTokenResponse
body microg/GmsCore#2253Fixes #293
Todo
com.mgoogle
Depends on: