Skip to content

v0.0.17

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 13 Oct 22:40
· 157 commits to main since this release

HushTelegram v0.0.17 has 68 patches for telegram.org's Telegram 13.0.2 (org.telegram.messenger.web, version code 71759) and the official Telegram beta 13.0.2 (org.telegram.messenger.beta, 71809). Sixty-four are selected by default, and every new switch starts off. This release moves to Telegram 13.0.2 and fixes patching on a phone when HushTelegram icon and name, Black and white launch logo or Use registered Maps API key is picked. HushTelegram settings has a new look, a Restart Telegram row that shows up when a switch needs one, and Quick setups for turning on the Quiet or Privacy switches in one tap. You can also open the settings by pressing and holding the Telegram title on your chat list. There are four new privacy switches. Drafts and searches can stay on your phone. Links to Telegram's own sites can open without signing you in, and with Don't share my number by default on, adding a contact doesn't share your number unless you tick the box.

What's new

  • Telegram: Leaving the optional Maps key blank now keeps Telegram's key, as the option says. Spaces around a valid key are ignored. Invalid keys still stop patching without printing the key.
  • Telegram: The HushTelegram row in Telegram's Settings now sits at the top of the account settings, right above Account, instead of below Language. While Telegram's new Wallet row is showing at the top, HushTelegram comes just under its divider. Asked for in #14.
  • Telegram: The Telegram app reference for contributors now points to where the current target builds are declared, and marks what it recorded from 12.10.6 and the 12.10.7 beta as observations of those builds rather than of today's targets.
  • Telegram: Disable draft link previews has a second switch on the Privacy page, Keep drafts on this phone. With it on, a message you start typing and leave unsent stays on this phone, and Telegram gets an empty draft in its place. Your other devices drop any copy of that chat's draft they had, and an older copy on Telegram's side can't come back over the one on this phone. Emptying the text box still clears it everywhere, in a channel's direct messages too. Turn the switch off and a draft goes up again the next time you change it. It's off unless you turn it on, and drafts sync as usual while HushTelegram is paused.
  • Telegram: Disable draft link previews has a third switch on the Privacy page, Keep searches on this phone. With it on, what you type in search's Chats tab isn't sent to Telegram. It still finds the chats and contacts stored on this phone, along with your recent searches. Messages and public accounts or posts don't show up there while it's on, and an empty result says that only this phone was searched. The other search tabs, search inside a chat and the contact pickers work as usual. It's off unless you turn it on, and search goes back to normal while HushTelegram is paused.
  • Telegram: Strip link tracking has a second switch on the Links page, No automatic sign-in on Telegram's sites. Telegram quietly adds a sign-in token for your account when you open a link to one of the websites its server lists for automatic sign-in. With this on, those links open without it, so the site doesn't know who you are until you sign in there yourself. Where the link opens doesn't change, and it works with or without Open links externally. It's off unless you turn it on.
  • Telegram: Hide phone number has a second switch on the Privacy page, Don't share my number by default. When you add someone as a contact from their chat, Telegram ticks the box that shares your phone number with them. With this on, that box starts clear. Tick it and your number goes with the contact like before, and the tick stays put if the screen redraws (after a theme change, say). It's off unless you turn it on, and the Privacy quick setup turns it on too.
  • Telegram: Folders by chat type waits for Telegram's answer before it says anything. A new folder goes into your list once Telegram's server says yes, and if it says no (its own folder limit, or anything else) you're told which and the switch goes back when nothing was made. The tab order is sent once the folders are in, and a refused order gets its own note. Turning the switch off removes a folder only once Telegram agrees. If it keeps any, the switch goes back on, and turning it off again asks for just those without making the others again. If Telegram takes a moment (offline, say), a short note says it's still being asked, and the switch waits for those answers before it can be flipped again. Folders made from now on remember the tag color Telegram's server gave them, so a color you pick later keeps the folder too. If Telegram closes before it answers, the next flip goes by what your folder list actually has, and answers that arrive after you've opened another account settle quietly without moving the switch. Folders made by earlier versions are still found and removed the same way.
  • Telegram: UnifiedPush notifications follows the current UnifiedPush rules more closely, so stricter push apps work with it. On Android 14 and up, Android tells the push app who's signing up. A new address is acknowledged right away (some apps drop one that isn't). If the push app's server goes down for a while, the sign-up and its address stay and the Push app row says the server is down. A sign-up the app turned down gets a fresh start next time, and a late refusal after a working address came in no longer counts. An address without https is turned away with a note in the row, since Telegram's servers only call https. If it replaces a working address, Telegram lets go of the old one and goes back to Firebase. A sign-up goes to the push app only once it's saved on the phone, and the same goes for an address before Telegram gets it.
  • Telegram: Translate with an outside service keeps up with fast scrolling instead of piling up work. At most 24 texts wait for an answer at once. Where you stop scrolling, the messages on screen are asked for next as answers come in, and a short notice says there's a backlog (once a minute at most). A message redrawn while it waits doesn't line up a second time. Failures while you're offline no longer pile up in memory, and a request still trickling in after 20 seconds (90 for an AI service) is closed so the next one can go.
  • Telegram: Save downloaded files tells files apart by the document they came from instead of their name and size. Two different files that happen to share both now each get a copy, and the same file downloaded again still lands only once. Files saved before this update are matched by name and size one time each, the way they were before, so updating doesn't copy them all again. If you delete a copy from Downloads, it comes back the next time that file downloads. Turning the switch off or pausing HushTelegram also stops copies still waiting their turn, and one caught halfway is removed.
  • Telegram: Keep deleted messages doesn't lose track of what it kept anymore. A message only counts as kept once the list naming it is saved, and if that save fails Telegram deletes it as usual. Clear kept messages does its work away from the screen, says "Removing" right away and "Removed" once Telegram has actually deleted them. If Telegram closes partway through, the rest goes the next time that account gets a deletion or you tap Clear again. An account slot that now holds a different account never deletes the first one's messages.
  • Telegram: Translate with an outside service checks again right before a message's text is sent. If you turned the chat off, turned the feature off (from its row or with a settings file), paused HushTelegram, signed out of that account or changed the translation service while it waited, nothing goes out. Waiting text always goes to the service that was set when the message was opened. Text already on its way can't be called back. Its answer stays hidden while that chat is off or HushTelegram is paused, and if the service fails you won't get a notice for a chat you've turned off.
  • Telegram: With more than one account signed in, Translate with an outside service keeps each account's chats to itself. A chat you turn on in one account no longer sends messages from the chat with the same ID in another, and a different account you sign in later doesn't pick up the old one's choices. Chats turned on before this update didn't record which account chose them, so they're cleared once with a short notice. Turn translation back on in the chats you want.
  • Telegram: Flipping Repair Firebase push registration now shows the restart row right away. Firebase only signs up when Telegram starts, so the change never took effect until the next launch anyway.
  • Telegram: The settings home page has two new rows. Quick setups turns on the Quiet or Privacy switches in one tap, or puts every switch back the way it started, and tells you how many settings changed. Report a problem, just above Support, opens a GitHub bug report with your HushTelegram and Telegram versions, your phone and the switches you have on already filled in. It doesn't include anything about your account.
  • Telegram: Press and hold the Telegram title at the top of your chat list to open HushTelegram settings. Telegram's chat list has no logo, so its title stands in. A tap on the title still scrolls the list back to the top, and it works while HushTelegram is paused.
  • Telegram: Flip a switch that needs a restart and a Restart Telegram row shows up right away at the top of the settings page, counting the changes waiting. Tap it and Telegram closes, then reopens on the same settings page. Before, a toast said to restart and there was nothing to tap.
  • Telegram: All 15 settings pages now share blue-black cards and cyan controls on an AMOLED background. Editors and dialogs use the same restrained corners. Switch explanations keep their full width at larger text sizes.
  • Telegram: Closing settings also closes the diagnostic report chooser. Dialogs on wide displays reserve enough space for their actions at the actual dialog width.
  • Telegram: Moved to Telegram 13.0.2, telegram.org's build (version code 71759) and the official beta (71809). The beta added an audio recorder settings entry, and HushTelegram leaves it alone.
  • Telegram: The New Year look switch now says what the snow needs. Telegram only draws it while Wallpaper rotation is on under Power Saving, in Effects in Chats, and it leaves that off on most phones that aren't high end. Seen on a phone: the snow stops the moment that option goes off and comes back with it. Refs #14.
  • Telegram: When your UnifiedPush app is uninstalled or ends the sign-up itself, Telegram is told to ask Firebase for a token again, the same way turning the switch off does. Before, Telegram's servers could keep sending to an address nothing answered. A phone without Google services has no Firebase to fall back on, so pick another UnifiedPush app there.
  • Telegram: An API ID or hash pasted with a stray space or line break is trimmed, and two empty fields keep Telegram's own pair instead of stopping the patch.
  • Telegram: When translation keeps failing, for example offline, old failures are forgotten once their one-minute wait is over instead of piling up until the service changes.
  • Telegram: HushTelegram's startup hook goes in at each return's own label in Telegram's app start, so a branch that jumps straight to a return still runs it.
  • Telegram: Settings controls share visible focus outlines, readable disabled text and 48dp touch targets. Cards, switches and dialogs use the same corner scale. Dialog headings are exposed to accessibility services. Search updates its heading as you type and keeps the keyboard open when you clear it.
  • Telegram: Filter and translation editors keep labels visible and show errors beside the field that needs attention. Validation scrolls its explanation into view, without a second popup covering the form. Dialog actions stay visible at the largest text size. Translation fields share one style, the keyboard's Done action saves, and API keys are masked and stay out of saved view state. Failed sticker-size saves keep the picker open.
  • Telegram: Notifications show a compact local status with a button for the full details and Android's notification settings. Import previews name changed filter lists and show the old and new sticker size. Both backup actions explain when they're busy, and cleared logs offer Undo while recovery is available.
  • Telegram: Quick forward destinations wrap long names inside a scrollable dialog. Clipboard and message actions explain failures, and pending actions respect Pause. Whole-chat translation now changes its menu label when you switch it on or off. Refs #8.
  • Telegram: Patching on a phone no longer stops with a disallow-doctype-decl error when HushTelegram icon and name, Black and white launch logo or Use registered Maps API key is picked. All three asked Android's XML reader for safety switches it doesn't have, so they only worked when patching from a computer. They now check each file for DTDs, XInclude and outside entities themselves before anything is written. Seen patching both Telegram builds in Morphe Manager on Android 14. Refs #6.
  • Telegram: Settings now mirror correctly in right-to-left languages, including Back and the preference list. Telegram's host layout settings stay unchanged.

