Skip to content

Releases: SysAdminDoc/HushGram

v0.0.5

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 04 Oct 00:59

HushGram v0.0.5 has 48 patches for Instagram 449.0.0.52.84 (arm64-v8a, version code 385511871), two more than v0.0.4. The new ones are Hide the notes row and View DM photos and videos anonymously, and both start off until you turn them on. This release needs Morphe Manager 1.33.0 or newer. It still runs on Android 9 and newer. Here's everything that changed.

Instagram

  • HushGram 0.0.5 adds two patches, for 48 in all, and still targets Instagram 449.0.0.52.84 (build 385511871, arm64-v8a) on Android 9 and newer.
  • HushGram now builds on Morphe patcher 1.15.0, so it needs Morphe Manager 1.33.0 or newer. Manager 1.32.0 asks for an update before it loads the bundle.
  • New patch, Hide the notes row, in Manager's simple mode with its switch off. Turn it on under Messages in HushGram settings and the row of notes at the top of your messages goes, along with the Map bubble that sits in it. Your chats, search and message requests stay where they are. Asked for in #17.
  • HushGram's settings come in Korean now, translated by @BlackGold8282 in #36.
  • Following-list labels now wait for Instagram's row friendship status instead of trusting a stale profile fallback, so accounts won't show "Doesn't follow you" until their profile refreshes.
  • Pure black dark mode now leaves bottom navigation icon colors alone when they share Instagram's dark Prism value, so the buttons stay visible on black backgrounds.
  • The source catalog makes six initially neutral controls available in Manager's simple mode. Copy comment, Save comment photo, Hide highlights, Stop swipe to create and Stop Reels scrolling still start off. Story ring size starts at Instagram's own size. Saved choices stay intact. Stop swipe to create checks its switch before making added native reads, so off, Pause and startup before settings are ready retain the original path.
  • Keep Reels auto scroll on remembers a completed future timer immediately, so it stays on even if the timer expires before another reel checks it. Cancelled choices, expired timestamps and paused runs keep their usual behavior. Its startup summary appears once at each readiness state, including when checks run together.
  • Stop Story auto-advance checks the actual story loop flag before adding its guard. Hide highlights refuses branches into the row's type read or add. Native bundle checks pin the story guard's exact loop call and preserve the original handler's call.
  • Story retry patching checks that the native queue count and account reads leave pending batches alone. It refuses subclasses of the final story store, including inherited builder references hidden in encoded handles. A retry bridge with no executable DEX body also stops patching.
  • About and local diagnostic reports show the production build identity, so different source builds of the same version can be identified.
  • Turning all three suggestion switches under Feed off restores Instagram's own empty feed behavior in the same run. Removing a suggestion earlier no longer keeps the filtered feed's end state active.
  • Settings ignore stale accessibility clicks after a containing section is removed or the page closes. Disabling a container disables its controls' accessibility actions. Search refuses edits and Clear after its page closes. A focus-clear action releases the search view hold even when accessibility is off. Android 9 and 17 regressions cover current screen changes and disabled ancestors.
  • Override recovery keeps the selected saved copy through interrupted saves and moves. Cleanup failures stay visible even when changes have already applied. Restore removes temporary replacement copies after recovery finishes, and Discard can remove a damaged backup or recovery record. It also recovers when a lone completion record can't be read. The terminal recovery journal is moved to a completion record, keeping imports blocked while its final storage flush fails even if no replacement file can be written.
  • View stories anonymously keeps saved batches held if reading the switch, choosing marked stories or creating their batch fails, including an allocation failure. Every retry checks the batch again before Instagram takes ownership or creates a request. It no longer removes a held batch or falls back to sending its original contents. Turning the switch off or pausing keeps Instagram's usual behavior.
  • Import, Restore and Discard recheck their permission after reading native state. Turning Allow importing overrides off or pausing while an import waits now stops it before any typed write or recovery-file change. Permission is checked again after file staging and before the first native change, preserving the earlier saved copy if permission changed.
  • Added the opt-in patch View DM photos and videos anonymously, with a separate switch that starts off. It holds back the visual photo/video opened receipt and completes Instagram's queued visual task locally. Ordinary message and voice receipts keep their existing path.
  • Hide Meta AI now covers its optional message composer buttons through Instagram's existing visibility and layout path, and omits the optional inbox row through its native empty-row branch. Native fixture tests preserve ordinary controls and thread lists.
  • Same-key provider trust now checks the caller's actual current signing key after Instagram's native decision. Only named family apps in the same Android user can qualify. Other provider policies and the original deep-link certificate answers stay intact.
  • Disable analytics also skips contacts and location setup delivered through the direct screen presenter. It checks the same two setup screen identifiers and keeps the native path for ordinary screens and absent screen data.
  • Open MetaConfig overrides passed the signed-out Samsung check. Its row kept the complete unavailable reason and settings stayed open.
  • The reporter confirmed that Clean up Reels now hides the friends' activity and closed #7.
  • The reporter confirmed Discover people and suggested users in Reels in #15.

