Skip to content

Latest commit

 

History

453 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hushfacebook. Keep the people. Cut the noise.

Version 0.4.0 License GPL-3.0 Platform Android 11+ Facebook 580.0.0.51.74 For Morphe Manager 1.32.0 or newer

Buy me a coffee on Ko-fi

Hushfacebook

Hushfacebook is a Morphe patch bundle for Android that takes the clutter out of Facebook and puts useful controls back in your hands.

The latest release is v0.4.0, with 43 patches. It includes all changes since v0.3.4, among them clone and AMOLED fixes, a no-limit feed refresh option and cancellable saves in settings, as the changelog describes.

Add to Morphe | Download a release | Browse the patches

Why use it

  • A quieter feed. Sponsored and suggested posts disappear, along with ads in Stories, Reels, and Watch.
  • Less tracking. Selected ad telemetry and background ad downloads stop. Common trackers also come off links you open or share.
  • Media you can keep. Save videos from stories, Reels, your feed and Watch at the best quality Facebook streams, or cap them at a lower one to save space. A save shows its progress and you can cancel it.
  • Controls that recover. Every runtime feature has a switch. Pause mode, automatic safe mode, settings backups, and privacy-filtered diagnostics help when Facebook changes.

The project brings the Facebook patches from Morphe sources into one maintained bundle. Most started with Andrew Liang's patches and were rewritten here with fixes. The feed filter also removes promoted posts using the approach from FroggoMorphePatches. Its build, settings screen, and release checks share a foundation with the sister project Hushfeed. See Where the patches come from for the full provenance.

This project has no connection to Meta or to the Morphe project. Neither endorses it, and neither wrote it.

Install

  1. Install Morphe Manager 1.32.0 or newer.
  2. Add Hushfacebook as a patch source: https://morphe.software/add-source?github=SysAdminDoc%2FHushfacebook
  3. Get Facebook 580.0.0.51.74 from APKMirror and take the bundle labelled (arm64-v8a) (240-640dpi) (Android 11+), a .apkm file. That's build 475019344, the one these patches are checked against. APKMirror has several other arm64-v8a builds of the same version, and Morphe Manager warns about those (Unsupported Version explains why). Facebook 577.0.0.50.72 works too, in its (arm64-v8a) (360-480dpi) (Android 11+) bundle.
  4. In Morphe Manager, pick that file, keep the default patch selection or change it, and patch.

There are 50 patches for com.facebook.katana. They're checked against the arm64-v8a builds for Android 11 and newer, and that's the only range Hushfacebook supports. Meta's builds for Android 9 (arm64-v8a) and Android 8 (armeabi-v7a) keep all of their code except a small startup part in a compressed archive, which the patcher can't read, so not one of the patches applies to them.

Facebook releases a new version about once a week, and each one renames most of its code. Every patch here finds what it changes by names Facebook keeps (its GraphQL model classes, log strings, enum names, manifest components) rather than by the names that change, which is why most of them carry over from one build to the next. When one doesn't, patching stops with a message naming what it couldn't find, instead of producing an app that quietly does nothing. Four patches work down a list of separate targets instead: Block background ad prefetch, Block ad telemetry, Disable Audience Network and Hide suggested and promoted posts. They stop only when a build has none of the list. If it has some, they apply to what's there and name each missing target in the patch log. Facebook 580 dropped six of the feed units the suggested posts patch looks for, so patching 580 lists those six. Please report a stop, or a missing target beyond those six.

Keep your signing key

Morphe Manager signs the patched Facebook with a key it makes on your phone. Android installs an update over your patched Facebook only when the update carries that same key, so the key is what lets you update without losing Facebook's data.

  • Back it up right after your first patch. In Morphe Manager, open Settings → System → Import & export → Signing key and tap Export. The Export button only appears once you've patched something. Keep the Morphe.keystore file somewhere private, because anyone who has it can sign an APK your phone will accept as an update. Morphe's settings backup doesn't include the key.
  • On a new phone, import it before you patch anything. It's the same dialog. Reinstalling Morphe Manager or clearing its storage makes a new key, and without your exported copy nothing you patched earlier can be updated in place.
  • A different key means starting over. Android refuses an update signed with another key. Unless you use Root Mount, the only way forward is to uninstall the patched Facebook, and that deletes its data. You'll have to sign in again, and anything kept only in the app is gone. A Root Mount install sits over Meta's own Facebook, so a key change doesn't touch its data.

Morphe's own guide is Backup and keystore.

Android developer verification