Tooling

  • Tooling: Quick setups now builds against Android's public preference API. Each switch still runs its change listener and keeps its value when that listener refuses a change. The accessibility check now finds the heading and Ads row by name after Quick setups moved them down.
  • Tooling: The draft fixture checks compile again after two mask assertions reused one local variable name. Both checks remain in place.
  • Tooling: Chat-list title fixture checks now recognize method calls by their reference type. The previous uppercase opcode check missed every call because the bytecode library uses lowercase instruction names.
  • Tooling: The source ledger now covers the files behind the new privacy switches.
  • Tooling: The native library check now reads each library's GNU_RELRO segment, the part Android makes read-only after loading. On arm64 and x86_64 it fails a library whose RELRO shares a 16 KB page with writable or executable memory, since a 16 KB phone would make that memory read-only too. Receipts record where each RELRO ends and whether that's on a 16 KB boundary, the rule Google's page-size guide states. Telegram's own language-ID library ends mid-page with nothing else in that page, so it passes and the receipt says so. Older receipts without these facts still validate.
  • Tooling: Build notes now name both the source and published catalog APKs required by the push checks.
  • Tooling: The README is a lot shorter now and sticks to installing and using HushTelegram, with the patch table in the order of the settings pages. The long version, with its version history and build check notes, is still in the repository history at commit 0cbd721.
  • Tooling: Refreshed all 15 settings screenshots from the patched app. Native checks cover the settings pages and editor recovery at 200% text in German, Portuguese and mirrored layouts. Shared dialogs were checked in both themes. The source-origin ledger includes the new form helper, and the README patch table matches the shipped descriptions.
  • Tooling: Android parser checks cover ordinary UTF-8 and UTF-16 resources and confirm a refused file makes no changes and no network requests. A source check now fails the build if a patch sets up an XML parser of its own.
  • Tooling: Native navigation checks stop when device lease ownership is lost. Recovery is tied to the original device and preserves settings that were absent before the check. Bounded main-thread callbacks keep the checks usable while the settings page animates. All 12 Android 9 and Android 16 cases passed, including cancelled Back gestures, keyboard dismissal, rotation, mirrored layouts and 200% text. Settings and permission grants were restored exactly.
  • Tooling: Added the native settings navigation runner and its host checks. Reopening Telegram's existing activity uses a bounded wait, and switch checks read the actual accessibility row. Settings snapshots accept device-specific provider names while keeping recovery limited to the required settings.
  • Tooling: Verified the original sign-in reporter's successful recovery with registered credentials. Delivery without another signed-in Telegram session still needs a separate check.
  • Tooling: Refreshed the settings screenshots and added a visual reference for every page. Checked navigation and search on a patched build, including Pause and Resume from a keyboard.