Tooling

  • smali now matches the commit patcher 1.15.0 asks for. The old pin was one commit behind it but sorted higher, so Gradle had been compiling and testing against the older dexlib2. The fixture gates move to desktop CLI 1.18.0.
  • Wrapper checks find Git Bash when Git hooks resolve an internal Git executable. The authentic Windows and POSIX launchers and every refusal-before-execution check remain required.
  • Local builds default to two workers at low priority, with parallel project builds off. Patch tests use a 4 GB heap instead of 8 GB, and test JVMs limit their internal processor count to two. Build caching stays on.
  • Bug reports offer direct messages, profiles and Explore, with a link to local diagnostics and build details. The settings guide separates confirmed suggestion controls from optional profile rows, and the source guide matches the latest recorded census. Manager's story patch description matches the guide.
  • Refuse ignored compiler and packaging inputs in production source sets before building or certifying a current dependency audit. Git ignore rules can no longer hide shipped code from its build identity. Staged development inputs still use their current working bytes, and release receipts still require clean sources. Debug, test and generated files remain excluded.
  • Local patching checks each selected bundle's exact targets and dependencies before merging or changing an APK. Reports identify the bundle by its hash and attribute initializer failures to their dependency owner. Conflicting selected extension definitions are refused, while compatible addons keep their native initialization. Bug reports now ask which sources and bundle versions were selected.
  • New release receipts map the canonical source, catalog and toolchain identity to final bundle and extension hashes. The identity includes Android release source sets, so a change there produces a different identity even when the version stays the same. Debug and test inputs stay excluded. Historical receipts keep their original reading rules.
  • Every required Android boundary result now names its actual Android SDK, including the highest SDK in a test class. The gate refuses Android 16 results substituted for Android 17 and results with their platform label removed. All provider caller cases remain required. Self-tests also check missing, filtered, skipped, failed and duplicate results through the real Gradle task, then restore the original report.
  • Both Gradle launchers verify the reviewed wrapper JAR and distribution checksum before wrapper code runs. Altered, missing or unreviewed wrappers stop direct builds and scripted builds with a useful error. The push gate exercises both launchers with a runnable replacement JAR.
  • Bind current dependency audits to source, catalog, toolchain, SBOM and bundle bytes, preserve resolved dependency edges, and update affected settings and UTP tools to compatible Commons Lang and HttpClient fixes.
  • The shipped SBOM now records reviewed Apache 2.0 licenses for its exact Gson, Kotlin stdlib and JetBrains annotations artifacts. Publisher POM and binary hashes bind each record. NOTICE names the carried libraries. Current dependency audits and new release receipts refuse omitted libraries, missing evidence or substituted hashes while historical receipts stay readable.
  • Added local Crowdin setup with resumable draft imports and a review package for German, Spanish, Indonesian, Brazilian Portuguese, Turkish and Korean. Setup requires the owner's token, preserves existing reviewer work and never approves translations. Translation tests now run before a related push.
  • Gave the native patch test suite enough heap for the expanded fixture proofs. The default test-worker heap ran out while reading whole APK methods.
  • Story retry proofs now reject callers that bypass the protected queue, including additional interfaces and stored method handles. They also reject changed ownership p...
