variablenine Patches
July 26, 2026 · View on GitHub
Note
Personal fork. This is a personal fork of MorpheApp/morphe-patches, modified for personal use. It is not affiliated with, endorsed by, or supported by the Morphe project. Use the official Morphe patches unless you specifically want the changes below.
Changes from upstream
This bundle is the upstream Morphe patches plus two YouTube features:
🧠 Hide brainrot comments
Hides low-effort meme spam comments — "anti spiral viral", "anti anti spiral", "fix mojang bedrock" and their reshuffles — while keeping genuine comments that merely mention those words (an Anti-Spiral anime discussion, or real Bedrock parity feedback, both survive).
It is not a keyword blacklist. BrainrotDetector normalizes the text (Unicode NFKD, leetspeak
and homoglyph folding, letter-spacing collapse, repeat collapse, concatenation splitting) and
then scores meme-lexicon density, so f1x m0jang b3dr0ck, s p i r a l, and antiiii spiraaaal are all caught, while a comment with real content around the same words is not.
BrainrotCommentFilter applies it to both the expanded comment list and the collapsed
preview teaser, scoring each buffer segment separately so surrounding UI strings can't dilute
a short spam comment.
Registered in the Hide layout components patch. Setting: Comments → Hide brainrot comments (on by default).
🐱 Cat lock
Adds a cat button to the top of the video player that locks the screen, so a pet can watch bird videos without swiping the video away, pausing, or hitting anything else. A transparent full-window overlay swallows every touch; player swipe controls (brightness/volume) are suppressed too, and the screen is kept awake while locked.
To unlock, quickly tap alternating opposite sides of the screen — 6 alternating taps, each within 700 ms of the last. Repeated taps on the same side (what a cat actually does) never unlock it, and taps in the middle third are ignored.
Its own patch. Setting: Player → Cat lock button (off by default — turn it on to show the button).
Fork infrastructure
- Rebranded bundle (
app.variablenine, "variablenine Patches") — GPLv3 §7 requires derivative works to carry their own branding, so the Morphe name and logo are not reused. - Removed upstream's release steps that drive Morphe's own infrastructure (a deploy dispatch to
MorpheApp/morphe-websiteand an FCM push to Morphe's users) and the Crowdin translation-sync workflows — all of them need Morphe's secrets and only ever failed here. - CI workflow permission fixes for running the release automation in this repository.
All modifications and their dates can be found in the Git history, per GPLv3 §5(a).
Usage
Add this repository as a patch source in Morphe:
https://github.com/variablenine/morphe-patches
Then patch YouTube as usual:
- Hide brainrot comments requires the Hide layout components patch. It works alongside upstream's Hide comments by keywords — leave that off to rely on the filter alone.
- Cat lock is its own patch; after patching, enable Player → Cat lock button in Morphe settings to show the button.
Staying current with upstream
The fork has no shared history with upstream, so it tracks it by overlaying each new upstream
stable release and re-applying a fork delta patch. The procedure, state markers, and rules
live in .fork/SYNC.md; a scheduled routine runs it daily and only acts when
upstream cuts a new stable release. CI compiling the bundle is the compatibility gate — a sync
is never released on a red build.
🩹 Patches list
v1.1.6 •
main• 132 patches total
📦 YouTube • 74 patches
🎯 Supported versions:
| 🧪 21.29.366 | 🧪 21.28.204 | 🧪 21.26.360 | 🧪 21.05.265 | 21.04.223 | 20.51.39 | 20.31.42 | 20.21.37 |
|---|
| 💊 Patch | 📜 Description | ⚙️ Options |
|---|---|---|
| Add to queue | Overrides the feed flyout 'Play next in queue' with the Morphe video queue. | |
| Alternative thumbnails | Adds options to replace video thumbnails using the DeArrow API or image captures from the video. | |
| Ambient mode | Adds options to bypass power saving restrictions for Ambient mode and disable it entirely or in fullscreen. | |
| Bypass image region restrictions | Adds an option to use a different host for user avatar and channel images and can fix missing images that are blocked in some countries. | |
| Bypass link redirects | Adds an option to bypass redirects and open the original link directly. | |
| Captions | Adds an option to disable captions from being automatically enabled or to set caption cookies. | |
| Cat lock | Adds a cat button to the video player that locks the screen so a pet can watch without accidentally swiping the video away; unlock by quickly tapping alternating opposite sides of the screen. | |
| Change form factor | Adds an option to change the UI appearance to a phone, tablet, or automotive device. | |
| Change header | Adds an option to change the header logo in the top left corner of the app. | • Custom header logo |
| Change start page | Adds an option to set which page the app opens in instead of the homepage. | |
| Check watch history domain name resolution | Checks if the device DNS server is preventing user watch history from being saved. | |
| Copy video link | Adds options to display buttons in the video player to copy video links. | |
| Custom branding | Adds options to change the app icon and app name. Branding cannot be changed for mounted (root) installations. | • App name • Custom icon |
| Custom player overlay opacity | Adds an option to change the opacity of the video player background when player controls are visible. | |
| Disable DRC audio | Adds an option to disable DRC (Dynamic Range Compression) audio. | |
| Disable QUIC protocol | Adds an option to disable QUIC (Quick UDP Internet Connections) network protocol. | |
| Disable Shorts resuming on startup | Adds an option to disable Shorts from resuming on app startup when Shorts were last being watched. | |
| Disable double tap actions | Adds an option to disable player double tap gestures. | |
| Disable fullscreen gestures | Adds options to selectively disable gestures for entering and exiting fullscreen mode. | |
| Disable haptic feedback | Adds an option to disable haptic feedback in the player for various actions. | |
| Disable layout updates | Adds an option to disable server side layout updates and use an older UI. | |
| Disable player popup panels | Adds an option to disable panels (such as live chat) from opening automatically. | |
| Disable rolling number animations | Adds an option to disable rolling number animations of video view count, user likes, and upload time. | |
| Disable sign in to TV popup | Adds an option to disable the popup asking to sign into a TV on the same local network. | |
| Disable video codecs | Adds options to disable HDR and VP9 codecs. | |
| Double tap to seek | Adds additional double-tap to seek values to the YouTube settings menu. | |
| Downloads | Adds support to download videos with an external downloader app using the in-app download button or a video player action button. | |
| Enable debugging | Adds options for debugging and exporting Morphe logs to the clipboard. | |
| Exit fullscreen mode | Adds options to automatically exit fullscreen mode when a video reaches the end. | |
| Force original audio | Adds an option to always use the original audio track. | |
| GmsCore support | Allows the app to work without root by using a different package name when patched using a GmsCore instead of Google Play Services. | |
| Hide Shorts components | Adds options to hide components related to Shorts. | • Hide Shorts app shortcut • Hide Shorts widget |
| Hide ads | Adds options to hide general ads, Premium promotions and video ads. | |
| Hide autoplay preview | Adds an option to hide the autoplay preview at the end of videos. | |
| Hide end screen cards | Adds an option to hide suggested video cards at the end of videos. | |
| Hide end screen suggested video | Adds an option to hide the suggested video at the end of videos. | |
| Hide info cards | Adds an option to hide info cards that creators add in the video player. | |
| Hide layout components | Adds options to hide general layout components. | |
| Hide player flyout menu components | Adds options to hide menu components that appear when pressing the gear icon in the video player. | |
| Hide player overlay buttons | Adds options to hide the player Cast, Autoplay, Captions, Previous & Next buttons, and the player control buttons background. | |
| Hide related video overlay | Adds an option to hide the related video overlay shown when swiping up in fullscreen. | |
| Hide related videos | Adds options to hide related videos. | |
| Hide timestamp | Adds an option to hide the timestamp in the bottom left of the video player. | |
| Hide video action buttons | Adds options to hide video action buttons in fullscreen and portrait modes. | |
| Loop video | Adds an option to loop videos and display loop video button in the video player. | |
| Media notification controls | Adds options to disable the seekbar and previous/next buttons in the media notification and headphone controls. | |
| Miniplayer | Adds options to change the in-app minimized player. Patching 21.28.206 and lower has more miniplayer types to choose from. | |
| Navigation bar | Adds options to hide and change the bottom navigation bar (such as the Shorts button) and the upper navigation toolbar. Patching version 20.21.37 and lower also adds a setting to use a wide searchbar. | |
| Network proxy | Adds settings to route supported network requests through an HTTP or HTTPS proxy. | |
| Open Shorts in regular player | Adds options to open Shorts in the regular video player. | |
| Open channel of live avatar | Adds an option to prevent a channel's current live video from opening when tapping its avatar. | |
| Open links externally | Adds an option to always open links in your browser instead of with the in-app browser. | |
| Open system share sheet | Adds an option to always open the system share sheet instead of the in-app share sheet. | |
| Open videos fullscreen | Adds options to automatically open videos in fullscreen portrait or landscape mode. | |
| Override YouTube Music buttons | Overrides YouTube Music buttons to open Morphe Music or any compatible third-party client. | |
| Play all | Adds an option to play all the videos from a channel and to display play all button in the video player. | |
| Playback speed | Adds options to customize available playback speeds, set a default playback speed, and show a speed dialog button in the video player. | |
| Reload video | Adds an option to display reload video button in the video player. | |
| Remove background playback restrictions | Removes restrictions on background playback, including playing kids videos in the background. | |
| Remove viewer discretion dialog | Adds an option to remove the dialog that appears when opening a video that has been age-restricted by accepting it automatically. This does not bypass the age restriction. | |
| Return YouTube Dislike | Adds an option to show the dislike count of videos with Return YouTube Dislike. | |
| Sanitize sharing links | Removes the tracking query parameters from shared links. | |
| Save to watch later | Adds an option to display save to watch later button in the video player. | |
| Seekbar | Adds options to show old seekbar thumbnails, disable precise seeking when swiping up on the seekbar, slide to seek instead of playing at 2x speed when pressing and holding, tapping the player seekbar to seek, hiding the video player seekbar, enabling seeking in livestreams, and expanding the livestream DVR duration. | |
| Settings menu filter | Adds an option to hide items on the standard YouTube settings screen by their visible name. | |
| Shorts autoplay | Adds options to automatically play the next Short. | |
| SponsorBlock | Adds options to enable and configure SponsorBlock, which can skip undesired video segments such as sponsored content. | |
| Spoof app version | Adds an option to trick the app into thinking you are running an older version. | |
| Spoof device dimensions | Adds an option to spoof the device dimensions which can unlock higher video qualities. | |
| Spoof video streams | Adds options to spoof the client video streams to fix playback. | |
| Swipe controls | Adds options to enable and configure volume and brightness swipe controls. | |
| Theme | Adds options for theming and applies a custom background theme (dark background theme defaults to pure black). | • Dark theme background color • Light theme background color |
| Video quality | Adds options to set default video qualities and always use the advanced video quality menu. | |
| Voice over translation | Adds additional voice over languages using text-to-speech synchronized to the video playback. |
📦 YouTube Music • 37 patches
🎯 Supported versions:
| 🧪 9.28.51 | 🧪 9.26.51 | 🧪 9.25.50 | 9.15.51 | 8.51.51 | 7.29.52 |
|---|
| 💊 Patch | 📜 Description | ⚙️ Options |
|---|---|---|
| Bypass certificate checks | Bypasses certificate checks which prevent YouTube Music from working on Android Auto. | |
| Change header | Adds an option to change the header logo in the top left corner of the app. | • Custom header logo |
| Change miniplayer color | Adds an option to change the miniplayer background color to match the fullscreen player. | |
| Change start page | Adds an option to set which page the app opens in instead of the homepage. | |
| Check watch history domain name resolution | Checks if the device DNS server is preventing user watch history from being saved. | |
| Crossfade | Adds a true dual-player crossfade between consecutive tracks. Requires YouTube Music 9.00 or newer; on older versions the patch is a no-op. | |
| Custom branding | Adds options to change the app icon and app name. Branding cannot be changed for mounted (root) installations. | • App name • Custom icon |
| Disable DRC audio | Adds an option to disable DRC (Dynamic Range Compression) audio. | |
| Disable QUIC protocol | Adds an option to disable QUIC (Quick UDP Internet Connections) network protocol. | |
| Disable dislike redirection | Adds an option to prevent skipping to the next track when the dislike button is pressed. | |
| Downloads | Adds support to download songs with an external downloader app using the in-app download button. | |
| Enable debugging | Adds options for debugging and exporting Morphe logs to the clipboard. | |
| Enable exclusive audio playback | Enables the option to play audio without video. | |
| Enable forced miniplayer | Adds an option to enable forced miniplayer when switching between music videos, podcasts, or songs. | |
| Enable swipe to dismiss miniplayer | Adds an option to enable dismissing the miniplayer by swiping down on it. | |
| Force original audio | Adds an option to always use the original audio track. | |
| GmsCore support | Allows the app to work without root by using a different package name when patched using a GmsCore instead of Google Play Services. | |
| Hide ads | Adds options to hide fullscreen ads, Premium promotions and video ads. | |
| Hide buttons | Adds options to hide the cast, history, notification, and search buttons. | |
| Hide filter bar | Adds an option to hide the filter bar at the top of the homepage. | |
| Hide flyout menu components | Adds options to hide individual items from the player and queue flyout menus. | |
| Hide layout components | Adds options to hide general layout components. | |
| Hide music action buttons | Adds options to hide action buttons under the player. | |
| Miniplayer previous and next buttons | Adds options to show previous and next track buttons in the miniplayer. | |
| Navigation bar | Adds options to hide navigation bar, labels and buttons. | |
| Network proxy | Adds settings to route supported network requests through an HTTP or HTTPS proxy. | |
| Remember repeat state | Adds an option to remember the repeat state when playing a new track or playlist. | |
| Remember shuffle state | Adds an option to remember the shuffle state when playing a new track or playlist. | |
| Remove background playback restrictions | Removes restrictions on background playback, including playing kids videos in the background. | |
| Return YouTube Dislike | Adds an option to show the dislike count of tracks with Return YouTube Dislike. | |
| Sanitize sharing links | Removes the tracking query parameters from shared links. | |
| Scrobbling | Adds options to add played tracks to Last.fm and ListenBrainz. | |
| Settings menu filter | Adds an option to hide items on the standard YouTube Music settings screen by their visible name. | |
| SponsorBlock | Adds options to enable and configure SponsorBlock, which can skip non-music segments. | |
| Spoof app version | Adds an option to trick the app into thinking you are running an older version. | |
| Spoof video streams | Adds options to spoof the client video streams to fix playback. | |
| Theme | Adds options for theming and applies a custom background theme (dark background theme defaults to pure black). | • Dark theme background color |
📦 Reddit • 18 patches
🎯 Supported versions:
| 🧪 2026.29.0 | 🧪 2026.28.0 | 🧪 2026.24.0 | 2026.14.0 | 2026.04.0 |
|---|
| 💊 Patch | 📜 Description | ⚙️ Options |
|---|---|---|
| Custom branding name for Reddit | Changes the Reddit app name to the name specified in patch options. | • App name |
| Custom font | Adds an option to replace Reddit Sans / Roboto with a custom TTF or OTF font file at runtime. | |
| Disable modern home | Adds an option to disable the modern home UI. This patch works with Reddit 2026.24.0 and earlier. | |
| Disable screenshot popup | Adds an option to disable the popup that appears when taking a screenshot. | |
| Force system font | Adds an option that renders Reddit with the device system font instead of Reddit Sans / Roboto. | |
| Hide Ask button | Adds an option to hide Ask button in the search bar. | |
| Hide Reddit search | Permanently hides the Reddit search in the contextual menu. This patch does not work with root mounting | |
| Hide Trending shelves | Adds an option to hide the Trending shelves from feed and search suggestions. | |
| Hide ads | Adds options to hide ads. | |
| Hide communities shelf | Adds an option to hide the related or suggested communities shelf in subreddits. | |
| Hide navigation buttons | Adds options to hide buttons in the navigation bar. | |
| Hide sidebar components | Adds options to hide the sidebar components. | |
| Open links directly | Adds an option to skip over redirection URLs in external links. | |
| Open links externally | Adds an option to always open links in your browser instead of with the in-app-browser. | |
| Remove subreddit dialog | Adds options to remove the NSFW community warning and notifications suggestion dialogs by dismissing them automatically. | |
| Sanitize sharing links | Adds an option to sanitize sharing links by removing tracking query parameters. | |
| Show view count | Adds an option to show the view count of Posts. | |
| Spoof signature | Spoofs the signature of the app to fix notification issues. |
🌐 Universal • 3 patches
| 💊 Patch | 📜 Description | ⚙️ Options |
|---|---|---|
| Change package name | Appends ".morphe" to the package name by default. Changing the package name of the app can lead to unexpected issues. | • Package name • Update permissions • Update providers |
| Disable Play Store updates | Disables Play Store updates by setting the version code to the maximum allowed. This patch does not work if the app is installed by mounting and may cause unexpected issues with some apps. | |
| Override certificate pinning | Overrides certificate pinning, allowing to inspect traffic via a proxy. |
Contributing
This is a personal repository and does not accept contributions. If you want to contribute to Morphe, see the upstream MorpheApp/morphe-patches repository; to publish your own patches, see the patches template.
📜 License
This repository contains Morphe Patches code (itself based on the prior work of ReVanced), licensed under the GNU General Public License v3.0 with additional conditions under GPLv3 Section 7:
- Attribution (7b): Any use of this code, including derivative works, must preserve all original notices and disclaimers.
- Name & Branding Restrictions (7c & 7e): Derivative works must use their own distinct branding. The "Morphe" name, logos, and trademarks may not be used for the branding or title of derivative works.
See the LICENSE file for full GPLv3 terms and the NOTICE file for full conditions of GPLv3 Section 7. Modifications in this fork are likewise licensed under GPLv3.