Install

  1. Install Morphe Manager 1.34.0 or newer.
  2. Add HushTelegram as a patch source: https://morphe.software/add-source?github=SysAdminDoc%2FHushTelegram
  3. Get Telegram 13.0.2, version code 71759, from telegram.org's Download button. The official beta 13.0.2, build 71809, works too. The patched app needs Android 9 or newer.
  4. Coming from v0.0.13? That one was built for 13.0.1, so patch the new 13.0.2 APK and install it over your current HushTelegram with the same Morphe Manager signing key. New to HushTelegram? Uninstall the stock Telegram first, since Android won't put one over the other. Your chats come back when you sign in, but secret chats don't. Back up Morphe Manager's signing key after your first patch. You'll need it for every update.
  5. If Telegram won't send you a login code, register your own app at my.telegram.org/apps. Use only letters and numbers in the short name. Then select Use registered Telegram API credentials, fill in apiId and apiHash, and patch again. The result installs over your current HushTelegram build. Keep both values private.
  6. Want HushTelegram's own icon, or Telegram's logo in white on the black launch screen? Turn on Expert mode in Morphe Manager and pick HushTelegram icon and name or Black and white launch logo before you patch. Both work when you patch on a phone now.
  7. For notifications, open Telegram's Settings, tap Notifications, and turn on Keep-Alive Service and Background Connection near the bottom of the page. Phones where Firebase notifications don't come through can also try the UnifiedPush notifications switch on HushTelegram's Notifications page with a UnifiedPush app like ntfy.
  8. To change HushTelegram's switches, open Telegram's Settings and tap HushTelegram settings, or press and hold the Telegram title at the top of your chat list.

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

Validation

1129 runtime tests and 447 patch tests passed locally, along with both Android lints. All 68 patches applied without forcing to Telegram 13.0.2 (version code 71759) and to the 13.0.2 beta, build 71809. The release receipt checked each patched app's manifest, native libraries, resources and alignment.

This bundle also patched Telegram 13.0.2 in Morphe Manager 1.35.0 on Android 14 with HushTelegram icon and name, Black and white launch logo and Use registered Maps API key picked, and the result installed and opened. On a Samsung phone running Android 16, the patched 13.0.2 build installed over the 13.0.1 one and stayed signed in. HushTelegram settings opened from its new row and from a long press on the chat list title, and the Restart Telegram row brought Telegram back on the same page. Keep deleted messages kept a message deleted from the other side and marked it deleted, and Clear kept messages removed it.