v0.0.4
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.
- 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 restored. Its earlier message could make that claim even when the write landed and rollback failed. All five translations carry the corrected feedback.
- Concurrent Android 9 saves keep separate hidden files and cleanup identities. Cancelling one leaves the other's bytes alone, and completed saves take different final names. A refused cleanup record removes its reserved file without touching finished media.
- Turning HushGram back on from its status card saves in the background instead of blocking settings. Both recovery controls stay disabled until the write finishes, duplicate taps are ignored, and failures leave the saved Pause choice visible for retry. Closing settings during recovery leaves detached controls alone.
- Copy comment proves the original field-name and returned-object paths before applying its hook. Empty or null replacement text removes stale Copy actions while retaining the stock menu.
- Diagnostic export descriptions show the folder the writer actually uses. Android 9 shows Instagram's own external-files folder. Android 10 and newer show Download/Morphe. The row and chooser share the same path, including translated descriptions.
- A refused sign-in notice dismissal keeps the notice visible and explains the save failure. The diagnostic report chooser closes with its settings page, and a late tap cannot reopen it after teardown.
- Add read-only MetaConfig override export and file validation tied to the exact Instagram build and typed schema. Validation reports its result without applying any overrides.
- Add an optional Copy action to the common comment menu, with an off-by-default Comments switch. An explicit tap copies the original text, including literal markup and line breaks, and uses Instagram's own menu dismissal.
- Default playback quality is included in Manager's simple mode. Its initial Auto choice leaves playback unchanged. Patches that change behavior right away stay opt-in.
- Direct MetaConfig discovery now verifies the native editor and navigation objects reach the presenter, refusing overwritten values and unsafe branch entries before changing the app.
- Save recovery can retire an already-removed Samsung gallery row even when its next delete reports no access. It needs a successful exact-row query first. Pending or unreadable rows stay queued for cleanup, and published files are kept.
- Open MetaConfig overrides from HushGram's Developer section without enabling Home long press or changing a flag. Unsupported or signed-out screens keep settings open with an explanation, and successful navigation closes them.
- Save all keeps a carousel's ordered pages in one cancellable job, with the same download quality throughout and a 32-page limit. The current-page Download stays available. Downloads keeps the complete saved, failed and skipped counts for this process, including cancellation and lower-quality warnings. Cancel keeps finished files and removes unfinished resources.
- Search installed settings by their translated labels and descriptions or English patch names, including contacts, location setup, Following and Reels. Pause, recovery and running saves' Cancel remain available. Clearing restores the same controls and choices, and filtering leaves the live Cancel button in place as progress changes. Search stays offline. Queries stay in the open page and aren't serialized when Android rebuilds it.
- Imports close the picked file before applying settings and retain the complete result across settings reopening. Saves record a separate one-byte outcome marker, so failed preference writes don't turn completion or Cancel into an interruption.
- After an interrupted save, cleanup removes its unfinished resources and the next opening explains how to save again. One opaque marker tracks each save without keeping media or account IDs. Completed and cancelled saves leave no interruption notice. Failed cleanup stays pending, including a gallery row whose deletion was refused.
- Export and import the installed patches' settings through Android's document picker. Imports validate a bounded typed file before applying values together, report unsupported keys and restart requirements, and offer a one-use Undo for 10 seconds. Failed writes say whether rollback worked. Private state and history aren't exported.
- Following, story size, Meta AI search and bottom-space settings now carry the restart requirements their descriptions already stated. Imported choices and Undo report the same requirements, and complete import feedback stays visible after its toast disappears.
Tooling
- The translation scripts stop straight away on Python older than 3.12 with one line naming the version they need. On Python 3.11 under Windows, every import used to fail with "destination changed after validation", which pointed at the wrong problem. The same cause on a newer Python with an older Windows build now gets its own plain message too.
- The injected-register verifier no longer clears a shared phone's log buffer. It writes its own marker line, reads only what follows it, and stops with a plain message if the buffer has already rotated past the marker.
- Device identity checks read ADB's standard output separately from diagnostic messages. A successful daemon startup no longer rejects the selected phone or emulator, while command failures keep their full diagnostics and invalid identities still refuse installation.
- Troubleshooting now checks the Instagram build and other enabled patch sources before blaming a changed app. Report #11 succeeded after its other source was removed. Signing-conflict guidance explains which updates preserve data and that removing a differently signed app deletes its local data.
- Device installs and verifier runs require an exclusive lease and verified device identity. Updates keep installed data and permissions, replacement uninstalls refuse, and verification selects the device's actual instruction set. Windows emulator identity replies accept their native line endings.
- Protect translation replacement with an enforced Windows file transaction. Stale edits and conflicting writers refuse the import, existing readers retain complete old bytes, and unsupported storage refuses writes. Unchanged imports still preserve exact bytes.
- Exercise every native override writer and reload prohibition with its own failing DEX fixture. Calls inside Instagram's native package remain allowed, and all existing shortcut checks stay in place.
- Refresh the settings, diagnostics and About captures from the published v0.0.3 bundle. Document their actual patch selection and verified build tools, and label source-only controls as unreleased.
- Accept reordered numbered arguments within mixed translation formats while keeping bare arguments in their original order. Changed types, indices and argument counts still stop the import.
- Export the English catalog and translations as Crowdin-compatible JSON, then validate complete or explicit partial local imports before replacing a table. Unchanged round trips keep their exact bytes. Format, escape, plural and input limits are all checked. Imports coordinate through owned locks. Hosted translation approval remains separate.
- Android 9 and Android 17 regression cases exercise settings opening, large text, right-to-left layout, system bars, recovery, diagnostic export, storage and save cancellation with Instagram 449's target SDK 36. The local push check refuses missing or skipped boundary cases, including search focus, filtered Cancel, carousel cancellation across pages and phases, and cleanup of Android 9's hidden unfinished files without deleting finished media.
Install or update
- Add the source to Morphe Manager 1.32.0 or newer with the link in the README, or update it if you already have it.
- Patch the arm64-v8a build of Instagram 449.0.0.52.84, version code 385511871. The .mpp is a patch bundle, not an Instagram APK.
- Keep the manager's signing key for updates, so a new build installs over the old one and you stay signed in.
- Read Before you sign in in the README first. A spare account keeps your main one out of it.
Validation
1290 runtime tests and all 519 patch tests passed locally. All 46 patches applied to Instagram 449.0.0.52.84 without forcing, and the resource and injected-code checks passed. The receipt and SHA256SUMS.txt beside the bundle list every file's hash.