Read more

v0.0.4

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 03 Oct 02:25

HushGram v0.0.4 has 46 patches for Instagram 449.0.0.52.84 (arm64-v8a, version code 385511871), eleven more than v0.0.3. It still runs on Android 9 and newer, and every new patch is off until you pick it in Manager. Here's everything that changed.

Instagram

  • HushGram 0.0.4 adds eleven patches, for 46 in all, and still targets Instagram 449.0.0.52.84 (build 385511871, arm64-v8a) on Android 9 and newer.
  • New patch, Loop a story, off until you pick it in Manager. A story plays again from the start when it ends, until you tap or swipe, through the loop Instagram is already trying out. Ads still move on. With Stop Story auto-advance on too, the stories that can loop do, and the rest, like ads, stay on screen until you tap or swipe. Its switch is under Stories. Asked for in #1, and piko had it first.
  • New patch, Show a story's exact time, off until you pick it in Manager. A story's header says when it was posted, like Oct 2, 3:45 PM, instead of 3h, in your phone's language and with its 12 or 24-hour setting. Its switch is under Stories. Asked for in #1, and piko had it first.
  • New patch, Stop Reels scrolling, off until you pick it in Manager. A swipe in Reels no longer moves on to the next reel, and pulling down doesn't load new ones, so you stay on the reel you opened. Its switch is under Reels, and a change takes a restart. Instagram's own auto scroll still moves on when a reel ends if you've turned it on. Asked for in #23.
  • New patch, Stop swipe to create, off until you pick it in Manager. A sideways swipe on Home no longer slides the camera in, and neither does a quick flick. The + button and every other way into the camera still work, and a swipe back out of the camera does too. Its switch is under Feed.
  • New patch, Hide highlights, off until you pick it in Manager. The row of story highlights goes from profiles, yours and other people's. Its switch is under Profiles. Bios, counts and posts stay, and so does Add to highlight on your stories.
  • New patch, Save comment photo, off until you pick it in Manager. When a comment has a photo of its own, its menu gets a Save row that saves the largest size Instagram sent for that photo. It goes through the same downloader as Download, with your save folder and its Cancel button. A GIF, a video, a photo still uploading and the post itself don't get the row. Its switch is under Comments next to Copy comment and starts off. Asked for in #1.
  • The Threads buttons on a profile, View profile on Threads and the Threads chip under the bio, now open Threads when it's patched with the same key as HushGram, instead of showing "Sorry, we weren't able to load that website". Facebook and Messenger patched with the same key open from Instagram the same way, and Instagram trusts all three when they share to it or ask it for your sign-in. An app signed with any other key is still left to Instagram's own check. Reported in #22.
  • A Threads, Facebook or Messenger is trusted only while HushGram's key is the one it's signed with now. One that has moved to another key since is left to Instagram's own check, even though Android still lists HushGram's key first in its signing history. HushGram also learns its own key only from Android, never from a record that just carries Instagram's name.
  • Developer has a new switch, Allow importing overrides, which starts off. With it on, Import overrides applies a file from Export overrides for the same session and Instagram build through the typed table Instagram's own override editor writes, and Restore previous overrides puts back the copy saved just before the last import that went through. Nothing is written until the file passes the same checks as Validate and the session's stored overrides read the same twice, a few seconds apart, so a change you just made in Instagram's own editor isn't written over. The store is read back afterwards and put back if Instagram didn't keep the change, and a file that already matches changes nothing. If that put-back can't be confirmed, imports wait for Restore. Restore tells you how many overrides holding Instagram's null value it couldn't put back, and Discard saved overrides forgets the saved copy so imports can run again. Restart Instagram to apply an import. Asked for in #1.
  • View stories anonymously has a second switch under Stories, Mark as seen button, which starts off. It adds an eye button to the top of each story, and a story you tap it on is sent as seen, on its own, while the others stay held back. Tap again to take the mark back before it goes. A mark only counts on the account you made it on. View stories anonymously now also holds back the views Instagram saved in an earlier session to send again later. Asked for in #1 and #13.
  • On a phone set to a right-to-left language like Arabic, Hebrew, Persian or Urdu, every title and summary in HushGram's settings now lines up at the right. Wrapped English text used to sit flush left beside one-line titles on the right. Left-to-right layouts look the same as before.
  • Show if a profile follows you no longer fails as a whole when an Instagram build changes how its follow lists are drawn. The profile label still goes in, and Mark who doesn't follow you back is left out of settings, with a warning in the patch log and a line in the diagnostic report.
  • When Open MetaConfig overrides can't open (signed out, or a screen without Instagram's editor), its row now keeps the whole reason under it, since Android cuts the toast to two lines and dropped the part about signing in.
  • Show if a profile follows you has a second switch under Profiles, Mark who doesn't follow you back, which starts off. On your own Following list it adds Doesn't follow you after the name of each account Instagram says doesn't follow you back. Followers and other people's lists stay as they are, and nothing shows until Instagram has checked. When the name is long, Instagram shortens the line to fit, so the mark can end in an ellipsis. Asked for in #1.
  • New patch, Hide suggested people on profiles, off until you pick it in Manager. Suggested for you goes from profiles, yours and other people's, whether Instagram puts it in the Follow and Message area or in a row under the header, and so does the Discover people button beside those buttons. Its switch is under Profiles, and bios, counts, posts and follower lists stay. Asked for in #15 and #20.
  • New patch, Hide suggested accounts in Reels, off until you pick it in Manager. The cards of people and creators to follow that Instagram puts between reels are left out, and Your algorithm cards, ads and every reel stay. Its switch is under Reels. Asked for in #15 and #20.
  • New patch, Keep a seek bar on Reels, off until you pick it in Manager. Every ordinary reel keeps Instagram's seek bar under it, short ones too, where Instagram would otherwise draw none or hide it until you hold the reel, and the time played and the reel's length show just above the bar, like 0:10 / 0:55. Ads keep Instagram's own rules. Its switch is under Reels. Asked for in #10.
  • New patch, Keep Reels auto scroll on, off until you pick it in Manager. Once you turn on Instagram's auto scroll in Reels, it stays on after Instagram restarts or you leave Reels, and when you turn it off it stays off. Its switch is under Reels. Asked for in #21.
  • Keep a seek bar on Reels puts its time only on an ordinary reel's bar in Reels, never on an ad's bar or one elsewhere in the app, and each bar has one label that hides while its bar is hidden and leaves with it, so a scrolled or recycled reel can't keep an old or doubled time.
  • Keep Reels auto scroll on no longer takes Instagram's saved auto scroll setting by itself as a sign you turned it on. Where Instagram goes by a timer or by memory instead, a long press on the Reels tab could leave that setting on, and turning auto scroll off with its switch then didn't stick.
  • Copy comment only takes a comment menu renderer whose middle argument fits one register. A future build that made it a long or double would have shifted the selected comment's register, so it's refused before anything changes.
  • Keep Reels auto scroll on now checks that Instagram's auto scroll switch saves the very choice it was handed, passed along only by plain copies, before it reads that choice. A build that saved anything else would have left HushGram remembering the wrong choice, so it's refused before anything changes.
  • Keep Reels auto scroll on remembers what you pick with Instagram's own auto scroll switch, on or off, the moment Instagram takes it, instead of waiting until something asks again. Turning auto scroll on from the Playback menu and closing Instagram before a reel ended used to lose it. The Reels viewer and picture in picture, which read Instagram's in-memory setting directly, now get the remembered answer too.
  • Hide highlights now follows the highlights row's type from the name Instagram gives it to the field it's kept in, instead of taking whichever row type is stored next. It also checks that nothing reads the row's number after the row it skips. A build set up any other way could have hidden the wrong row or crashed on profiles, so it's refused before anything changes.
  • With Tap to play on, Instagram's own auto scroll in Reels no longer stops after one reel. When auto scroll moves on, that counts as a tap on the reel it moves to, so the reel plays, and when it ends auto scroll moves on again. The reel it moved to used to sit on its first frame and auto scroll never moved again. Feed videos, stories and a reel you open without a tap still wait for one, and a reel you pause still stops auto scroll there. Found while checking #21.
  • Save all only shows on a carousel when at least one page would save with your Downloads switches. An all-photo carousel used to offer it with Download feed photos off, then report every page as skipped.
  • A failed sign-in notice dismissal asks for a retry without claiming that storage was resto...