Google is starting to require that Android apps come from registered developers. From September 30, 2026 the check runs in Brazil, Indonesia, Singapore and Thailand, and only on installs from seven app stores: Google Play, HONOR App Market, OPPO App Market, Galaxy Store, Palm Store, V-Appstore and GetApps (Google's overview). Google's FAQ says apps that are sideloaded aren't covered yet, and an install from Morphe Manager is a sideload. In 2027 Google plans to take the check global, to all apps on certified Android devices. Installs over ADB stay exempt.

Once it does reach sideloads, a patched Facebook won't count as registered. It keeps Meta's package name but carries your key, and for a package name someone else already holds, Google's answer is to use a different name or to file a request that goes through extra review, with no promised outcome. Two ways in stay open:

  • The advanced flow. For people who accept the risk, Google added a setting to allow apps from unverified developers, under Settings → System → Developer options → Allow apps from unverified developers (Google's help page). Turning it on takes a one-time 24-hour wait, and each install afterwards still shows a warning with an Install anyway button. When the wait is over, your phone asks whether to keep the setting on for seven days or indefinitely. Pick indefinitely, because once it lapses, updates to the patched Facebook fail. Google's pages describe the steps a little differently, so follow what your phone shows.
  • ADB from a computer. Google says apps installed with adb install don't need verification and the 24-hour wait doesn't apply to them. In Morphe Manager, turn on Keep patched APKs under Settings → System, export the patched copy, and install it with adb install -r <file>.apk. The same-key rule above still applies.

Neither path can be tried against a real block until the check reaches sideloads, so neither has been tested here. If you get to try one, please open an issue saying what happened.

Patches

Patch What it does
AMOLED black theme Makes Facebook's dark mode black instead of dark grey. Turn on dark mode in Facebook first.
Block ad telemetry Stops Facebook watching for screenshots of ads and reporting which apps you install for ad attribution.
Block background ad prefetch Stops Facebook downloading ads and its ad model in the background. That saves data and battery. The ads don't take up storage either.
Block background-return feed refresh Keeps your feed position when you return to Facebook within ten minutes, or for any time away with No time limit on. Pull to refresh and a fresh launch still work.
Block promotional notifications Keeps the kinds of notification you pick off your phone, such as trending videos, memories and birthdays. Each kind has its own switch, and they all start off. Messages, friend requests, comments, mentions and login alerts always come through.
Clean up Reels Hides the Follow button on reels and the comment and reaction previews under them. Buttons such as Remix, Use template, Add yours and Stars go too, and each part has its own switch.
Default playback quality Plays videos, reels and video stories at the quality you choose in Hushfacebook's settings, such as Data saver or up to 720p, instead of the one Facebook picks as it plays. A quality you pick in a video's own menu still wins for that video.
Default comment order Opens comments in the order you choose in Hushfacebook's settings, Most relevant, Newest or All comments, instead of the one Facebook picks. An order you pick in a post's comments stays for that post, and links to a comment still open on it.
Disable Audience Network Stops Facebook serving ads to other apps. Those apps then show their own ads or none, and rewarded ads can fail.
Don't send reel watch history Stops sending Facebook the list of reels you've watched. It's used to rank your Reels feed, and nobody else sees it. Reels you've already watched may come back in the feed.
Download any reel Adds a Download button beside every reel. Videos save at the Download quality you set, best by default.
Download any video Adds Download to phone to the menu of videos in the feed and in Watch, below Facebook's own items. Videos save at the Download quality you set, best by default.
Download any story Adds Save to the menu of any story, including stories with music. Videos save at the Download quality you set, best by default.
Hide AI-detected posts Removes feed posts that Facebook's own detection marked as made with AI, and the reels and Watch videos it flagged the same way. A third switch also removes posts their creator labelled as AI. Every switch starts off, so turn them on in Hushfacebook's settings.
Hide sponsored Marketplace listings Removes the ads and boosted listings from Marketplace's feed and search results. The feed's request asks Facebook to leave them out and the requests that fetch only ads don't go out. Ads that come back among search results are taken out before Marketplace shows them. The listings people post stay.
Hide posts by words Hides feed posts whose text has a word or phrase you list, unless it also has one from your keep list. Hushfacebook never sends your words anywhere. The switch starts off, so turn it on and add words in Hushfacebook's settings.
Hide sponsored posts Removes sponsored and promoted posts from the news feed, with no gap left behind.
Hide sponsored profile posts Removes the ads between the posts on someone's profile or a Page. The profile's own posts stay.
Hide sponsored reels Removes ads from Reels and Watch, including product banners over a reel and ads inside a video.
Hide sponsored search results Removes the ads from Facebook's search results, the sponsored posts and ad cards between the people, pages and posts you searched for.
Hide sponsored stories Removes ad cards from the story viewer, so swiping through stories only shows stories people posted.
Hide Stories tray Removes the row of stories at the top of the news feed, Create story included.
Hide suggested stories Removes the stories Facebook suggests from people and Pages you don't follow, the ones marked Suggested in the Stories tray. Your friends' stories, the Pages you follow and Create story stay.
Hide Reels in the feed Removes the rows of reels between posts in the news feed, and the reels Facebook adds where your feed ends. A reel a friend posts stays.
Hide the Reels tab Takes the Reels tab, which some accounts call Video, off the tab bar. Reel links and the reels in your feed still open. Facebook's own Hide in its tab bar settings keeps working, and a change to the switch shows once Facebook restarts.
Hide suggested and promoted posts Removes what Facebook adds to the feed besides ads: "Suggested for you" posts, "People you may know", suggested groups, "Stories you might like", "Pages you may like" and its own upsells. In-feed surveys go too, and so does the "People you may know" row on your own profile. Each kind has its own switch.
Hide Meta AI in search Removes the Meta AI answer and the Ask Meta AI prompts Facebook adds to search results, and stops search suggestions from opening Meta AI by themselves. People, groups, pages and posts stay, and the Meta AI button still works.
Hide the Get Messenger card Hides the "Get the Messenger app" card at the top of Chats while Messenger is installed. Facebook only counts a Messenger signed with its own key, so a re-signed Facebook shows the card even with Messenger right there. Without Messenger the card stays.
Hide Menu promotions Hides the Upgrades and Also from Meta sections of Facebook's Menu. Each has its own switch. Settings, Help and support, your shortcuts and the rest of the Menu stay.
Hold a reel for 2x Holding a reel plays it at double speed until you let go. The hold takes the place of Facebook's long-press menu, which the reel's more button still opens.
Hushfacebook in the Menu Adds a Hushfacebook settings row to Facebook's Menu, at the end of Settings and privacy. The logo long press and the launcher shortcut still open the settings too.
Hushfacebook settings Adds Hushfacebook settings to Facebook. Long-press the Facebook logo at the top of your feed, or Facebook's launcher icon, to turn features on or off, pause Hushfacebook, save your switches to a file or load them, and export diagnostics. The licenses are there too.
Install beside Meta's apps Lets the official Messenger, Facebook Lite, Business Suite and Workplace install beside the patched Facebook. Facebook shares two permissions with them, and Android lets only one signing key own a permission, so this patch renames Facebook's. A Root Mount install doesn't need it.
Keep the reel speed A playback speed you pick in a reel's menu stays for the next reels until you pick another or Facebook restarts.
Marketplace only Leaves only Marketplace, Notifications and your profile or Menu in the tab bar, and opens Facebook on Marketplace. Home with the news feed, Video, Friends, Feeds, Groups, Gaming and Events go. Notifications and links still open where they lead. Its switch starts off, so turn it on under Opening Facebook in Hushfacebook's settings.
Material You theme Gives Facebook's dark mode the colours of your wallpaper on Android 12 and newer, and a fixed blue palette on Android 11. Light mode stays as it is. Turn on dark mode in Facebook first.
Open links in external browser Opens web links in your default browser instead of Facebook's in-app browser, without Facebook's click tracker or the fbclid tag it adds. Facebook pages still open in the app.
Open Messenger from the top bar Lets the Messenger icon at the top of Facebook open the Messenger app instead of Facebook's own Chats. Without Messenger installed, Chats opens as before, and a long press on the icon still does what Facebook does with it. Its switch starts off, so turn it on under Chats in Hushfacebook's settings.
Open on a chosen tab Opens Facebook on the tab you pick in Hushfacebook's settings when you start it from its icon. It's Marketplace unless you change it. Notifications and links still open where they lead. Its switch starts off, so turn it on under Opening Facebook.
Restore screens on re-signed builds Makes profiles and some Settings pages open again on a re-signed build, and lets a Messenger, Messenger Lite or Facebook Lite you patch with this build's own key sign in through it, the same as the real Meta app would. A Root Mount install doesn't need this patch.
Resume long videos A video longer than two minutes that you left partway picks up where you left it the next time it plays. Reels, live videos and ads start as usual. Its switch starts off.
Sanitize sharing links Takes Facebook's tracking tags, such as mibextid, off the links you share or copy. The post or reel a link opens stays the same. A facebook.com/share/ link is made for one share, so Facebook can still trace it back to you.
Stop Story auto-advance Keeps each Story on screen until you tap or swipe. Turn the switch off for Facebook's timing.
Stop update prompts Stops Facebook's own update prompts on a patched build, which can't install Meta's updates anyway. Meta App Manager's update promotions and the push message that has it look for an update go, and so do chat promotions aimed at older versions.
Tag suggestions only after @ Stops Facebook offering people to tag while you type ordinary words in posts and comments. Typing @ still brings up the list. Photo tags and your text aren't touched.
Tap to play Videos, reels, stories and music wait for your tap instead of starting by themselves. A tap plays as usual. While its switch is on, Facebook's own Autoplay setting reads Off.
Turn off double tap to like Stops a double tap on a reel or a video from liking it, and the heart doesn't show. A single tap still plays or pauses, and the Like button still likes.
Use the phone's emoji Draws emoji with your phone's own emoji font instead of Meta's, so the ones in posts, comments and chats look like the ones on your keyboard, big chat emoji included. Reactions and stickers stay as they are. Restart Facebook after changing the switch.
Use the system font Draws Facebook's own text in your phone's font instead of Meta's Optimistic typeface, or in a TrueType or OpenType file you pick in Hushfacebook's settings. Icons and emoji keep their fonts, and so does the text you put on a story. Restart Facebook after changing the font.
View stories anonymously Keeps you off the viewer list of the stories you watch, because Facebook isn't told which ones you've seen. Replying or reacting still shows you, and stories you've watched keep the ring that marks them as new.

Download any video, AMOLED black theme, Material You theme, Hide Stories tray, Hide Reels in the feed, Hide the Reels tab, Block background-return feed refresh, Stop Story auto-advance, View stories anonymously, Clean up Reels, Don't send reel watch history, Use the system font, Use the phone's emoji, Open on a chosen tab, Tap to play, Turn off double tap to like, Hold a reel for 2x, Default comment order, Default playback quality and Tag suggestions only after @ are off by default. Everything else is on, though a few go in with their switches off. Hide AI-detected posts has three of them, two under News feed and the reels one under Reels and Watch, Resume long videos has one, under Playback, and Open Messenger from the top bar has one, under Chats. Block background-return feed refresh keeps the ten-minute limit until you turn on No time limit under News feed. Each waits until you turn it on in Hushfacebook's settings. The creator-label switch and long-video resume still need signed-in checks, and the Reels filter still needs a reel Facebook has flagged. Hide posts by words has nothing to hide until you list some words, so its switch and its two lists wait for you under News feed. Block promotional notifications goes in with all six of its switches off as well, since each one drops a whole kind of notification. They're under Notifications.

Dark mode themes

Material You theme colours Facebook's dark mode with the palette Android 12 and newer take from your wallpaper. Each grey keeps how light it is and picks up the palette's tint, and Facebook's blue links and highlights take its accent colour, so text stays as easy to read as Facebook made it. Android 11 has no wallpaper palette, so there it uses a fixed one built from Facebook's own blue. Light mode keeps Facebook's colours, and a colour the patch doesn't recognise, like one a server sends for a single screen, is left as it came.

The two themes work alone or together. With both, backgrounds stay true black and the palette colours the cards, text, icons and dividers on top. The Hushfacebook settings screen follows the palette as well, dark or light to match your phone. Without Material You theme it stays black.

Saving videos

While a save runs, a notification shows how far it's got, with a Cancel button. Facebook has to be allowed to post notifications for it. You can also turn off its "Hushfacebook saves" channel in Facebook's notification settings, and a save then runs with just a message when it starts and one when it ends. Either way, every save that's running is listed at the top of Downloads in Hushfacebook's settings, with what it's doing and a Cancel button of its own. A cancelled save leaves nothing behind. One that Android stops halfway leaves nothing in the gallery either. The next time Facebook starts, it clears what that save left in its cache and takes down its notification.

Marketplace settings preview

Marketplace only brings in Open on a chosen tab as a dependency. Both runtime switches start off, so keeping the default patch selection leaves Facebook's usual navigation in place.

The Opening Facebook section, rendered offscreen at phone width. On a Galaxy S22 test phone, Marketplace opens at startup, listings and seller profiles open, and the message composer keeps the selected listing. Returning to regular Facebook restores all six tabs after a restart. Incoming notifications, shared-listing links and a signed-in Facebook 577 session still need checks.

Marketplace mode active, with quiet notifications, recovery and feed preloading controlsMarketplace mode off, with the saved start-tab controls available again

Settings

Hushfacebook overview with search, Pause and category pagesDownloads settings with quality, compatibility, folder and file name controls

There are three ways in. Inside Facebook, long-press the Facebook logo at the top of your feed. A tap on it still does what Facebook made it do. Or open Facebook's Menu, expand Settings and privacy and tap Hushfacebook settings, the last row there, when Hushfacebook in the Menu is in. From your home screen or app list, long-press Facebook's icon and tap Hushfacebook, the first item in that menu. If that item isn't there, open Facebook once so it can add it, then try again. Some launchers have no long-press menu at all, and the logo works there. When Facebook puts a long press of its own on the logo, such as the World Cup game it can open from there, Facebook's comes first and the icon is the way in. Related controls sit in rounded groups, with the build's status at the top. The screen lists the features this build carries:

  • A searchable overview. Open a category to see its controls. The six main categories are on the overview; the rest are under More settings. Search finds matching settings across every category, with switches you can change directly in the results. Back clears a search or returns to the category index before closing the screen. Your page and search survive rotation.
  • Pause on the overview. Pause or resume without hunting through the list. Changes take effect when Facebook restarts, and Undo cancels a pending change. Your saved choices stay in place. While Hushfacebook is paused, or a pause or its end is waiting on a restart, category pages and search results that show affected switches open with a short line saying so, with Resume or Undo right there.
  • A live file name example. The Video file name dialog shows how your format looks as you type. The example has no post details, so the actual author, post date and video ID can change the saved name.
  • A switch for each filter. Opening links in your browser and the download features have switches too. They take effect straight away, with no restart and no new patching, though a reel already on screen keeps the buttons it was built with, and a row of reels already in the feed stays until the feed loads fresh posts. A suggested story already in the Stories tray stays until Facebook loads the tray again. In Reels and Watch, the sponsored and AI filters work on each batch of reels as Facebook loads it, so reels already loaded stay as they are until the next batch. Three switches wait for a restart instead. Facebook builds the feed's fixed rows, the Stories tray among them, once when the feed is set up, so that switch takes effect when Facebook restarts. Text already on screen keeps its font until then, so the font and emoji switches wait for a restart too. While Hushfacebook is paused, a change waits until it's back on.
  • Hide posts with words you choose, under News feed, when Hide posts by words is in, with Words to hide and Words that keep a post below it. Each list takes one word or phrase per line, up to 50, each 2 to 60 characters long. A single character is enough for an emoji, a Chinese character, a kana or a Hangul syllable. A lone letter or digit isn't, since nearly every post has one. A post in the news feed goes when its own text, or the text of a post it shares, has one of your words to hide anywhere in it, even inside a longer word, and none of the words that keep a post. Capital letters don't matter, so SPOILER and spoiler are the same word. There are no wildcards or patterns, and every character means itself. A post with no text, like a photo on its own, always stays, and so does one whose text Hushfacebook can't read. It reads the words the author wrote rather than Facebook's translation of them, so it works the same whatever language Facebook is in. The switch starts off and both lists start empty. Your words never go into the diagnostic report or a log. The report only counts how many posts each list matched, and the Words to hide row says how many posts it has hidden since Facebook started.
  • Also hide posts labelled as AI, under News feed right below Hide AI-detected posts, when that patch is in. It starts off. Facebook puts its AI label next to the poster's name for one of two reasons: its own detection found AI in the post, or the person who posted it said so. Hide AI-detected posts goes by the first alone. With this switch on, a post goes for either, whether the switch above is on or not. Hushfacebook reads the same two flags Facebook's label reads, and a post whose flags it can't read stays. The diagnostic report counts the posts it read under Creator AI label flag.
  • Marketplace only is included in the default patch selection, with its switch off. Turn it on under Opening Facebook to keep Marketplace, Notifications and Profile/Menu in the tab bar. Home, Video/Reels, Friends, Feeds, Groups, Gaming and Events go after Facebook restarts. The switch shows whether the mode is active, needs a restart or is waiting for the tab bar. If Marketplace is hidden in Facebook's tab settings or Facebook hasn't supplied it for the account, the normal bar stays and the switch explains why. The chosen-start-tab controls are disabled while this mode is selected, and their values stay saved. Return to regular Facebook turns the mode off without changing other preferences; restart to restore the tabs. The patch includes the Menu settings entry, so open Menu, then Settings and privacy, then Hushfacebook settings. The launcher shortcut works too. Unknown tabs and incoming links stay available.
  • Quiet social notifications, below Marketplace only, is optional and starts off. While Marketplace mode is selected, it silences trending videos, memories, birthdays and friend suggestions. Messages and direct trading updates stay, as do unknown notification types. Group highlights and nearby-place alerts aren't added to this filter. The individual notification switches keep their saved values and work as before when Marketplace mode is off.
  • Skip feed preloading is an optional Marketplace setting. Once the tab bar has applied the mode, it skips the friendly-feed startup task and the screen-on feed prefetch task. It leaves both running when the mode is off, paused, waiting for a restart or unable to use Marketplace. Fetches that run before the tab bar is ready still go ahead. This does not block listing pages, profiles or conversations, and no data or battery saving has been measured.
  • Upgrading an older development build: Marketplace only and Open on a chosen tab now start off when no value was saved. Explicitly saved values and imported settings keep their choices. Older builds removed a switch's stored value when it matched their default, so an old default-on choice can't be distinguished from a feature that was never selected. Turn the desired switch back on once after upgrading, or import a settings backup that includes it.
  • Open on a chosen tab and Tab to open on, when that patch is in. Its runtime switch starts off, so turn it on to use the saved choice. Starting Facebook from its icon opens the tab you pick, which is Marketplace unless you change it. Home, Feeds, Video, Friends, Notifications and Menu are the others. Hushfacebook asks Facebook for the tab the way Facebook's own shortcuts do, so notifications and links still open where they lead, and a tab your tab bar doesn't have opens Home instead. It only acts as Facebook starts. Once Facebook is open, the tab you tap stays, and coming back to a Facebook that's still running picks up where you were. To take the Reels tab off the bar altogether, use Hide the Reels tab below, or Facebook's own setting: Settings, Tab bar, Customize the bar, then Hide next to Reels.
  • Hide the Reels tab, under Reels and Watch, when that patch is in. Its switch starts on, since picking the patch is the choice. After Facebook restarts, the Reels tab, which some accounts call Video, is gone from the tab bar, and every other tab stays where it was. Reel links, the reels in your feed and the Reels viewer still open. It works with Facebook's own Hide left alone, and it never undoes that Hide, so a Reels tab you hid in Facebook's tab bar settings stays hidden with the switch off too. When Tab to open on is set to Video, Facebook opens on Home while the tab is hidden, and that row says so. Turn the switch off, or pause Hushfacebook, and the tab comes back the next time Facebook starts.
  • Keep the reel speed, under Reels and Watch, when that patch is in. Its switch starts on. Pick a speed in a reel's menu and the reels after it play at that speed too, until you pick another one or Facebook restarts. Picking Normal goes back to Facebook's way, where every new reel starts at normal speed. The speed sticks to the place you picked it, so a speed picked in Reels carries on through Reels, whether your account has them in their own tab or in the Video tab, and a speed picked on a reel in your feed carries on through the feed's reels. Ads and live videos play at Facebook's own speed, and so does anything that isn't a reel. A reel you pause and start again stays at whatever it's at. Nothing is saved, so a restart always begins at normal speed.
  • Hold a reel for 2x, under Reels and Watch, when that patch is in. Its switch starts on, since picking the patch is the choice. Press and hold a playing reel anywhere and it plays at double speed until you lift your finger, then goes back to the speed it had. A tap still plays or pauses, and a double tap and the buttons on the side work as before. The hold takes the place of Facebook's long-press menu on reels, and the reel's more button still opens that menu. Ads keep the long-press menu.
  • Default comment order and Comment order, under Comments, when that patch is in. A post's comments open in the order you pick in the list: Most relevant, Newest or All comments, the names Facebook's own sort menu uses. The list starts at Facebook's choice, so nothing changes until you pick one. Hushfacebook asks for your order only where Facebook would otherwise pick one, so an order you pick in a post's comments still wins. That pick then stays with the post when its comments reload or you open them again, until Facebook restarts. A link to one comment, like a notification about a reply, opens in Facebook's order so the comment is where Facebook puts it, and a post opened on its own page keeps Facebook's order too. Facebook answers with the order it used, and that's the one the sort menu shows. What it does with a post that doesn't offer the order you picked hasn't been checked on a phone yet. With Debug logging on, the diagnostic report has a line for each of the first 40 comment requests saying what was asked for, and a count for every 50 after that.
  • Tag suggestions only after @, under Writing, when that patch is in. Facebook looks up people to tag for any longer word it takes for a name while you write a post or a comment, with or without an @ in front, and opens a list of them over your text. One tap in the wrong place and the word becomes a tag. With the switch on, only a word that starts with @ asks for people. Hashtags still come up after #, and tagging people in a photo or with Tag people happens on a screen of its own, which this doesn't touch. Your text is never changed. A list of people an earlier @ left open closes as soon as you type on, so it can't be tapped by mistake. That goes for words in any language. With Debug logging on, the diagnostic report has a line for each of the first 40 lookups it skipped and a count for every 50 after that.
  • Tap to play, under Playback, when that patch is in. Videos, reels, stories and music wait for you. The initial Reels play button clears when playback starts. A start goes ahead within a second of your tap, when you use the media controls in the notification or on the lock screen, when you drag the seek bar, and when the music picker you opened while making a post loops your song. Once something you tapped is playing, Facebook's own restarts of it go ahead too, until it's paused or the player moves on to another video. A swipe cancels the previous tap, so the next video waits even if you swipe immediately after pressing Play. A start through Facebook's visibility or resume triggers still waits. Opening the Reels tab can count as your tap and play the first reel. Facebook's own Autoplay setting reads Off while the switch is on, which is what makes the feed, Watch and the Reels controls draw their own play button. In Reels, a reel that's waiting shows that play button from the start, and one tap on it plays the reel. Nothing is written to that setting, so it reads what you chose again once the switch is off. With Debug logging on, the diagnostic report has a line for each of the first 40 starts, saying whether it went ahead, what Facebook called it and how long after your tap it came, and a count for every 50 after that.
  • Hide suggested stories, under Stories, when that patch is in. The Stories tray loses the stories Facebook suggests from people and Pages you don't follow, the ones with Suggested under the name. Hushfacebook goes by the two marks Facebook's own tray reads before it writes that word, a flag on the story and a label, not by the text, so it works in any language. Your friends' stories, the Pages you follow, your own story and Create story stay, and so does anything in the tray Hushfacebook doesn't recognise. The tray is filtered as Facebook loads it, so a change shows the next time it does. With Debug logging on, the diagnostic report counts each tray's stories by kind, never by whose they are.
  • Resume long videos, under Playback, when that patch is in. It starts off. Once it's on, a video longer than two minutes that you stop partway, by pausing it, closing it or moving on to something else, is remembered. The next time a player starts that video from the beginning, it jumps back to where you were. That happens once each time the video opens. Drag the seek bar before it happens and your spot wins, and so does a place Facebook carries over itself, like a feed video you tap into full screen or a link to a moment in a video. A stop in the first 15 seconds changes nothing, and one in the last 10 seconds counts as finishing, so the video starts from the beginning next time. Reels, live videos, ads, looping videos and songs are left alone. Hushfacebook keeps up to 200 videos for 30 days, each as the video's id and a position, in Facebook's own storage on your phone. They don't go into a settings file you save or into the diagnostic report, which only counts what was saved and resumed. With Debug logging on, the report also says where each resume landed and how long the video is, never which video it was.
  • Default playback quality and Playback quality, under Playback, when that patch is in. Videos, reels and video stories play at the quality you pick in the list. Data saver takes the lowest quality Facebook offers for a video, Up to 480p and Up to 720p the best at or under that, and Highest the best there is. A video with nothing at or under your pick plays the closest quality above it. The list starts at Auto, which leaves the choice to Facebook as a video plays, so nothing changes until you pick one. The qualities are the ones Facebook's own quality menu offers for each video, counted by the labels it gives them, so 720p means what that menu calls 720p. A quality you pick in a video's own menu still wins for that video, and a change here takes effect from the next video that starts. That menu may still show Auto for a video playing at your pick. With Debug logging on, the diagnostic report has a line for each of the first 40 videos saying which quality it started at out of the ones on offer.
  • Open the Messenger app, under Chats, when Open Messenger from the top bar is in. It starts off. Once it's on, a tap on the Messenger icon at the top of Facebook opens the Messenger app the way its icon on your home screen does, instead of Facebook's own Chats. It doesn't matter which key Messenger is signed with, so the Messenger from the Play Store works beside a patched Facebook. Without Messenger installed, or when Messenger won't start, Chats opens as before. A long press on the icon still does what Facebook does with it, so Facebook's own chats are one gesture away. Messenger opens on its own chat list, not on a particular chat.
  • Hide Upgrades and Hide Also from Meta, under Menu, when Hide Menu promotions is in. Each takes its own section out of Facebook's Menu, the list you open from the Menu tab or from the corner of your profile. Upgrades holds Facebook's offers, and Also from Meta links to Meta's other apps and shows ads for its headsets and glasses. Settings and privacy, Help and support, Log out and your shortcuts stay. Hushfacebook finds the two sections by the names Facebook's own code gives them, not by their titles, so the switches work whatever language Facebook is in. If a section still shows after you change its switch, restart Facebook.
  • Block trending video notifications, Block memory notifications, Block birthday notifications, Block group and Page highlights, Block "People you may know" and Block nearby and weather notifications, under Notifications, when Block promotional notifications is in. All six start off. Each keeps one kind of push notification from reaching your phone: trending videos and the reels Facebook picked for you, "On this day" memories, friends' birthdays, digests from the groups, Pages and creators you follow, friend suggestions, and alerts about places nearby and the weather. Hushfacebook tells them apart by the type Facebook's own code gives each notification, never by its text, so the switches work in any language. A type it doesn't know always comes through, and so do messages, friend requests, comments, replies, mentions, calls and login alerts. Android's own settings for Facebook's notification categories work too, since Facebook drops a notification whose category you've turned off there. Facebook's server decides which categories your account gets, though, and they don't always split these kinds out. With Debug logging on, the diagnostic report counts each kind of notification that arrived and the ones that were blocked.
  • Hide sponsored Marketplace listings, under Marketplace, when that patch is in. Marketplace asks Facebook for its feed and, in requests of their own, for the ads that go in it. With the switch on, the feed's request asks for no ads or boosted listings, and the requests for ads alone aren't sent, so Marketplace never gets them. It takes effect the next time Marketplace loads its feed, so pull the feed down to refresh it after you change the switch. With Debug logging on, the diagnostic report has a line for each of the first 40 Marketplace requests, naming the request and what was done to it, and a count for every 50 after that. Search works differently, since a search gets its ads back mixed in with the listings. With the switch on, those ads come out of the search's answer before Marketplace draws it, and the listings close up with no empty tile. The typeahead suggestions and your search history aren't touched. The next search you run shows a change of the switch. The diagnostic report counts what came out on its Marketplace search ads line, and with Debug logging on it has a line for each part of a search answer saying how many listings it held and how many ads came out, never what they were.
  • Download quality, for every video you save: Best (the default), 1080p, 720p, 480p, 360p or Smallest. A save takes the best version at or under the one you pick, the way Facebook's own quality menu labels them. When a video has nothing that low, it takes the closest one above, so a save never fails over it. Photos always save at full size.
  • Save videos other apps can open, a switch above Download quality that starts off. With it off, a video saves in whatever format Facebook streams its best picture in, and that can be AV1 or VP9 video in an MP4 file, which Android itself has read since Android 10. Some players and sharing apps reject AV1 or VP9 video, or xHE-AAC sound. Try it when WhatsApp won't take a saved video, or when a gallery or player plays one without sound. With the switch on, saves from Reels, Stories, the feed and Watch prefer a known H.264 video and AAC-LC or HE-AAC audio pair within your Download quality. That pair wins over a single MP4 whose codecs aren't known, even if the MP4 has a higher resolution. When Facebook offers no such pair, the save tries Facebook's single MP4 instead. That MP4's codecs aren't known, so it may not play everywhere either. With neither available, it keeps the original formats and records that fallback in diagnostics. Even with the switch off, downloads prefer AAC-LC or HE-AAC sound when available without reducing the picture's resolution. If the only sound can't be joined, the save falls back to the complete MP4 instead of making a silent video.
  • Save folder, the one folder every save goes to. Videos land in Movies/Facebook and photos in Pictures/Facebook until you pick another name. It takes a folder name, not a path, so slashes and other characters a folder can't hold become underscores, and dots or spaces at either end are dropped.
  • Video file name, the name each saved video gets. It starts as FB_VID_{date}, Facebook's own naming, so nothing changes until you edit it. {date} becomes the date and time of the save, like 20260925_143005, {video_id} the video's number on Facebook, {owner} the name of whoever posted it and {posted} the day it went up, like 20260925. So {owner}_{posted} saves a reel or a feed video as Some Page_20260925.mp4. When a save doesn't know one of them, it's left out. Android only numbers a repeated name so many times before it refuses the save, so a name with no token gets _{date} added, and one that counts on something the save doesn't know gets the date and time on the end. A name that's already in the save folder gets the time of the save on the end, so the second video one person posted that day saves as Some Page_20260925_143005.mp4. The poster's name is cleaned the way the folder is, and so is the whole name. A typed extension such as .mp4 is dropped, since the saved file's type decides it, and photos keep Facebook's FB_IMG_ names, which a video's name can't start with.
  • Font file, under Appearance with the Use the system font switch. Until you pick one, Facebook's text is drawn in your phone's font. The row opens Android's file picker. Choose a TrueType or OpenType font of up to 20 MB, a .ttc collection included, and Hushfacebook keeps a copy in Facebook's own storage, so the file you picked can move or go afterwards. A font with a weight axis is drawn at each weight Facebook asks for, and one without a bold or italic of its own gets Android's. A file Android can't draw with is turned down with a message and your font stays as it was. If the copy ever stops loading, your phone's font takes over. Use your phone's font drops the copy. Restart Facebook to see either change.
  • Supported links, under Links, in every build. Android opens facebook.com links in an app straight away only when facebook.com lists that app's signing key, and it lists Meta's, not yours. On Android 12 and later the row says what Android reports for this app: verified, all or some of Facebook's addresses selected by hand, none selected, or opening supported links turned off. A tap opens Android's Open by default page for the app, where you can select them. That sends the links here again, but it isn't Meta's verification and doesn't bring it back. Your browser and tracking switches stay as they are. Android 11 doesn't report any of this, so there the row opens the app's info page. When Android's answer can't be read, the row says so rather than guessing. Nobody has checked link routing on a phone yet.
  • Check for new Hushfacebook releases, under Updates. It's off until you turn it on. Then, once a day when Facebook starts, Hushfacebook asks GitHub for its latest release. When that's newer than yours, the status card at the top of the screen says so, along with the Facebook version it targets if that isn't the one you have. Update through Morphe Manager as usual. Check now asks straight away, with the switch on or off. Neither one downloads anything or posts a notification.
  • Pause Hushfacebook. From the next start, every one of those switches acts as if it were off and Facebook's own code runs in its place. That includes the release check, so a paused Facebook doesn't ask GitHub by itself, though Check now still works. Debug logging keeps working, and your settings stay as they are. Pause can't undo what was set when you patched, and the screen lists what stays in.
  • Debug logging and Export diagnostic report, for bug reports. The report leaves out web addresses, Facebook host names, @handles, numbers of 15 to 21 digits and the names Hushfacebook writes into its own messages. It also drops the value of any name it knows as a token, session, password, API key, cookie, signature or device ID, or as the ID of an account, post, story, comment, message or video, however short. That holds in plain text, JSON, escaped JSON and HAR-style name and value pairs, and a list or object under one of those names goes whole. After an account ID, the rest of its line goes too, up to the next name with an equals sign or colon, so a list of IDs written with spaces doesn't leave any behind. Whole Cookie and Authorization headers go, including a Bearer or Basic credential that carries on alone on the next line. A Bearer, OAuth or Basic credential written without a header goes too, when it has a digit or a symbol in it the way real ones do. It can't recognise a name or message written anywhere else, or a secret stored under a name it doesn't know, so read the report and remove anything private before sharing it. You don't need Debug logging for a report. Even with nothing logged it names the app's package and version code, the Android version and profile, the ABI, your Hushfacebook version and whether Hushfacebook is paused. It says, for every patch but the settings entry itself, whether this build has it and whether a switch runs it. For each of those whose hooks have run, it gives how often they ran, what they decided and the first thing they couldn't find. Debug logging adds a log of what happened, which helps with anything the counts don't explain. Failed saves and links no browser opened are in it too, and once the release check has been used, when it last asked and what it found.
  • Licenses, under More settings and About, has the notices of every project this is built on, with links you can open from the screen.

Morphe Manager can export your patch choices and your signing key, but not the switches on this screen. Export settings saves them, along with your download settings, the tab Facebook opens on, the order comments open in, the playback quality and your two word lists, to a JSON file wherever you pick, and Import settings reads one back, on this phone or a new one. Before anything changes, the screen says how many switches the file would change, what it does to the download settings, the start tab, the comment order and the playback quality, how many words each word list will hold, and how many entries in it this version doesn't know, which it skips. It never shows the words themselves. A damaged file or one from a newer Hushfacebook changes nothing. If the phone can't save an import, the message says whether your earlier settings are back, and the switches on the screen show what was kept. After an export, Hushfacebook reads the file back and tells you if it won't import, or if the app holding it wouldn't let it check. When that app takes longer than 30 seconds, the screen stops waiting and says so, though the app may still be working on the file. Pause and Debug logging stay out of the file, and so does anything about you or your phone. The release check stays out too, since a file someone shares shouldn't be able to put your phone online. So does the font file you picked, because a settings file can't carry the font itself.

Everything Hushfacebook shows, from the settings screen to the save notification and the launcher shortcut, is in the language Facebook itself shows. That's the one you picked in Facebook's language settings, or your phone's if you never picked one. German, Spanish, Indonesian, Brazilian Portuguese and Turkish are translated, and any other language gets English. Hushfacebook never changes Facebook's language. The diagnostic report stays in English, so whoever reads it can, and so do the error toasts Debug logging shows. With TalkBack on, section titles are headings you can jump between, and each switch says it's a switch and whether it's on. A settings search says how many settings it found once you stop typing, and Back puts TalkBack's focus on the category you opened. Every row's text wraps in full, even at the largest text size.

Hushfacebook pauses itself when Facebook crashes or freezes within a minute of starting three times in a row, and the screen says so. If you can't reach the screen at all, an empty file named hushfacebook-safe-mode in Android/data/com.facebook.katana/files pauses it too. It has to be in that files folder, not the one above it. Resume removes that file first. When it can't, your Pause and safe mode switches stay as they were, and the screen tells you to delete the file yourself. Safe mode is the same pause. It changes what the switches answer, but every patch's code stays in place, so if Facebook keeps closing in safe mode, the cause can be Facebook itself or any patch, whichever row of the table below it's in. To find it, patch again without the patch you suspect, or with fewer patches.

Blocking Reels

Reels turn up in four places, and no one switch covers them all. The Reels and Watch page opens with a short map of which control does what, and searching the settings for "block reels" finds it. Tap a line to jump straight to its setting. Looking doesn't change anything you've saved.

Where Reels show up What blocks them
Rows of reels between posts in your feed Hide Reels in the feed, under News feed.
Reels and videos that start playing by themselves Tap to play, under Playback.
The Reels tab in Facebook's tab bar Hide the Reels tab, under Reels and Watch, after a restart. Facebook's own setting works too: Settings, Tab bar, Customize the bar, then Hide next to Reels. Some accounts call that tab Video.
Everything except Marketplace Marketplace only, under Opening Facebook. After a restart it keeps Marketplace, Notifications and Profile/Menu and drops the feed, the Reels tab and the other social tabs.

Hide the Reels tab doesn't need Facebook's own Hide, which some accounts don't get, and it doesn't fight it either. When a patch from the table isn't in your build, its line on the map says so and names the patch to pick in Morphe Manager before you patch again. Ads inside Reels, the buttons under a reel and AI-flagged reels have switches further down the same page.

What Pause turns off

Patch While paused
Hide sponsored posts Off. Sponsored and promoted posts come back.
Hide suggested and promoted posts Off.
Hide Stories tray Off. The row of stories comes back.
Hide Reels in the feed Off. The rows of reels come back.
Hide AI-detected posts Off. Posts Facebook detected as made with AI come back, and so do the posts their creator labelled as AI and the reels and videos Facebook flagged.
Hide posts by words Off. Posts with your words come back. Your lists stay as you left them.
Hide sponsored stories Off.
Hide suggested stories Off. Suggested stories come back to the Stories tray the next time it loads.
Stop Story auto-advance Off. Stories use Facebook's timing.
View stories anonymously Off. The stories you watch put you on their viewer lists again.
Hide sponsored reels Partly. Ads inside a page of reels come back. Banners over a reel and mid-roll ads stay blocked, and so do ads the app adds on its own.
Hide sponsored search results Off. Ads come back between your search results.
Hide sponsored profile posts Off. Ads come back between the posts on profiles and Pages.
Hide sponsored Marketplace listings Off. Ads and boosted listings come back to Marketplace's feed and search results.
Clean up Reels Off. Reels look the way Facebook draws them.
Don't send reel watch history Off. Facebook gets the list of reels you watch again.
Turn off double tap to like Off. A double tap likes reels and videos again.
Keep the reel speed Off. Every new reel starts at normal speed, as Facebook starts it.
Hold a reel for 2x Off. A long press on a reel opens Facebook's long-press menu again.
Use the system font Off. Text goes back to Meta's font once Facebook restarts.
Use the phone's emoji Off. Emoji go back to Meta's once Facebook restarts.
Open links in external browser Off. Links open in Facebook's own browser.
Sanitize sharing links Off. Links you share keep Facebook's tracking tags.
Stop update prompts Off. Facebook's own update prompts come back.
Download any story Off. Only your own stories have Save, and it's Facebook's own.
Download any reel Off. Reels show only Facebook's own buttons.
Download any video Off. Post menus show only Facebook's own items.
Open on a chosen tab Off. Facebook opens on the tab it chooses.
Marketplace only Off. Feed preloading and the quiet-notification overlay go back to normal. The whole tab bar returns after restarting while paused.
Hide the Reels tab Off. The Reels tab comes back after restarting while paused, unless Facebook's own tab bar settings hide it.
Hide the Get Messenger card Off. The Get Messenger card comes back at the top of Chats.
Open Messenger from the top bar Off. The Messenger icon opens Facebook's own Chats again.
Hide Menu promotions Off. The Upgrades and Also from Meta sections come back to the Menu.
Hide Meta AI in search Off. Search shows Meta AI's answer and prompts again, and a suggestion Facebook sets to open Meta AI opens it.
Block promotional notifications Off. Every kind of notification comes through again.
Default comment order Off. Comments open in the order Facebook picks.
Tag suggestions only after @ Off. Facebook offers people to tag for plain words again.
Tap to play Off. Media starts the way Facebook starts it, and its Autoplay setting reads what you chose.
Hushfacebook in the Menu Stays. It's a way into the settings, and the settings are where you turn Pause off.
Default playback quality Off. Facebook picks the quality as each video plays.
Resume long videos Off. Videos start where Facebook starts them, and nothing new is remembered. The places already saved stay until they're 30 days old.
Block ad telemetry, Block background ad prefetch, Disable Audience Network, AMOLED black theme, Material You theme, Restore screens on re-signed builds, Install beside Meta's apps Stay. They were set when you patched, and changing one means patching again.

Known limitations

  • Other Meta apps. A patched Facebook carries your key, not Meta's, and Android lets only one key own a permission. Messenger, Facebook Lite, Meta Business Suite and Workplace declare two of the permissions Facebook declares, so without Install beside Meta's apps whichever of them you install second fails with INSTALL_FAILED_DUPLICATE_PERMISSION. The patch is on by default and gives Facebook's two their own names. Instagram, Threads, WhatsApp and Messenger Kids don't declare either, so they were never affected. If you patched without it, patch again with it and install over the top. That's an ordinary update with the same key, so Facebook keeps its data, and Messenger installs afterwards. What a re-signed Facebook still can't share with Meta's own apps is what they only allow each other, so signing in to one of them through your Facebook account may not work. A Messenger, Messenger Lite or Facebook Lite you patch yourself with the same key is the exception: Restore screens on re-signed builds, on by default, lets it sign in through your patched Facebook whether or not you also pick Install beside Meta's apps. For the same reason Facebook treats Meta's Messenger as missing and keeps a Get Messenger card at the top of Chats. Hide the Get Messenger card takes that card away. It looks for Messenger once each time Facebook starts, so after you install or remove Messenger, restart Facebook. Morphe Manager's Root Mount keeps Meta's signature and has neither problem.
  • Marketplace ads. Hide sponsored Marketplace listings works on the requests Marketplace sends, not on what it draws. Marketplace is drawn by React Native, and its sponsored listings arrive in answers that never pass through a list Hushfacebook could filter. So the feed's own request asks Facebook to leave them out, and the requests that fetch only ads aren't sent. The home feed passed a limited phone check. Ads still appeared under "Ads inspired by your views" on a listing's details page. Search is the exception: a search asks for its listings and its ads in one request, so there the patch reads the answer on its way back and takes the ads out. That part hasn't been checked on a phone yet. It goes by the names Facebook's web search gives its ads, so a report from someone who still sees an Ad tile in search results, with its diagnostic report, helps. Category pages still need checking. Ads inside videos, in the feed and in Watch as well as in Reels, are blocked by Hide sponsored reels.
  • Links from other apps. Android may stop sending facebook.com links to a re-signed Facebook, because the app's link verification is tied to Meta's signature. Supported links under Links shows what Android reports and opens the page where you can select Facebook's addresses by hand, as Settings describes. Selecting them doesn't restore that verification.
  • Notifications. Block promotional notifications knows twelve of the notification types Facebook's code names, and Facebook may send a promotion under a type it doesn't know. That one still comes through. The diagnostic report lists every type that arrived, so a report with one in it helps add it. The switches haven't been checked against real notifications on a phone yet.
  • Update notices from outside Facebook. Stop update prompts reaches what Facebook's own code shows. Meta App Manager, the updater that ships on Samsung and some other phones, can still post its own notices about a Facebook it can't update, and those come from that app rather than from Facebook. Turn off its notifications in Android's settings, or disable it. Google Play won't update an app signed with another key, so a patched Facebook stays on the version you patched until you patch a newer one.
  • Two Facebook builds. Patches are checked on one build each of Facebook 580.0.0.51.74 and 577.0.0.50.72, the bundles Install names. Another build will often work, and Morphe Manager patches it once you tap Proceed anyway at its Unsupported Version warning, but it hasn't been checked.
  • System font. Use the system font swaps the typefaces Facebook's own text engine hands out, which is where the feed, comments, menus and Bloks screens get theirs. It also swaps the fonts that screens built with React Native, such as parts of Marketplace, ask for by name. A screen that loads a font another way keeps Meta's, and so do the icons and the text you add to a story.
  • Emoji. Use the phone's emoji swaps the emoji font Facebook draws its text with. An emoji newer than your phone's emoji font shows up as a box, or as the emoji it's built from, the way it would in any other app. The big emoji a chat shows on its own is a picture Meta sends, and with the patch Facebook draws it with your phone's emoji font instead, the way it shows that emoji while the picture loads.
  • Tap to play. It holds the starts that go through Facebook's two video players, which is where the feed, Watch, Reels, stories, songs on posts and notes, and Marketplace videos start. A few widgets built on Meta's music player play through a player of their own that it doesn't reach. A story that takes more than a second to open after your tap can wait for a second tap, and in the story viewer a tap moves to the next story, so press and hold, then let go, to start one that's waiting. With Facebook's Autoplay setting reading Off, the row of stories Facebook sometimes puts between posts can be left out, as it is when you turn Autoplay off yourself. On a signed-in test phone, feed videos and swiped-to reels waited for a tap and coming back to Facebook didn't restart them. Stories, Marketplace videos and songs haven't been checked on a phone yet.
  • Double tap to like. Turn off double tap to like covers the double tap in Reels, in the reels you open from the feed, in Watch and the video viewer, and in the reels Facebook chains from a post in the feed. A double tap there doesn't like anything or show the heart, while a single tap and the player's other gestures work as before. A double tap on a live video still sends a floating reaction to the broadcast, and a double tap on a comment still reacts to it, since neither likes the video itself. The first double tap on a player can still give a short buzz. Nobody has checked the patch on a phone yet.
  • Reel speed. Keep the reel speed follows the speed picker in a reel's own menu, the one that shows Facebook's speed toast when you pick. A speed changed any other way, such as the gear menu of a Watch video, isn't carried over. Nobody has checked the patch on a phone yet.
  • Hold for 2x. Hold a reel for 2x turns on the hold-to-speed-up Facebook already built into its Reels player for some accounts, so Facebook picks the speed. It's double speed unless its servers set a faster one. In the Video tab the hold speed comes from a server setting, and if that says normal speed, the patch holds at double speed anyway. Sliding your finger up to keep the speed locked works only where Facebook has turned that on. Nobody has checked the patch on a phone yet.
  • Resume long videos. It works in Facebook's main video player, which the feed, Watch and the video viewer use. A video the older player plays starts from the beginning. A long video autoplaying in the feed counts as a start too, so one you left partway picks up there, muted, as it scrolls into view. A video's length comes from the player, or from what Facebook sent with the video when the player doesn't know it yet. Nobody has checked the patch on a phone yet.
  • Playback quality. Default playback quality works in Facebook's DASH player, which the feed, Watch, Reels and stories use, and it chooses among the qualities Facebook sends for each video. A video Facebook sends as a single file has only one, so it plays as it comes. Videos Facebook loads ahead of time, and videos you save to watch offline, still come at the quality Facebook picks, so Data saver lowers what you watch rather than everything Facebook downloads. Nobody has checked the patch on a phone yet.
  • Downloads. A feed or Watch video saves at the quality you set once Facebook has built its player, which happens when it starts playing. Until then Download to phone falls back to the single file the post names. When there's none, it asks you to play the video for a moment and try again. Stories Facebook sends only as AV1 save at the lower single-file quality on a phone that can't decode AV1. The message after a save like that says it's lower quality than on Facebook.

Reports still under investigation

  • Settings fail in a cloned app (#16). A renamed Facebook package could leave Dark mode and Active status screens unresponsive. Restore screens on re-signed builds now recognises a copy renamed by Morphe's Clone app patch as itself, and still no other app. A clone installed beside the Facebook it came from also crashed as it opened, because Facebook's code reached the original app's content providers by name. The copy now reaches its own, and its manifest only asks for permissions and provider names it owns. Turn on both of Clone app's options, Update permissions and Update providers, and keep Hushfacebook's default patches selected with it: the rename is only followed when a selected patch whose name sorts before Clone app, such as Block ad telemetry, comes along. On a phone, a copy made this way opens to Facebook's sign-in screen and its Hushfacebook settings open. Signing in to it, its Dark mode and Active status screens, notifications and links haven't been checked yet, so full clone support remains unverified.
  • Reel Download button missing (#18). Reported on Facebook 577 while the Story Save button is visible. The reporter's file has the same version code as the supported 577 bundle. Facebook draws a reel's side buttons with one of two components, and the Download button only goes in one of them. The Reels viewer picks between the two by a switch Facebook's servers set per account, and several other viewers use the one without the button. That fits the report, but it hasn't been confirmed on the reporter's phone. The diagnostic report's Hook status line for Download any reel now counts which sidebar the phone drew and, when it was the right one, whether the button went in or why it stayed out. Until a report from an affected phone shows which it was, this stays open.
  • Media settings don't open (#12). Reported with v0.2.0 on a Pixel 10 Pro XL running Android 17, patched with URV 1.9.0-dev.2. The report has no diagnostic log or exact Facebook build code, so the cause hasn't been established.
  • Silent 1080p saves in Xiaomi Gallery (#14). The reporter's 720p file plays with sound, while the 1080p file plays with sound only in another player. Their screenshots show H.264 and HE-AAC at 720p, and AV1 with an unspecified AAC profile at 1080p. The v0.3.1 changes included in this release prefer more widely supported audio when Facebook offers it and avoid dropping unsupported sound during a save. The affected Xiaomi Gallery still needs a check. WhatsApp import (#11) also awaits confirmation. Compatibility mode now keeps a known H.264/AAC pair instead of replacing it with an unchecked MP4. The diagnostic report now records what each saved video actually holds, read back from the file: codec and profile, picture size, duration and the sound's AAC object type, sample rate and channels. A report from an affected phone can show what Gallery or WhatsApp was given, but neither problem is settled until one does.

Troubleshooting

Morphe Manager does the patching and the install, so most of these messages come from it or from Android. They're the ones people have run into so far. If yours isn't here, see Getting help.

Unsupported Version

Manager shows this before it patches, usually with "This is a different build of the same version. The patches require a specific build" and a build number under the version. Facebook 580.0.0.51.74 comes in nine arm64-v8a builds on APKMirror, and Google Play hands each phone the one that fits its screen and Android version. Each build is compiled separately, with code of its own. Hushfacebook declares only the build its patches are checked against, 475019344, and Morphe's format takes one arm64 build per version, so the other eight all get this warning. On 577.0.0.50.72 the declared build is 474426275.

To get rid of it, download the (arm64-v8a) (240-640dpi) (Android 11+) bundle from APKMirror and pick that file. Proceed anyway patches the build you have with every patch you chose. One of them, build 475019283, took every patch and worked on a Galaxy S25, but the other builds haven't been tried. If a patch can't find what it changes, patching stops and names it.

The same check is why Manager won't offer the Facebook you installed from Google Play as the app to patch, unless it's that exact build.

Unexpected end of ZLIB input stream

The full line is java.io.EOFException: Unexpected end of ZLIB input stream, with SplitApkPreparer a few lines below it. A .apkm is a zip holding several APKs. Manager could read its list of contents, but one of the APKs inside ends before it should, so the file is damaged. An interrupted or half-finished download is the usual cause. Delete the file and download the bundle again, and before you pick it, check that its size matches the one APKMirror's download page gives.

No space left on device

The log says ENOSPC (No space left on device): the phone ran out of storage partway through. Manager only warns when less than 1 GB is free, and Facebook needs more than that. One patch ran out with 1.08 GB left. Keep at least 2 GB free while you patch. On a computer, patching the 580 bundle with every patch takes about 1.3 GB of working space, and on a phone Manager also keeps its own copies of the bundle.

Update required

Manager says the Hushfacebook bundle needs a newer patcher version. Your Morphe Manager is older than this bundle can work with, so update it to the version Install names and patch again.

Package conflict

At install, Manager says the Facebook already on your phone has to be uninstalled first ("Package conflict" or "Uninstall required"). Android only installs an update signed with the same key as the app it replaces, and Meta's Facebook carries Meta's key. Uninstalling deletes what Facebook keeps on the phone, so you'll sign in again afterwards. Your account itself isn't touched. A Facebook you patched before with a different key hits the same wall, and Keep your signing key covers that. A Root Mount install on a rooted phone goes over Meta's app and doesn't ask.

INSTALL_FAILED_DUPLICATE_PERMISSION

Messenger, Facebook Lite, Meta Business Suite and Workplace declare two permissions under the same names as Facebook, and Android lets only one signing key own each name, so whichever of the two is installed second fails. Install beside Meta's apps renames Facebook's two, and it's on by default. If you patched without it, patch again with it and install the update over the top, then install the other app. Known limitations has more.

Patching stops on one patch

A patch couldn't find the code it changes, and the log names the patch and what it looked for. That happens when the file isn't one of the builds Hushfacebook declares, because Facebook moves its code around from one build to the next. Pick the bundle Install names, or patch without that one. If it stops on the declared bundle, please report it and paste the log.

The log says a patch goes on without something

A line like WARNING: Block ad telemetry: com.facebook.ads.AdsScreenshotDetector isn't in this Facebook build. The patch goes on with the 3 of 4 ad telemetry classes it found. comes from one of the four patches that work down a list of separate targets. That patch still applied, and it covers the rest of its list. Patching Facebook 580 gives six of these from Hide suggested and promoted posts, for feed units Facebook took out of that version. Any other one on a declared bundle is worth reporting with the log.

Your Facebook account

People ask whether a patched Facebook puts their account at risk. Here's what we know.

Can Meta tell? Assume it can. A patched Facebook is signed with your key rather than Meta's, and Facebook's own code checks that signature in places, which is why Restore screens on re-signed builds exists. Some of what Facebook normally sends home stops too, like the ad reports Block ad telemetry turns off and the click tracker on links you open in your browser. Pick Don't send reel watch history and the list of reels you've watched stops as well, and with View stories anonymously so do the reports of the stories you view. Meta could notice those going quiet.

What stays the same? Your feed, stories and reels still come from Meta's servers, ads included, and Hushfacebook hides things on your phone after they arrive. It doesn't post, like, follow or message on your behalf, and it doesn't change how you sign in. A video you save comes from the same Meta server the player streams it from, and Hushfacebook itself sends nothing anywhere, apart from asking GitHub about new releases if you turn that check on (see Privacy).

Could my account be suspended? Nobody can promise it won't be. Meta's Terms of Service ask for its written permission before anyone modifies its apps (section 3.4), and they let Meta suspend or disable an account it decides has seriously or repeatedly broken them (section 4.2). We haven't heard of an account suspended over Hushfacebook. It's a young project, though, so that doesn't prove much.

Is it safe to make a new account in the patched app? It carries the same risk as using any account there. The sign-up screens are Facebook's own and no patch changes them, but a brand-new account may be asked to confirm a phone number or who you are, whatever app it's made in. If you'd rather not risk the account you care about, try Hushfacebook with a fresh test account first. That's the safer way to find out.

Getting help

Questions about setting up or whether a Facebook build works belong in Discussions, where an answer helps the next person too. For something that's broken, use the bug form and add the diagnostic report it asks for, since that answers most of what we'd ask. Ideas go on the feature form. When Morphe Manager itself misbehaves with every app, not only Facebook, Morphe's own tracker is the place. Releases are published here, and the add-source link under Install always fetches the newest one.

Privacy

Hushfacebook doesn't collect anything and has no server. The patched app goes online on Hushfacebook's behalf for two things only. The first is downloading something you asked it to save, from the same Facebook address the player streams it from. A save only follows HTTPS addresses on Meta's media servers (fbcdn.net, fbsbx.com and cdninstagram.com), redirects included, and the file lands in Facebook's cache first. It goes to your gallery only once it's whole and under 512 MB, and only if it's really a photo or video. Those cache files always leave at least 128 MB of your phone's storage free, counting every save that's running.

The second is the release check, and it's off until you turn it on. Once it's on, Hushfacebook asks api.github.com for its latest release at most once a day, when Facebook starts, and again whenever you tap Check now. That's a plain HTTPS request with Hushfacebook/<version> as its User-Agent, and it carries no cookies and nothing about you or your phone. It only follows a redirect that stays on api.github.com, and it reads at most 256 KB of the answer. GitHub sees your IP address, as any site you visit does. From the answer, Hushfacebook keeps the version number and, if the notes name one, the Facebook version the release targets. Nothing else is kept.

Where the patches come from

Source What came from it
andrewliang25/morphe-patches at 5db2e57 Every Facebook patch here, from the ad filters to the story and reel downloads, except Sanitize sharing links, Hide Stories tray, Hide Reels in the feed, Clean up Reels, Hide AI-detected posts, Download any video, Material You theme, Block background-return feed refresh, Stop Story auto-advance, Stop update prompts, Use the system font, Use the phone's emoji, Don't send reel watch history, Install beside Meta's apps, Hide the Get Messenger card, Open on a chosen tab, Tap to play, Marketplace only, Hide Menu promotions, Hide Meta AI in search, Default comment order, Hide sponsored search results, Hide sponsored profile posts, Block promotional notifications, Hushfacebook in the Menu, Hide suggested stories, Hide sponsored Marketplace listings, Hide posts by words, Tag suggestions only after @, Resume long videos, View stories anonymously, Turn off double tap to like, Default playback quality and Hushfacebook settings, which were written here. The ported ones were rewritten rather than copied commit by commit, and the fixes are listed in the changelog.
SapitoSucio/FroggoMorphePatches The idea of dropping promoted posts beside sponsored ones, and of hiding posts Facebook detected as AI, which its 573 filter reads from the same flag. Andrew Liang credits it for some ideas and implementations too.
SysAdminDoc/hushfeed at 1f1f81a The Gradle build, the shared extension library with its settings screen and diagnostics, the pause, the bytecode helpers, and the checks that apply every patch to real Facebook builds before a release. The settings export and import came later, from bcc57ee.
Morphe and ReVanced The patcher and the patch template. Both of the above grew from their code.

Every source file says where it came from in its header, and provenance.json maps each file to the project and commit it came from, with its licence. docs/sources.md covers the other Facebook and Messenger patch sources: what each one does and what this bundle took from it. The ledger behind that page, sources/facebook-sources.json, pins every source's branches and licence, and code is only ported from a source it lists as adopted.

Building from source

You need JDK 17 or newer and the Android SDK. The Morphe patcher comes from GitHub Packages, so you also need a GitHub token with read:packages.

export GITHUB_ACTOR=<your GitHub user>
export GITHUB_TOKEN=<a token with read:packages>
./gradlew :patches:generatePatchesList
./gradlew :patches:buildAndroid

The bundle lands in patches/build/release/patches-<version>.mpp, beside its SHA-256 and patches-<version>.cdx.json. That's a CycloneDX SBOM of every library that goes into the bundle, at the version Gradle resolved, and releases from 0.1.3 on publish it beside the bundle. Run generatePatchesList before buildAndroid, or the bundle loses its Android payload.

Tests: ./gradlew :patches:test :extensions:facebook:testDebugUnitTest. Set HUSHFACEBOOK_FIXTURE_DIR to a folder holding the Facebook bundles to run the tests that read real builds. Without it they skip and say so.

To apply every patch to a real build and check the result, run scripts/verify-all-patches.ps1 -Apk <facebook .apkm> -DesktopJar <morphe-desktop jar> -WorkDir <scratch folder>. It holds the patched resource table to Meta's. It also checks the code the patches inject for the shapes Android's verifier rejects, such as branches into the middle of an instruction, calls with the wrong registers, values read at the wrong width and broken try ranges. And it requires exactly one feed guard where Facebook adds a post to the feed, since two stacked there broke builds before, and exactly one more where Facebook swaps a post in over another one, because those swaps never pass the first. These rules are this project's, not the verifier's. CONTRIBUTING.md has the rest.

License

GPL-3.0, with the Morphe section 7 notices carried in NOTICE. Facebook, Messenger and Meta are trademarks of Meta Platforms, Inc.

About

Hushfacebook v0.4.0: 43 patches for Facebook 580.0.0.51.74 with Morphe. Control ads and suggested posts, save videos, customize playback and use a focused Marketplace mode.

Topics

Resources

Contributing

Stars

106 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages