Skip to content

v0.0.17

Latest

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 06 Nov 02:36
· 4 commits to main since this release

HushThreads v0.0.17 has 22 patches for Threads 454.0.0.54.79 (com.instagram.barcelona), and it patches that version only, on all eight APKMirror variants. It's built on Morphe patcher 2.2.0, so you need Morphe Manager 2.4.0 or newer. Update Threads to 454 before you patch.

Two new patches. Filter comments hides replies that match words or sites you list, and Show exact post times swaps 3h and 2d for the real date and time. The settings got the same look as the other Hush packages, and they come in Italian, Korean and Traditional Chinese now too.

Your reports in this release

  • #15 found videos that Save couldn't get. Text posts that show a video from another post save that post's video or carousel now.
  • #16 found that sharing a post to a patched Messenger did nothing. The Messenger tile in the share sheet opens it now, like More > Messenger already did.
  • #18 asked how to hide the HushThreads row in Threads' settings. Each way into HushThreads settings has its own switch now, under Pause, backup and diagnostics, and the last one that's on stays on.
  • #19 asked for Threads 454 on every APKMirror variant. That's what this release patches, the ARMv7 and x86 builds included.
  • #20 hit a patching failure in Sanitize sharing links on the 32-bit builds. Patching goes through on those now.
  • #21 is @Cuhosuaxemay's Filter comments patch. Its switches and your word list are in the new Comments section of HushThreads settings.

Threads

  • New Show exact post times patch. Posts and replies show the date and time they went up instead of 3h or 2d, in your phone's 12 or 24-hour format, and TalkBack reads that same time out. It's in Manager's default selection, but its switch under Posts in HushThreads settings starts off.
  • New Filter comments patch, contributed by @Cuhosuaxemay in #21. Replies to a post that match words or domains you list are left out before Threads builds its rows from them, so a spam reply ending in a shop link never shows. A reply and the replies shown under it are checked as one. A second switch under it also hides any reply with a web link, and a bare site name like shopee.vn goes in your list instead. Both start off, the matching ignores letter case, and the replies that stay keep their order. The switches and the list are in a new Comments section in HushThreads settings.
  • The HushThreads settings look like the other Hush packages' now. The logo and name sit at the top and scroll away under the top bar. Each section opens in place on the main page instead of on a page of its own, and Pause moved up into the bar. A toggle under search shows every setting in one long list. Support at the bottom has Report a problem, a Restart Threads button and the Ko-fi link, and the build line sits under everything in small type.
  • HushThreads settings and messages come in Italian, Korean and Traditional Chinese now. Phones set to Chinese for Taiwan, Hong Kong or Macau get the Traditional Chinese, which started from the translation NikolaJyun made in their fork.
  • A section near the bottom of the settings opens with its first setting in view. Before, its settings went in below the edge of the screen, so it looked like the tap did nothing.
  • Each way into HushThreads settings has its own switch under Pause, backup and diagnostics now, so you can take away the app icon shortcut, the row in Threads' settings or the long press on the logo. The last one that's on stays on, so there's always a way back in, and App info opens the settings whichever ones you keep. The row only counts on a Threads build that can show it. Asked for in #18.
  • HushThreads now patches Threads 454.0.0.54.79 only, for all eight APKMirror variants across arm64-v8a, armeabi-v7a, x86_64 and x86, including the ARMv7 and x86 builds APKMirror added a day after release. The build is matched by version name, not pinned to one code, so a reupload of the same version works too. Update Threads to 454 before you patch, and use Morphe Manager 2.4.0 or newer. v0.0.16 is the last release for 452.0.0.50.64.
  • HushThreads builds on Morphe patcher 2.2.0 now, so patching needs Morphe Manager 2.4.0 or newer. Older Managers refuse the bundle. On a computer, use morphe-desktop 2.0.0 or newer.
  • Patching goes through on Threads builds that keep a shared link, a post or a long press override in a high register. Sanitize sharing links and the Copy text hook used to stop the whole run there, and 454's ARMv7 and x86 builds do it with Share to Instagram's link. Their hooks now read a copy of the value. Reported in #20.
  • Save photos and videos now works on text posts that show a video from somewhere else. When a post has no media of its own, the Save row finds the post it links, quotes or reposts, and saves that post's video or carousel under that post's details. A post's own media still comes first.
  • The share sheet's Messenger tile opens a re-signed Messenger now, same as More > Messenger always did. Threads' launcher only accepts Meta's own signature and the tile ignored the refusal, so nothing happened. Every tile in that sheet falls back the same way. It's part of Restore screens on re-signed builds, with no switch.
  • Patched 32-bit Threads starts normally on the ARMv7 and x86 variants whose manifest asks for extracted native libraries. Merging the bundle compresses those libraries, and Threads tried to read them straight out of the APK. It loads them from the folder Android unpacked them to now.
  • A crash in Threads' first minute is kept now, so the next diagnostic report has its stack trace, the Threads build and which switches were on. Safe mode used to count those crashes without keeping any of them. A crash later on is kept only while Debug logging is on, and an error Threads recovers from on a background thread leaves the earlier crash in place. Clear diagnostic data removes a kept crash too.
  • Hide ads and Hide suggested users now also clean up For You when Threads keeps it in its spool cache. On some accounts Threads stores For You there instead of in the feed cache, and pages that went that way skipped both filters. A diagnostic report counts spool pages separately, so it shows which cache your For You uses.
  • Hide ads also catches an ad Threads slips into a For You page you already have. Threads places some ads into the page it's holding instead of sending them with a new one, and those never passed through either filter. A diagnostic report counts the inserted items it checked and the ads it kept out.
  • Hide ads and Hide suggested users also cover the other ways Threads writes For You into its cache. Refreshes, the cold-start page and some paging write their posts in directly instead of through the usual page merge, so on either cache those skipped both filters. So did a single post or card Threads adds, slots in after a post, or swaps in for one it already has. A diagnostic report counts these writes on their own.
  • Hide suggested users also takes away the row of accounts to follow that For You puts under a post right after you follow its author. Threads puts that row together on the phone, without the server's suggestion tag, so it never matched the filter. A diagnostic report counts it with the other suggestion cards.
  • When Hide ads or Hide suggested users breaks on one of For You's cache writes, the diagnostic report names that write. Before, every failure there was blamed on the feed page, even when the page was fine.
  • Patching stops with a clear error if a future Threads build answers For You's one-item writes with something other than its plain "done" value. Hide ads used to take whatever every write returned, and a lookalike could have slipped past it.
  • The patch bundle is signed now. Morphe Manager shows who signed it when you add or update the source (d0d2 eda0 b978 70da), remembers that key, and won't take an update signed by anyone else. If someone swaps the file on the way to you, Manager refuses it. The README says how to check the key.

Docs

  • The README says where HushThreads really comes from. Someone's copy of this repo under another account offers a Windows download, and HushThreads has never shipped one.
  • The README says what a Threads ban can reach and how to lower the risk, why passkey sign-in can't work on a patched Threads, what Android's 2027 developer verification changes for installs, and what INSTALL_FAILED_NO_MATCHING_ABIS means. The bug form names that error too, and the README now says how reports close.
  • NOTICE and the Licenses page credit De-Vanced now. The list of supported Threads builds and the patch list generator came from there through tiktok-patches-for-morphe, and their headers used to point at ReVanced paths that never held either file.

Tooling

  • Before anything gets tagged, a release checks the signature on the bundle copy it's going to publish, which it takes right after the build so nothing else in the checkout can swap it. That copy has to match the checksum the build wrote, and its signature has to verify against the key in morphe-signing.pub. One that changed after it was signed stops the release there instead of reaching Morphe Manager. The fixture runs, the release receipt and the index update read that same copy too, so they describe the bundle that's tagged and not whatever a later build left in the checkout.
  • The whole-app walk follows the new settings layout. It opens each section on the main page and folds it again, and it checks the one-list view from the toggle under search before putting the toggle back the way it was.
  • Changelog entries don't open with a "Threads:" label anymore. HushThreads only patches Threads, so it repeated itself on every line. The release scripts stopped adding or asking for it, and they drop it from any bullet that still has one when a release is cut.
  • The bundle signing key comes from HUSHTHREADS_BUNDLE_SIGNING_KEY first and MORPHE_SIGNING_KEY second, so a shell that kept another repo's key doesn't fail the key check.
  • A fresh checkout builds again. Dependency verification was missing the hash for junit-bom 5.13.1's module file, so Gradle stopped before compiling anything unless that file was already trusted locally.
  • A release walk ties the installed APK to the bundle and the inputs it was patched from. Publish checks its manifest and identity again, and wants every screen covered with a clean result. A walk on an install that was already on the phone needs that install's patch receipt, and a stale or incomplete one is refused.
  • The release description fixtures test conflicting build claims in the current facts now, ahead of the historical notes.
  • The notice mirror check waits 400 ms between requests, so it doesn't draw rate limits when other Hush repos check the same mirrors at the same time.
  • Fixture tests keep what they work out per build in soft references, with a 3 GB heap, so every variant fits in one run.
  • The whole-app walk waits for each screen and scrolls to the row it wants, so a slow phone no longer reads as a failed walk. It also patches the same default selection Morphe Manager does. It used to apply every patch, Change version code included, and that left the phone on a build number no ordinary build could install over.
  • The signed-app contracts find their sites by strings and shape instead of naming one build's classes, since a release checks every variant. They'd fallen behind on the move off 452 and again on 454, and caught up both times. On 454 they follow the feed merge's extra parameter, analytics sites that Threads now jumps onto, share tiles spread over several lambdas, and videos that reach the player through a helper holding autoplay off.
  • A release build patches every variant of the Threads version it declares and stops if it finds none. Before this it picked one of two variants of the same version without saying so.
  • Patching is checked with fingerprint validation on, in the fixture tests and in verify-all-patches.ps1, so a fingerprint that fits two methods of a build fails its patch. Before, the patcher hooked whichever of the two it found first.
  • The source census can finish on GitLab again. It reads the watched paths of ReVanced's mirror through GitLab's GraphQL, a few questions for every branch at once, where it used to spend one of the roughly 60 hourly REST requests on each branch and path. Branches that share a head share one comparison. Forks GitLab has scheduled for deletion aren't counted, since a scanner keeps making and deleting them. A rate limit that resets more than five minutes out fails that source right away and says when to run again, so a run no longer sleeps for most of an hour.
  • The source census report keeps two hits in a recorded repository apart when their paths differ only by case. It used to list one of them.
  • The source census flags a recorded fork or copy when code search finds Threads files in it that its own lineage doesn't hold, even if another recorded source has them. Forks used to count as plain copies of their parent, so new Threads work in one passed a clean census unless an index listed it. GitHub's code search leaves most forks out, though, so this only reaches the ones it indexes. NexAlloy-XES, now gnadgnaoh/SexAlloy, is one it can't see. It has its own reviewed entry in the ledger now, with its files' blob ids pinned.
  • A phone install doesn't stop halfway anymore when another session reads the phone's lease file at the same moment. It tries the file again for up to about four seconds before giving up.
  • The source census asks GitLab for each branch's head together with its watched paths. A branch deleted partway through a run gets its own note now. It used to read as a branch that had moved to no Threads code. GitLab code search hits in a recorded fork or copy get their blob ids too, so new Threads files in a GitLab fork flag it the way GitHub hits already did. Several forks share one request for those ids, kept under GitLab's limit on how long a question can be, and two paths or branches that differ only in case each get their own blob id.

Update

  1. You need Morphe Manager 2.4.0 or newer. If HushThreads is already one of your patch sources, Manager shows 0.0.17 once it refreshes. If it isn't, add it: https://morphe.software/add-source?github=SysAdminDoc%2FHushThreads
  2. Get Threads 454.0.0.54.79 for your phone (arm64-v8a, armeabi-v7a, x86_64 or x86) and patch that. v0.0.16 was the last release for Threads 452.
  3. Manager's default selection has every patch except Change version code, Remove share targets and Trust user-added certificates. Turn on Expert mode if you want any of those.
  4. Patch with the Morphe Manager signing key you used last time. That's what lets the update install over your patched Threads and keep your data and your login. Coming from the stock Threads, uninstall it first.
  5. On a fresh install, sign in with your Instagram username and password.

The .mpp download is a patch bundle, not a Threads APK. Installation instructions.

Validation

1073 runtime tests and 319 patch tests passed locally, along with both Android lints and the release script checks. All 22 patches applied without forcing to Threads 454.0.0.54.79, and the release receipt records the run. The dependency advisory check passed.