Read more

v0.0.3

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 02 Oct 02:02

HushGram v0.0.3 has 35 patches for Instagram 449.0.0.52.84 (arm64-v8a, version code 385511871), fourteen more than v0.0.2. It still runs on Android 9 and newer. Most of the new patches were asked for in #1.

Before you sign in, read the section of that name in the README. A re-signed Instagram can't pass Google's Play Store check whatever the patches do, so a spare account keeps your main one out of it.

New patches

  • Hide suggested posts. Posts and reels from accounts you don't follow come out of your home feed, along with the rows of suggested accounts and what Instagram mixes in from Threads. Each has its own switch in a new Feed section. If nobody you follow has posted lately, Home shows Instagram's own welcome card instead of a placeholder that never loads.
  • Start Home on Following, off until you pick it. Home opens on accounts you follow, with Instagram's own picker at the top for switching to For you or Favorites. Turn on Only accounts you follow under it and For you leaves the picker.
  • Hide suggested stories. Stories from accounts you don't follow leave the row at the top of Home. A second switch, off to start, takes the whole row away.
  • Hide Meta AI. The search bars in the Search tab and in your messages go back to a plain search, and a search's results lose the "Ask a follow-up" bar. Home's top bar loses Meta AI's buttons, and Meta AI's videos and chats come out of your feed too.
  • Hide the Explore grid, off until you pick it. The Search tab keeps its search bar and the grid of posts and reels under it is gone. Searching still works.
  • Keep the reel speed. Lock a reel at 2x with Instagram's own lock and the next reels play at 2x as well. Slide the lock off, or restart Instagram, to go back to normal speed. Ads always start at normal speed.
  • Show if a profile follows you. Someone's profile says Follows you or Doesn't follow you beside their name. piko had it first.
  • Remove the empty space at the bottom, off until you pick it. When your phone hides its navigation bar completely, or Instagram runs in a pop-up window, the tab bar sits on the bottom edge instead of over an empty strip. MyInsta and piko had this fix first.
  • Hide the Repost button, off until you pick it. The Repost button and its count are gone from posts and reels. Share still sends a post to someone.
  • Story ring size, off until you pick it. The rings in the stories row can be drawn anywhere from 70% to 130% of Instagram's size.
  • Hide group buttons on the share sheet, off until you pick it. The New group button next to the share sheet's search bar is gone, and so is the button that sends to several picked people as a group, which leaves Send separately.
  • Pure black dark mode, off until you pick it. Dark mode's near-black gray becomes pure black. Menus and sheets keep their own grays, so nothing disappears into the background.
  • Open developer options, off until you pick it. A long press on the Home tab opens Instagram's own developer options, where its server flags can be looked at and overridden. piko had the idea first.
  • Start on x86 devices, from Hushfacebook. Instagram stops crashing or freezing on an x86 device that runs its arm code through Android's translator, like an x86 Chromebook or an emulator. Phones with arm chips run as before.

