Skip to content

Releases: Sir-MmD/xsms

v1.5

Choose a tag to compare

@Sir-MmD Sir-MmD released this 12 Jul 23:39
  • Backup & restore — save every setting to one file: all bots and their tokens, allowed users, per-user permissions, SIM/sender filters, and mute lists, plus app settings (theme, Anti-Kill steps).
  • Do it from the app (save to / load from any file) or straight from the bot — 💾 Backup sends you the file, ♻️ Restore takes one back.
  • Restore is replace-all: the device ends up matching the backup exactly. It asks for confirmation first.
  • Two new per-user bot permissions: Backup and Restore.

Android runtime permissions (SMS, call log, contacts) aren't part of a backup — re-grant them on the Permissions screen after restoring on a new phone.

Install xsms-v1.5.apk below, or update from inside the app.

v1.4

Choose a tag to compare

@Sir-MmD Sir-MmD released this 08 Jun 11:40
  • Mute and Restrict now work for name-only senders — alphanumeric sender IDs (banks, services like "MyBank" / "Telegram") and short codes. These couldn't be matched before, so muting or restricting them did nothing.
  • Faster reconnect: the bridge re-establishes its Telegram connection on screen-wake (and via the watchdog) when the poll has gone stale, so it recovers without you having to open the app.

v1.3

Choose a tag to compare

@Sir-MmD Sir-MmD released this 30 May 19:40
  • Missed-SMS replay — messages that arrive while the bridge is offline are forwarded once it reconnects (tagged "Missed SMS").
  • Faster reconnect — the bridge reconnects the moment connectivity returns, instead of waiting on a stale connection.
  • Per-user sender filter — forward to a user from only certain numbers, or everyone except some. Pick from contacts; no country code needed.
  • Per-user SIM scoping — limiting a user to a SIM now also hides incoming SMS from other SIMs.
  • In-app updates — xsms checks GitHub for a newer release and installs it for you.
  • Send SMS no longer asks for a country code.

Install xsms-v1.3.apk below, or update from inside the app.

v1.2

Choose a tag to compare

@Sir-MmD Sir-MmD released this 28 May 11:50

Changes

  • Inbox-wide search, accessible from the bot's main menu. Searches across message body, contact name, and address. A live progress indicator updates as threads are scanned.
  • All SMS surfaces now show an explicit date and time (Today, Yesterday, or the calendar date) instead of relative timestamps. Applies to the incoming-SMS push, the conversation list, every per-message card, and the search-results list.
  • Refined incoming-SMS push layout: emoji-led metadata lines for time, SIM, and sender.
  • Every push notification includes a Home button so the main menu is one tap away.

Install

```
adb install -r xsms-v1.2.apk
```

Bots, mute list, and preferences are preserved on update.

v1.1 — Mute list, contact names, pretty numbers

Choose a tag to compare

@Sir-MmD Sir-MmD released this 28 May 01:15

Highlights

Mute list (replaces Block). New main-menu entry; manage muted numbers with add-by-typing and add-by-contact-picker, tap to unmute. Per-bot. Existing Block Contact permission auto-migrates to Mute Contact on first launch.

Contact names everywhere. Push, reply prompt, sent confirmation, composing, SIM picker, and conversation header now show the saved contact name alongside the number.

Pretty phone numbers. Numbers display as +98 915 115 1515 instead of compact form. Default region auto-detected from the active SIM.

SIM info on incoming SMS + conversation. Push notification headers show "via SIM 1: ", and each message card in the conversation view shows the SIM that handled it.

New action buttons:

  • ➕ Add contact — on push notifications + conversation view (only when the number isn't already a contact). Pre-fills the number, skips straight to name + save location.
  • 💬 Open conversation — on push notifications, jumps to the saved SMS thread for that number.

Refactor: BotRouter.kt split from 2117 → 845 lines across 7 feature files (Format / Compose / Inbox / Calls / Contacts / Mute) using Kotlin extension functions. No behavior change.

Notification icon now matches the launcher monochrome (speech bubble + X).

Install

adb install -r xsms-v1.1.apk

Existing bots, mute list, and preferences are preserved (release-signed update).

xsms v1.0

Choose a tag to compare

@Sir-MmD Sir-MmD released this 27 May 15:13

Initial public release. Properly release-signed.

Self-hosted SMS ↔ Telegram bridge. Your phone runs everything; no server, no account, no cloud sync.

Highlights

  • Forward incoming SMS to your private Telegram bot with tap-to-reply.
  • Send SMS back from Telegram, with dual-SIM picker.
  • Browse SMS inbox, call log, and contacts; paginated CSV export for each.
  • Per-conversation view with dynamic char-budget pagination, sort toggle, and per-thread CSV export — full message bodies, no truncation.
  • 8-permission per-user model × N allowed users per bot.
  • Per-bot SOCKS5 proxy (RFC 1928 / 1929) with remote DNS for restricted regions.
  • Block numbers with or without a saved contact (from the SMS push or inside a conversation).
  • Foreground service + WorkManager watchdog + boot receiver for OEM survival (Samsung, Xiaomi, Huawei, OnePlus, OPPO, Vivo, Asus).
  • True-black OLED dark theme; Material 3 throughout.

Requirements

  • Android 7.0 Nougat (API 24) or later.
  • A Telegram bot via @BotFather.

Install

Download `xsms-v1.0.apk` below directly on your phone and tap it to install. Android will prompt you to allow installs from unknown sources the first time. Package name is `xsms.app`.

See the README for the full setup walkthrough.