An Android app that acts as a Telegram Bot controller for SmsForwarder, allowing you to remotely control your SmsForwarder device via Telegram.
| Command | Description |
|---|---|
/config |
View remote device configuration and enabled features |
/battery |
Query battery level, voltage, temperature and status |
/location |
Query GPS location with address and map pin |
/sms_send |
Send SMS interactively (select SIM → enter number → enter content → confirm) |
/sms_query |
Query received or sent SMS records with pagination |
/call_query |
Query incoming / outgoing / missed call records with pagination |
/contact_query |
Search contacts by name or phone number |
/contact_add |
Add a new contact |
/wol |
Send a Wake-on-LAN magic packet |
/clone |
Pull clone configuration from the remote device |
/check |
Check connectivity and security configuration |
/cancel |
Cancel the current interactive operation |
- Android 7.0 (API 24) or higher
- SmsForwarder running on the target device with the HTTP API enabled
- A Telegram Bot token (create one via @BotFather)
- Install the APK on the same device running SmsForwarder (or any Android device on the same network if you adjust the host)
- Open the app and fill in Basic Settings:
- Telegram Bot Token — the token from BotFather
- SmsForwarder Port — the HTTP API port configured in SmsForwarder (default:
5000) - Allowed User IDs — comma-separated Telegram user IDs that are allowed to control the bot (leave empty to allow everyone)
- Bot Language —
中文orEnglish
- Fill in Security Settings to match what is configured in SmsForwarder:
none— no authenticationsign— HMAC-SHA256 signature; enter the shared secretrsa— RSA encryption; paste the PEM public and private keys
- Use Test Connection to verify the port and security settings are correct before saving
- Tap Save Settings, then tap Start to launch the foreground service
- Open Telegram and send
/startto your bot
| Mode | Description |
|---|---|
none |
No authentication — suitable for local-only use |
sign |
Each request is signed with HMAC-SHA256 using a shared secret |
rsa |
Request body is RSA-encrypted (PKCS#1 v1.5) |
- Language: Kotlin
- UI: Jetpack Compose + Material3
- Networking: OkHttp (Telegram long-polling + SmsForwarder API)
- Storage: DataStore Preferences
- Background: Foreground Service with WakeLock
./gradlew assembleDebugThe APK will be at app/build/outputs/apk/debug/app-debug.apk.
GitHub Actions automatically builds a debug APK on every push to main.
Pushing a v* tag (e.g. v1.0.0) triggers a release build and creates a GitHub Release with the APK attached.