Fixes and changes

  • Turn off double tap to like has two switches under it, On posts and On reels, so you can keep double tap to like on posts and still not like a reel by accident. Asked for in #6.
  • Clean up Reels also hides the floating bubbles of friends who liked or commented and the Liked by and Followed by line with friends' faces. Reported in #7.
  • Download any video works on a carousel and saves the page that's on screen. Turn on Download feed photos and photo posts get a Download row too, saving the largest size Instagram has.
  • Disable analytics now refuses Instagram's crash reports and startup pings to b-www.facebook.com and keeps usage events off its realtime stream. It also skips the "Set up on new device" screens asking for contacts and location, which would otherwise come back on every start. piko found that loop first.
  • Open links in external browser keeps a link you follow inside an ad's page in the app, with the ad.
  • Tap to play and Download any reel read Instagram's yes or no answers in a form that still loads if an update changes how they're returned.
  • Resume long videos has a Clear remembered positions row that deletes the spots it keeps and cancels any restore that's waiting, even when playback is off or paused. Tap it again within 10 seconds to undo once.
  • Ring size, Playback quality and Only accounts you follow say which switch turns them on while that switch is off, and keep your choice.
  • The HushGram row at the top of Settings and activity wraps its title at large text sizes instead of cutting it off.
  • The Before you sign in notice and the README's sign-in advice stick to what's known. They no longer rank install methods by risk. The notice is updated in all five translations.
  • With Debug logging on, the diagnostic report shows how many of their code targets Disable analytics, Sanitize sharing links and Start on x86 devices found when you patched.
  • View stories anonymously now says what a phone showed. A story you've watched keeps its colored ring and keeps showing as new.

