diff --git a/README-template.md b/README-template.md deleted file mode 100644 index 5f21d12d5..000000000 --- a/README-template.md +++ /dev/null @@ -1,122 +0,0 @@ -## 🧩 ReVanced Patches - -The official ReVanced Patches. - -## 📋 List of patches in this repository - -{{ table }} - -> Looking for the JSON variant of this? [Click here](patches.json). - -## 📝 JSON Format - -This section explains the JSON format for the [patches.json](patches.json) file. - -The file contains an array of objects, each object representing a patch. The object contains the following properties: - -| key | description | -|-------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `name` | The name of the patch. | -| `description` | The description of the patch. | -| `version` | The version of the patch. | -| `excluded` | Whether the patch is excluded by default. If `true`, the patch must never be included by default. | -| `options` | An array of options for this patch. | -| `options.key` | The key of the option. | -| `options.title` | The title of the option. | -| `options.description` | The description of the option. | -| `options.required` | Whether the option is required. | -| `options.choices?` | An array of choices of the option. This may be `null` if this option has no choices. The element type of this array may be any type. It can be a `String`, `Int` or something else. | -| `dependencies` | An array of dependencies, which are patch names. | -| `compatiblePackages` | An array of packages compatible with this patch. | -| `compatiblePackages.name` | The name of the package. | -| `compatiblePackages.versions` | An array of versions of the package compatible with this patch. If empty, all versions are seemingly compatible. | - -Example: - -```json -[ - { - "name": "remember-video-quality", - "description": "Adds the ability to remember the video quality you chose in the video quality flyout.", - "version": "0.0.1", - "excluded": false, - "options": [], - "dependencies": [ - "integrations", - "video-id-hook" - ], - "compatiblePackages": [ - { - "name": "com.google.android.youtube", - "versions": [ - "17.22.36", - "17.24.35", - "17.26.35", - "17.27.39", - "17.28.34", - "17.29.34", - "17.32.35", - "17.33.42" - ] - } - ] - }, - { - "name": "theme", - "description": "Enables a custom theme.", - "version": "0.0.1", - "excluded": false, - "options": [ - { - "key": "theme", - "title": "Theme", - "description": "Select a theme.", - "required": true, - "choices": [ - "Amoled" - ] - } - ], - "dependencies": [ - "locale-config-fix" - ], - "compatiblePackages": [ - { - "name": "com.google.android.youtube", - "versions": [] - } - ] - }, - { - "name": "custom-branding", - "description": "Changes the YouTube launcher icon and name to your choice (defaults to ReVanced).", - "version": "0.0.1", - "excluded": false, - "options": [ - { - "key": "appName", - "title": "Application Name", - "description": "The name of the application it will show on your home screen.", - "required": true, - "choices": null - }, - { - "key": "appIconPath", - "title": "Application Icon Path", - "description": "A path to the icon of the application.", - "required": false, - "choices": null - } - ], - "dependencies": [ - "locale-config-fix" - ], - "compatiblePackages": [ - { - "name": "com.google.android.youtube", - "versions": [] - } - ] - } -] -``` \ No newline at end of file diff --git a/README.md b/README.md index 2236430bb..79fde2b82 100644 --- a/README.md +++ b/README.md @@ -1,635 +1,3 @@ ## 🧩 ReVanced Patches -The official ReVanced Patches. - -## 📋 List of patches in this repository - -### [📦 `com.google.android.youtube`](https://play.google.com/store/apps/details?id=com.google.android.youtube) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `always-autorepeat` | Always repeats the playing video again. | 18.19.35 | -| `client-spoof` | Spoofs a patched client to allow playback. | 18.19.35 | -| `comments` | Hides components related to comments. | 18.19.35 | -| `copy-video-url` | Adds buttons in player to copy video links. | 18.19.35 | -| `custom-branding` | Changes the YouTube launcher icon and name to your choice (defaults to ReVanced). | all | -| `custom-video-buffer` | Lets you change the buffers of videos. | 18.19.35 | -| `disable-auto-captions` | Disable forced captions from being automatically enabled. | 18.19.35 | -| `disable-fullscreen-panels` | Disables video description and comments panel in fullscreen view. | 18.19.35 | -| `disable-player-popup-panels` | Disables panels from appearing automatically when going into fullscreen (playlist or live chat). | 18.19.35 | -| `disable-shorts-on-startup` | Disables playing YouTube Shorts when launching YouTube. | 18.19.35 | -| `disable-zoom-haptics` | Disables haptics when zooming. | all | -| `enable-debugging` | Adds debugging options. | all | -| `external-downloads` | Adds support to download and save YouTube videos using an external app. | 18.19.35 | -| `hdr-auto-brightness` | Makes the brightness of HDR videos follow the system default. | 18.19.35 | -| `hide-ads` | Removes general ads. | 18.19.35 | -| `hide-album-cards` | Hides the album cards below the artist description. | 18.19.35 | -| `hide-autoplay-button` | Hides the autoplay button in the video player. | 18.19.35 | -| `hide-breaking-news-shelf` | Hides the breaking news shelf on the homepage tab. | 18.19.35 | -| `hide-captions-button` | Hides the captions button on video player. | 18.19.35 | -| `hide-cast-button` | Hides the cast button in the video player. | all | -| `hide-crowdfunding-box` | Hides the crowdfunding box between the player and video description. | 18.19.35 | -| `hide-email-address` | Hides the email address in the account switcher. | 18.19.35 | -| `hide-endscreen-cards` | Hides the suggested video cards at the end of a video in fullscreen. | 18.19.35 | -| `hide-filter-bar` | Hides the filter bar in video feeds. | 18.19.35 | -| `hide-floating-microphone-button` | Hides the floating microphone button which appears in search. | 18.19.35 | -| `hide-info-cards` | Hides info cards in videos. | 18.19.35 | -| `hide-layout-components` | Hides general layout components. | 18.19.35 | -| `hide-load-more-button` | Hides the button under videos that loads similar videos. | 18.19.35 | -| `hide-player-buttons` | Adds the option to hide video player previous and next buttons. | 18.19.35 | -| `hide-player-overlay` | Hides the dark background overlay from the player when player controls are visible. | all | -| `hide-seekbar` | Hides the seekbar. | 18.19.35 | -| `hide-shorts-components` | Hides components from YouTube Shorts. | 18.19.35 | -| `hide-timestamp` | Hides timestamp in video player. | 18.19.35 | -| `hide-video-action-buttons` | Adds the options to hide action buttons under a video. | 18.19.35 | -| `hide-watch-in-vr` | Hides the option to watch in VR from the player settings flyout panel. | 18.19.35 | -| `hide-watermark` | Hides creator's watermarks on videos. | 18.19.35 | -| `minimized-playback` | Enables minimized and background playback. | 18.19.35 | -| `navigation-buttons` | Adds options to hide or change navigation buttons. | 18.19.35 | -| `old-quality-layout` | Enables the original video quality flyout in the video player settings. | 18.19.35 | -| `open-links-externally` | Open links outside of the app directly in your browser. | 18.19.35 | -| `premium-heading` | Shows premium branding on the home screen. | all | -| `remember-video-quality` | Adds the ability to remember the video quality you chose in the video quality flyout. | 18.19.35 | -| `remove-player-controls-background` | Removes the background from the video player controls. | 18.19.35 | -| `return-youtube-dislike` | Shows the dislike count of videos using the Return YouTube Dislike API. | 18.19.35 | -| `seekbar-tapping` | Enables tap-to-seek on the seekbar of the video player. | 18.19.35 | -| `sponsorblock` | Integrates SponsorBlock which allows skipping video segments such as sponsored content. | 18.19.35 | -| `spoof-app-version` | Tricks YouTube into thinking, you are running an older version of the app. One of the side effects also includes restoring the old UI. | 18.19.35 | -| `swipe-controls` | Adds volume and brightness swipe controls. | 18.19.35 | -| `tablet-mini-player` | Enables the tablet mini player layout. | 18.19.35 | -| `theme` | Applies a custom theme. | all | -| `vanced-microg-support` | Allows YouTube ReVanced to run without root and under a different package name with Vanced MicroG. | 18.19.35 | -| `video-ads` | Removes ads in the video player. | 18.19.35 | -| `video-speed` | Adds custom video speeds and ability to remember the playback speed you chose in the video playback speed flyout. | 18.19.35 | -| `wide-searchbar` | Replaces the search icon with a wide search bar. This will hide the YouTube logo when active. | 18.19.35 | -
- -### [📦 `com.google.android.apps.youtube.music`](https://play.google.com/store/apps/details?id=com.google.android.apps.youtube.music) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `background-play` | Enables playing music in the background. | all | -| `bypass-certificate-checks` | Bypasses certificate checks which prevent YouTube Music from working on Android Auto. | all | -| `codecs-unlock` | Adds more audio codec options. The new audio codecs usually result in better audio quality. | all | -| `compact-header` | Hides the music category bar at the top of the homepage. | all | -| `exclusive-audio-playback` | Enables the option to play music without video. | all | -| `hide-get-premium` | Removes all "Get Premium" evidences from the avatar menu. | all | -| `minimized-playback-music` | Enables minimized playback on Kids music. | all | -| `music-video-ads` | Removes ads in the music player. | all | -| `upgrade-button-remover` | Removes the upgrade tab from the pivot bar. | all | -| `vanced-microg-support` | Allows YouTube Music ReVanced to run without root and under a different package name. | all | -
- -### [📦 `com.ss.android.ugc.trill`](https://play.google.com/store/apps/details?id=com.ss.android.ugc.trill) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `disable-login-requirement` | Do not force login. | all | -| `downloads` | Removes download restrictions and changes the default path to download to. | all | -| `feed-filter` | Filters tiktok videos: removing ads, removing livestreams. | all | -| `fix-google-login` | Allows logging in with a Google account. | all | -| `hide-ads` | Removes ads from TikTok. | all | -| `playback-speed` | Enables the playback speed option for all videos. | all | -| `settings` | Adds ReVanced settings to TikTok. | all | -| `show-seekbar` | Shows progress bar for all video. | all | -| `sim-spoof` | Spoofs the information which is retrieved from the sim-card. | all | -
- -### [📦 `com.zhiliaoapp.musically`](https://play.google.com/store/apps/details?id=com.zhiliaoapp.musically) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `disable-login-requirement` | Do not force login. | all | -| `downloads` | Removes download restrictions and changes the default path to download to. | all | -| `feed-filter` | Filters tiktok videos: removing ads, removing livestreams. | all | -| `fix-google-login` | Allows logging in with a Google account. | all | -| `hide-ads` | Removes ads from TikTok. | all | -| `playback-speed` | Enables the playback speed option for all videos. | all | -| `settings` | Adds ReVanced settings to TikTok. | all | -| `show-seekbar` | Shows progress bar for all video. | all | -| `sim-spoof` | Spoofs the information which is retrieved from the sim-card. | all | -
- -### [📦 `tv.twitch.android.app`](https://play.google.com/store/apps/details?id=tv.twitch.android.app) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `auto-claim-channel-points` | Automatically claim Channel Points. | 15.4.1 | -| `block-audio-ads` | Blocks audio ads in streams and VODs. | 15.4.1 | -| `block-embedded-ads` | Blocks embedded stream ads using services like TTV.lol or PurpleAdBlocker. | 15.4.1 | -| `block-video-ads` | Blocks video ads in streams and VODs. | 15.4.1 | -| `debug-mode` | Enables Twitch's internal debugging mode. | all | -| `settings` | Adds settings menu to Twitch. | all | -| `show-deleted-messages` | Shows deleted chat messages behind a clickable spoiler. | 15.4.1 | -
- -### [📦 `com.reddit.frontpage`](https://play.google.com/store/apps/details?id=com.reddit.frontpage) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `disable-screenshot-popup` | Disables the popup that shows up when taking a screenshot. | all | -| `hide-ads` | Removes ads from the Reddit. | all | -| `premium-icon-reddit` | Unlocks premium Reddit app icons. | all | -| `sanitize-sharing-links` | Removes (tracking) query parameters from the URLs when sharing links. | all | -
- -### [📦 `com.twitter.android`](https://play.google.com/store/apps/details?id=com.twitter.android) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `dynamic-color` | Replaces the default Twitter Blue with the users Material You palette. | all | -| `hide-ads` | Hides ads. | all | -| `hide-recommended-users` | Hides recommended users. | all | -| `hide-views-stats` | Hides the view stats under tweets. | 9.71.0-release.0 | -
- -### [📦 `com.facebook.orca`](https://play.google.com/store/apps/details?id=com.facebook.orca) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `disable-switching-emoji-to-sticker-in-message-input-field` | Disables switching from emoji to sticker search mode in message input field | all | -| `disable-typing-indicator` | Disables the indicator while typing a message | all | -| `hide-inbox-ads` | Hides ads in inbox. | all | -
- -### [📦 `com.laurencedawson.reddit_sync`](https://play.google.com/store/apps/details?id=com.laurencedawson.reddit_sync) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `change-oauth-client-id` | Changes the OAuth client ID. The OAuth application type has to be "Installed app" and the redirect URI has to be set to "http://redditsync/auth". | all | -| `disable-ads` | Disables ads. | all | -
- -### [📦 `com.spotify.music`](https://play.google.com/store/apps/details?id=com.spotify.music) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `hide-premium-navbar` | Removes the premium tab from the navbar. | all | -| `spotify-theme` | Applies a custom theme. | all | -
- -### [📦 `com.sony.songpal.mdr`](https://play.google.com/store/apps/details?id=com.sony.songpal.mdr) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `remove-badge-tab` | Removes the badge tab from the activity tab. | all | -| `remove-notification-badge` | Removes the red notification badge from the activity tab. | all | -
- -### [📦 `at.gv.bmf.bmf2go`](https://play.google.com/store/apps/details?id=at.gv.bmf.bmf2go) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `remove-bootloader-detection` | Removes the check for an unlocked bootloader. | all | -| `remove-root-detection` | Removes the check for root permissions. | all | -
- -### [📦 `at.gv.oe.app`](https://play.google.com/store/apps/details?id=at.gv.oe.app) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `remove-root-detection` | Removes the check for root permissions and unlocked bootloader. | all | -| `spoof-signature` | Spoofs the signature of the app. | all | -
- -### [📦 `ml.docilealligator.infinityforreddit`](https://play.google.com/store/apps/details?id=ml.docilealligator.infinityforreddit) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `change-oauth-client-id` | Changes the OAuth client ID. The OAuth application type has to be "Installed app" and the redirect URI has to be set to "infinity://localhost". | all | -
- -### [📦 `me.ccrama.redditslide`](https://play.google.com/store/apps/details?id=me.ccrama.redditslide) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `change-oauth-client-id` | Changes the OAuth client ID. The OAuth application type has to be "Installed app" and the redirect URI has to be set to "http://www.ccrama.me". | all | -
- -### [📦 `free.reddit.news`](https://play.google.com/store/apps/details?id=free.reddit.news) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `change-oauth-client-id` | Changes the OAuth client ID. The OAuth application type has to be "Installed app" and the redirect URI has to be set to "dbrady://relay". | all | -
- -### [📦 `reddit.news`](https://play.google.com/store/apps/details?id=reddit.news) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `change-oauth-client-id` | Changes the OAuth client ID. The OAuth application type has to be "Installed app" and the redirect URI has to be set to "dbrady://relay". | all | -
- -### [📦 `com.onelouder.baconreader`](https://play.google.com/store/apps/details?id=com.onelouder.baconreader) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `change-oauth-client-id` | Changes the OAuth client ID. The OAuth application type has to be "Installed app" and the redirect URI has to be set to "http://baconreader.com/auth". | all | -
- -### [📦 `com.onelouder.baconreader.premium`](https://play.google.com/store/apps/details?id=com.onelouder.baconreader.premium) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `change-oauth-client-id` | Changes the OAuth client ID. The OAuth application type has to be "Installed app" and the redirect URI has to be set to "http://baconreader.com/auth". | all | -
- -### [📦 `com.rubenmayayo.reddit`](https://play.google.com/store/apps/details?id=com.rubenmayayo.reddit) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `change-oauth-client-id` | Changes the OAuth client ID. The OAuth application type has to be "Installed app" and the redirect URI has to be set to "http://rubenmayayo.com". | all | -
- -### [📦 `com.andrewshu.android.reddit`](https://play.google.com/store/apps/details?id=com.andrewshu.android.reddit) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `change-oauth-client-id` | Changes the OAuth client ID. The OAuth application type has to be "Installed app" and the redirect URI has to be set to "redditisfun://auth". | all | -
- -### [📦 `com.andrewshu.android.redditdonation`](https://play.google.com/store/apps/details?id=com.andrewshu.android.redditdonation) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `change-oauth-client-id` | Changes the OAuth client ID. The OAuth application type has to be "Installed app" and the redirect URI has to be set to "redditisfun://auth". | all | -
- -### [📦 `com.laurencedawson.reddit_sync.pro`](https://play.google.com/store/apps/details?id=com.laurencedawson.reddit_sync.pro) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `change-oauth-client-id` | Changes the OAuth client ID. The OAuth application type has to be "Installed app" and the redirect URI has to be set to "http://redditsync/auth". | all | -
- -### [📦 `com.laurencedawson.reddit_sync.dev`](https://play.google.com/store/apps/details?id=com.laurencedawson.reddit_sync.dev) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `change-oauth-client-id` | Changes the OAuth client ID. The OAuth application type has to be "Installed app" and the redirect URI has to be set to "http://redditsync/auth". | all | -
- -### [📦 `com.myprog.hexedit`](https://play.google.com/store/apps/details?id=com.myprog.hexedit) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `disable-ads` | Disables ads in HexEditor. | all | -
- -### [📦 `com.spotify.lite`](https://play.google.com/store/apps/details?id=com.spotify.lite) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `enable-on-demand` | Enables listening to songs on-demand, allowing to play any song from playlists, albums or artists without limitations. This does not remove ads. | all | -
- -### [📦 `com.nis.app`](https://play.google.com/store/apps/details?id=com.nis.app) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `hide-ads` | Removes ads from Inshorts. | all | -
- -### [📦 `com.vanced.android.youtube`](https://play.google.com/store/apps/details?id=com.vanced.android.youtube) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `hide-ads` | Removes general ads. | all | -
- -### [📦 `jp.pxv.android`](https://play.google.com/store/apps/details?id=jp.pxv.android) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `hide-ads` | Hides ads. | all | -
- -### [📦 `com.instagram.android`](https://play.google.com/store/apps/details?id=com.instagram.android) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `hide-timeline-ads` | Removes ads from the timeline. | 275.0.0.27.98 | -
- -### [📦 `com.backdrops.wallpapers`](https://play.google.com/store/apps/details?id=com.backdrops.wallpapers) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `pro-unlock` | Unlocks pro-only functions. | 4.52 | -
- -### [📦 `de.dwd.warnapp`](https://play.google.com/store/apps/details?id=de.dwd.warnapp) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `promo-code-unlock` | Disables the validation of promo code. Any code will work to unlock all features. | all | -
- -### [📦 `net.binarymode.android.irplus`](https://play.google.com/store/apps/details?id=net.binarymode.android.irplus) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `remove-ads` | Removes all ads from the app. | all | -
- -### [📦 `eu.faircode.netguard`](https://play.google.com/store/apps/details?id=eu.faircode.netguard) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `remove-broadcasts-restriction` | Enables starting/stopping NetGuard via broadcasts. | all | -
- -### [📦 `com.scb.phone`](https://play.google.com/store/apps/details?id=com.scb.phone) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `remove-debugging-detection` | Removes the USB and wireless debugging checks. | all | -
- -### [📦 `com.google.android.apps.recorder`](https://play.google.com/store/apps/details?id=com.google.android.apps.recorder) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `remove-device-restrictions` | Removes restrictions from using the app on any device. | all | -
- -### [📦 `com.dci.dev.androidtwelvewidgets`](https://play.google.com/store/apps/details?id=com.dci.dev.androidtwelvewidgets) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-paid-widgets` | Unlocks paid widgets of the app | all | -
- -### [📦 `com.microblink.photomath`](https://play.google.com/store/apps/details?id=com.microblink.photomath) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-plus` | Unlocks plus features. | 8.20.0 | -
- -### [📦 `io.yuka.android`](https://play.google.com/store/apps/details?id=io.yuka.android) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-premium` | Unlocks premium features. | all | -
- -### [📦 `com.teslacoilsw.launcher`](https://play.google.com/store/apps/details?id=com.teslacoilsw.launcher) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-prime` | Unlocks Nova Prime and all functions of the app. | all | -
- -### [📦 `org.totschnig.myexpenses`](https://play.google.com/store/apps/details?id=org.totschnig.myexpenses) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-pro` | Unlocks all professional features. | 3.4.9 | -
- -### [📦 `ginlemon.iconpackstudio`](https://play.google.com/store/apps/details?id=ginlemon.iconpackstudio) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-pro` | Unlocks all pro features. | all | -
- -### [📦 `com.zombodroid.MemeGenerator`](https://play.google.com/store/apps/details?id=com.zombodroid.MemeGenerator) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-pro` | Unlocks pro features. | 4.6377 | -
- -### [📦 `co.windyapp.android`](https://play.google.com/store/apps/details?id=co.windyapp.android) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-pro` | Unlocks all pro features. | all | -
- -### [📦 `com.vsco.cam`](https://play.google.com/store/apps/details?id=com.vsco.cam) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-pro` | Unlocks pro features. | all | -
- -### [📦 `com.wakdev.apps.nfctools.se`](https://play.google.com/store/apps/details?id=com.wakdev.apps.nfctools.se) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-pro` | Unlocks all pro features. | all | -
- -### [📦 `com.ithebk.expensemanager`](https://play.google.com/store/apps/details?id=com.ithebk.expensemanager) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-pro` | Unlocks pro features. | all | -
- -### [📦 `com.candylink.openvpn`](https://play.google.com/store/apps/details?id=com.candylink.openvpn) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-pro` | Unlocks premium features. | all | -
- -### [📦 `tv.trakt.trakt`](https://play.google.com/store/apps/details?id=tv.trakt.trakt) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-pro` | Unlocks pro features. | all | -
- -### [📦 `com.awedea.nyx`](https://play.google.com/store/apps/details?id=com.awedea.nyx) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-pro` | Unlocks all pro features. | all | -
- -### [📦 `com.ticktick.task`](https://play.google.com/store/apps/details?id=com.ticktick.task) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-themes` | Unlocks all themes that are inaccessible until a certain level is reached. | all | -
- -### [📦 `net.dinglisch.android.taskerm`](https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm) -
- -| 💊 Patch | 📜 Description | 🏹 Target Version | -|:--------:|:--------------:|:-----------------:| -| `unlock-trial` | Unlocks the trial version. | all | -
- - - -> Looking for the JSON variant of this? [Click here](patches.json). - -## 📝 JSON Format - -This section explains the JSON format for the [patches.json](patches.json) file. - -The file contains an array of objects, each object representing a patch. The object contains the following properties: - -| key | description | -|-------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `name` | The name of the patch. | -| `description` | The description of the patch. | -| `version` | The version of the patch. | -| `excluded` | Whether the patch is excluded by default. If `true`, the patch must never be included by default. | -| `options` | An array of options for this patch. | -| `options.key` | The key of the option. | -| `options.title` | The title of the option. | -| `options.description` | The description of the option. | -| `options.required` | Whether the option is required. | -| `options.choices?` | An array of choices of the option. This may be `null` if this option has no choices. The element type of this array may be any type. It can be a `String`, `Int` or something else. | -| `dependencies` | An array of dependencies, which are patch names. | -| `compatiblePackages` | An array of packages compatible with this patch. | -| `compatiblePackages.name` | The name of the package. | -| `compatiblePackages.versions` | An array of versions of the package compatible with this patch. If empty, all versions are seemingly compatible. | - -Example: - -```json -[ - { - "name": "remember-video-quality", - "description": "Adds the ability to remember the video quality you chose in the video quality flyout.", - "version": "0.0.1", - "excluded": false, - "options": [], - "dependencies": [ - "integrations", - "video-id-hook" - ], - "compatiblePackages": [ - { - "name": "com.google.android.youtube", - "versions": [ - "17.22.36", - "17.24.35", - "17.26.35", - "17.27.39", - "17.28.34", - "17.29.34", - "17.32.35", - "17.33.42" - ] - } - ] - }, - { - "name": "theme", - "description": "Enables a custom theme.", - "version": "0.0.1", - "excluded": false, - "options": [ - { - "key": "theme", - "title": "Theme", - "description": "Select a theme.", - "required": true, - "choices": [ - "Amoled" - ] - } - ], - "dependencies": [ - "locale-config-fix" - ], - "compatiblePackages": [ - { - "name": "com.google.android.youtube", - "versions": [] - } - ] - }, - { - "name": "custom-branding", - "description": "Changes the YouTube launcher icon and name to your choice (defaults to ReVanced).", - "version": "0.0.1", - "excluded": false, - "options": [ - { - "key": "appName", - "title": "Application Name", - "description": "The name of the application it will show on your home screen.", - "required": true, - "choices": null - }, - { - "key": "appIconPath", - "title": "Application Icon Path", - "description": "A path to the icon of the application.", - "required": false, - "choices": null - } - ], - "dependencies": [ - "locale-config-fix" - ], - "compatiblePackages": [ - { - "name": "com.google.android.youtube", - "versions": [] - } - ] - } -] -``` \ No newline at end of file +Patches for ReVanced. diff --git a/src/main/kotlin/app/revanced/meta/PatchesFileGenerator.kt b/src/main/kotlin/app/revanced/meta/PatchesFileGenerator.kt index 62667a331..dfb57d922 100644 --- a/src/main/kotlin/app/revanced/meta/PatchesFileGenerator.kt +++ b/src/main/kotlin/app/revanced/meta/PatchesFileGenerator.kt @@ -19,7 +19,7 @@ internal interface PatchesFileGenerator { ).loadPatches().also { if (it.isEmpty()) throw IllegalStateException("No patches found") }.let { bundle -> - arrayOf(JsonGenerator(), ReadmeGenerator()).forEach { it.generate(bundle) } + arrayOf(JsonGenerator()).forEach { it.generate(bundle) } } } } \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/meta/ReadmeGenerator.kt b/src/main/kotlin/app/revanced/meta/ReadmeGenerator.kt deleted file mode 100644 index e8a951eac..000000000 --- a/src/main/kotlin/app/revanced/meta/ReadmeGenerator.kt +++ /dev/null @@ -1,69 +0,0 @@ -package app.revanced.meta - -import app.revanced.patcher.data.Context -import app.revanced.patcher.extensions.PatchExtensions.compatiblePackages -import app.revanced.patcher.extensions.PatchExtensions.description -import app.revanced.patcher.extensions.PatchExtensions.patchName -import app.revanced.patcher.patch.Patch -import com.unascribed.flexver.FlexVerComparator -import java.io.File - -internal class ReadmeGenerator : PatchesFileGenerator { - private companion object { - private const val TABLE_HEADER = - "| \uD83D\uDC8A Patch | \uD83D\uDCDC Description | \uD83C\uDFF9 Target Version |\n" + - "|:--------:|:--------------:|:-----------------:|" - } - - override fun generate(bundle: PatchBundlePatches) { - val output = StringBuilder() - - mutableMapOf>>>() - .apply { - for (patch in bundle) { - patch.compatiblePackages?.forEach { pkg -> - if (!contains(pkg.name)) put(pkg.name, mutableListOf()) - this[pkg.name]!!.add(patch) - } - } - } - .entries - .sortedByDescending { it.value.size } - .forEach { (`package`, patches) -> - val mostCommonVersion = buildMap { - patches.forEach { patch -> - patch.compatiblePackages?.single { compatiblePackage -> compatiblePackage.name == `package` }?.versions?.let { - it.forEach { version -> merge(version, 1, Integer::sum) } - } - } - }.let { commonMap -> - commonMap.maxByOrNull { it.value }?.value?.let { - commonMap.entries.filter { mostCommon -> mostCommon.value == it } - .maxOfWith(FlexVerComparator::compare, Map.Entry::key) - } ?: "all" - } - - output.apply { - appendLine("### [\uD83D\uDCE6 `${`package`}`](https://play.google.com/store/apps/details?id=${`package`})") - appendLine("
\n") - appendLine(TABLE_HEADER) - patches.forEach { patch -> - val recommendedPatchVersion = if ( - patch.compatiblePackages?.single { it.name == `package` }?.versions?.isNotEmpty() == true - ) mostCommonVersion else "all" - - appendLine( - "| `${patch.patchName}` " + - "| ${patch.description} " + - "| $recommendedPatchVersion |" - ) - } - appendLine("
\n") - } - } - - StringBuilder(File("README-template.md").readText()) - .replace(Regex("\\{\\{\\s?table\\s?}}"), output.toString()) - .let(File("README.md")::writeText) - } -} \ No newline at end of file