TTool is an Xposed/LSPosed module for Telegram Android variants. It injects a TTool entry into Telegram's main chat-list top-right options menu, lets the user select cached groups, channels, and contacts, then creates and forwards a bot-owned inline-keyboard message.
org.telegram.messengerorg.telegram.messenger.betaorg.telegram.messenger.web
- Open Telegram's main chat list.
- Tap the top-right options menu.
- Tap
TTool. - Select recipients by category: groups, channels, contacts.
- Enter a Bot Token, message text, button text, and either a URL or
callback_data. - The bot sends one source message with inline keyboard to the current Telegram user.
- The module resolves the local Telegram message id for that bot message.
- The current Telegram account forwards that bot message to the selected recipients.
This avoids relying on user-account MTProto inline keyboards, which can appear locally but are not reliably delivered as real inline keyboards to recipients.
- The current Telegram account must have started the bot, otherwise Bot API cannot send the source DM.
- URL buttons work without a bot backend.
- Callback buttons require a bot backend to handle callback queries.
- Forwarding to targets depends on the current Telegram account's normal permission to send or forward into those chats.
This project currently does not include a Gradle wrapper. Build it with a local Gradle installation compatible with Android Gradle Plugin 9.0.1.
gradle :app:assembleDebug :app:assembleReleaseThe generated APKs are:
app/build/outputs/apk/debug/app-debug.apkapp/build/outputs/apk/release/app-release.apk
The app is configured with a v2+v3 APK signature in app/build.gradle.kts.
- Keystore:
app/ttool-release.jks - Alias:
xiaoming123 - Store password:
xiaoming123 - Key password:
xiaoming123 - v1: disabled
- v2: enabled
- v3: enabled
- v4: disabled
CODEX.mdcontains the implementation plan, Telegram source research, and design decisions.- The old direct
SendMessagesHelperinline-keyboard path is kept only as research/debug code. The production path is Bot API seed message plus user-account forwarding. - The recipient picker reads Telegram's cached dialog lists through reflection, so Telegram should be opened and allowed to load the chat list before using TTool.