Under the hood

  • The build moved to Gradle 9.8.0 and Guava 33.7.2, which fixes GHSA-xxph-c9ww-hj94. Guava only runs while the patches are built, and the bundle doesn't ship it.
  • The dependency audit now checks the build's own tools apart from the shipped bundle. Netty, JDOM and jose4j in those tools moved past their affected versions.
  • Eighteen more hooks are pinned in the patched-build check, and a hook that takes a boolean fails the build.
  • The release receipt reads each patch's target coverage out of the patched APK, so a required target that's missing stops the release even when its patch applied.
  • Every script that came over from Hushfacebook names the commit it came from.
  • The release tooling's own tests no longer refuse the source commit of a release after the first one.

Update steps

  1. You need Morphe Manager 1.32.0 or newer. If HushGram is already a source, update it there. Otherwise add it with this link: https://morphe.software/add-source?github=SysAdminDoc%2FHushGram
  2. Patch Instagram 449.0.0.52.84, the arm64-v8a build with version code 385511871. That's the build these patches were checked against.
  3. Install over your current HushGram build with the same Manager signing key. Android keeps Instagram's data that way, so you stay signed in. A different key means uninstalling first.
  4. The .mpp here is a patch bundle for Morphe Manager, not an Instagram APK.

Known limitations

  • Start on x86 devices hasn't been tried on an x86 device yet. On an arm phone Instagram starts and runs as before.
  • A few parts of this release were checked in tests and against Instagram's code but never seen on a phone, because the test account doesn't get them. That covers Home's Meta AI buttons, suggested stories in the stories row, friends' activity in Reels, a profile that shows Follows you, and sending to a group from the share sheet.
  • Clear remembered positions and its Undo were checked in tests and an offscreen preview, not on a phone yet.
  • Tap to play leaving a reel stopped by a tappable sticker to Instagram was read from Instagram 449's code. No reel like that turned up on a phone.
  • Instagram 449 ignores an Arabic app language, so HushGram's right-to-left layout was only checked with Android's forced right-to-left setting.
  • Sanitize sharing links cleans what Copy link and Share hand out on 449. Instagram's server adds the stkn key, and no scan of the app shows it, so a new Instagram build needs a real shared link checked.
  • The diagnostic report's target counts say what matched when you patched. They don't show that a request was stopped while the app ran.
  • A re-signed Instagram can't pass Google's Play Store check, and Instagram checks the app when you sign in.

Validation

658 runtime tests and 369 patch tests passed locally, none skipped, including the tests that read the real Instagram build. All 35 patches applied to Instagram 449.0.0.52.84 (version code 385511871) without forcing, and the patched build passed the resource table and injected-code checks. Disable analytics found all 7 of its code targets, Sanitize sharing links all 5 and Start on x86 devices both of its 2. The manifest changes only by the three advertising permissions Remove the advertising ID takes out. OSV has no advisory for any library the bundle carries (gson 2.14.0, kotlin-stdlib 2.4.20 and annotations 13.0).

Every file here is listed in SHA256SUMS.txt, and release-receipt-0.0.3.json says what applied to Instagram 449.0.0.52.84 and which toolchain built the bundle.

v0.0.2

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 01 Oct 00:43

HushGram's first release: 21 patches for Instagram 449.0.0.52.84 (arm64-v8a, version code 385511871), on Android 9 and newer.

Install. You need Morphe Manager 1.32.0 or newer. Add HushGram as a patch source with this link: https://morphe.software/add-source?github=SysAdminDoc%2FHushGram. Then patch the arm64-v8a build of Instagram 449.0.0.52.84. The .mpp here is a patch bundle, not an Instagram APK. Uninstall the Play Store Instagram first, and keep Manager's signing key for updates.

Before you sign in, read the section of that name in the README. Instagram checks the app when you sign in, and a re-signed build can't pass those checks, so use an account you've had a while and don't clear the app's data afterward.

What's in it

  • New patch, Hide ads. Sponsored posts, reels and stories don't go in, and Instagram is told the ad didn't go in, so it doesn't leave a gap.
  • New patch, Sanitize sharing links. Copy link, the Android share sheet and the app buttons in Instagram's own share sheet (WhatsApp, SMS and the rest, which skip Android's) lose stkn (the per-share id Instagram 449 adds to every shared link), igsh, igshid, utm_source and Instagram's other tracking keys, and so do the post and story links Instagram's server hands out for sharing. Keys come off Instagram's own links only. A link in someone's bio opens its page directly instead of going through l.instagram.com, Instagram's click tracker.
  • New patch, Disable analytics. Instagram's usage events go to your phone's loopback address, which refuses them, instead of to Instagram's and Facebook's logging servers.
  • New patch, Remove build expired popup. A patched Instagram doesn't update itself, and without this Instagram locks it out after a few weeks with a screen that says the version is too old.
  • Restore trust on re-signed builds, from Hushfacebook. Instagram's own signature checks see Instagram's two original certificates on a build you signed yourself.
  • HushGram settings, from Hushfacebook: a switch for each feature, Pause, automatic safe mode after three quick crashes in a row, Debug logging and a diagnostic report that leaves out links, IDs, cookies and sign-in tokens. It opens from a shortcut on Instagram's launcher icon or from a row at the top of Instagram's own Settings and activity screen, and the shortcut works before you sign in too: when Instagram's sign-in screen comes up over it, the settings move in front.
  • Runs on Android 9 and newer, which is Instagram 449's own floor. The settings screen, the launcher shortcut, safe mode and the report export all have Android 9 and 10 paths, since Hushfacebook's code expected Android 11.
  • German, Spanish, Indonesian, Brazilian Portuguese and Turkish translations for everything HushGram shows.
  • Checked beside a patched Threads signed with the same key: neither declares anything the other does, and both open and run side by side.
  • New patch, Clean up Reels. The Follow button beside a reel's author goes, and so do the pills that push Edits, templates, Meta AI and Ray-Ban Meta glasses, and friends' activity with the comment preview. Each of the three has its own switch under Reels, and they're all on once the patch is in.
  • New patch, Don't send reel watch history. Instagram isn't told which reels you watched or how far into them you got. It only uses that to rank your Reels, so reels you've already seen may come back.
  • New patch, Hide Reels in the feed. The rows of suggested reels between posts in your home feed are gone, along with the other units that open the Reels viewer from there. A reel from someone you follow still shows as a post.
  • New patch, Download any reel. Every reel's more menu has Download, including the shorter menu some accounts get, and a tap saves the reel at your download quality (the best there is by default) without Instagram's watermark. Its switch is under Reels.
  • New patch, Download any story. The menu on anyone's story has Download. A video story saves at your download quality and a photo story at its largest size, into the same folders as reels. Its switch is under Stories.
  • New patch, Download any video, off until you pick it. Someone else's post in your feed that is a video gets Download in its menu, first in the short menu most posts open now, including the one under an "About this reel" summary. A tap saves it at your download quality without Instagram's watermark. On your own video, Instagram's own Download row, where it shows one, saves the same way. Its switch is under Downloads.
  • New patch, Tap to play, off until you pick it. Videos, reels and stories wait for your tap instead of starting on their own, and feed videos show a play button that goes away once your tap starts the video and comes back when it stops. A story or video that takes a few seconds to load after your tap still starts. In Reels, a tap on a reel that's waiting starts it and a tap on a playing one pauses it. A story that's waiting starts when you press, hold and let go, the way a paused one does. A video you started keeps playing when you drag its scrubber. Its switch is in a new Playback section.
  • New patch, Resume long videos. A video or reel over two minutes that you left partway picks up there the next time it plays, once. Drag the scrubber to start somewhere else. Live videos, ads and anything you watched to the end start as usual. Its switch under Playback starts off, and the spots it keeps are dropped after 30 days.
  • New patch, Default playback quality, off until you pick it, for anyone who wants to save data or always get the sharpest picture. Pick Data saver, Up to 480p, Up to 720p or Highest under Playback in HushGram's settings, and videos, reels and video stories start at that quality where Instagram offers it. A video with nothing at or under your pick plays the closest quality above. Instagram has no quality menu of its own, so this is the only way to choose one. Once it's in, the list starts at Auto, Instagram's own choice, so nothing changes until you pick a quality. Checked on a phone: a reel started at 240p with Data saver and at 1080p with Highest, and a video story took the pick too.
  • New patch, View stories anonymously, off until you pick it. Instagram isn't told which stories you watch, so you stay off their viewer lists. Replying or reacting still shows you, and a story you've watched can show as new again. Its switch is in the Stories section.
  • New patch, Remove the advertising ID. Instagram can't read your phone's advertising ID or tell Android's ad services which ads you saw or tapped, because the permissions for them are taken out of the build. It shows under Set when you patched.
  • New patch, Turn off double tap to like, off until you pick it. A double tap on a reel or on any post in the feed, whether it's a photo, a carousel or a video, doesn't like it, and the heart doesn't show. A single tap, double tap to skip and the Like button work as before. Its switch is under Reels.
  • New patch, Open links in external browser, on by default. A web link you tap opens in your default browser instead of Instagram's in-app browser, and a bio or caption link skips Instagram's click tracker on the way. Pages on Instagram, Facebook, Messenger, Threads and Meta stay in the app, and so do ads. Its switch is under Ads and privacy.
  • New patch, Hide the Reels tab, off until you pick it. Reels leaves the tab bar, and a start or a notification meant for it opens Home, including on accounts Instagram opens on Reels. Reels in your feed and shared reels still play. Its switch is under Reels and takes effect after Instagram restarts.
  • New Downloads section in HushGram's settings. It lists the saves that are running, each with a Cancel button, and holds the download quality, the save folder, the video file name and a switch that saves videos other apps can open.
  • New patch, Stop Story auto-advance. A story stays on screen until you tap or swipe, however long it runs. Turn its switch off for Instagram's timing.
  • Disable analytics also covers the analytics address Instagram's server can hand its push connection. Before, only the address built into the app went to the loopback address, and a different one from the server went through as is.
  • With Debug logging on, the diagnostic report says what Disable analytics did with each analytics address Instagram used, and which of Instagram's processes asked for it. Checked on a phone: with the switch on, nothing reached Instagram's logging server at all.
  • HushGram's settings screen opens with a Before you sign in note under the status line: how to sign in with the least risk to your account. The settings open before you sign in too, so it's there when it matters. A tap hides it for good, and pausing HushGram doesn't bring it back. Checked on a phone in English and German.
  • Morphe Manager and bundle sites like morphe-patches.software show HushGram's own icon next to the source instead of the owner's GitHub picture. The icon is patches-bundle.png in the repository's root.
  • README now leads with a Before you sign in section that spells out how to keep your account: the sign-in is the moment Instagram checks the app with Play Integrity and your phone's hardware, so use a seasoned account, prefer a Root Mount install if you're rooted, and don't clear the app's data afterward. The account section says plainly that a re-signed build can't pass those checks.

Under the hood

  • Every patched build is checked before it ships. Its resource table has to match the original's, each hook may only use registers that were free where it went in, and each call a patch adds has to be where the patch put it, once.
  • Added a HushGram logo and README banner in the family's style, using the pink from HushGram's settings.
  • The release checks keep working after the first release. A checkout with a published index no longer stops the release tooling's own tests, an ordinary push leave...
Read more