An Android SMS app built to silently block spam and keep it out of your system message storage.
Most spam blockers on Android just move spam into a "Spam" folder. The messages still get saved into your phone's central SMS database, and they still show up if you switch messaging apps or restore backups.
Heimdall works differently:
- When set as your default SMS app, it intercepts incoming messages before they hit Android's system database.
- If a message matches your spam rules, it gets dropped silently—no notification, no vibration, and it is never written to the system SMS database.
- Real messages (bank alerts, OTPs, personal texts) are written to Android's SMS database normally.
- If you ever switch back to Google Messages, your inbox stays clean because the spam was never stored on your phone in the first place.
💬 Note on sending SMS: Heimdall is designed for reading and filtering incoming messages, not composing new ones. If you need to send an SMS or use RCS, switch your default app back to Google Messages (there is a shortcut button right in Settings). All your clean messages will be right there.
- 🔇 Silent spam blocking: Blocked messages make no sound, show no alerts, and never touch the system database.
- 🗑️ Auto-deletes old spam: Blocked messages kept in Heimdall are automatically deleted after 30 days.
- 🎯 Custom keyword rules: Add any words or phrases to your blocklist (works with any language or script).
- 🔑 1-tap OTP copy: Extracts verification codes and puts a "Copy" button directly on the notification. Clicking it copies the code and dismisses the alert.
- 🔒 100% offline: No internet permission requested. None of your messages or data can leave your device.
- 🏷️ Smart message categories: Automatically tags incoming messages as Bank, Card, Delivery, Travel, or OTP on arrival.
| Feature | Heimdall | Standard FOSS SMS (Fossify / QKSMS) | Notification Filters (e.g., Buzzkill) | Proprietary Apps (Google Messages / Truecaller) |
|---|---|---|---|---|
| Silent Pre-Storage Drop (Spam never reaches system SMS DB) | ✅ | ❌ (Stored in DB) | ❌ (Dismisses alerts only) | ❌ (Stored in DB) |
| 100% Offline (No Internet Permission) | ✅ | ✅ | ✅ | ❌ (Requires network/cloud) |
| Auto 30-Day Spam Purge | ✅ | ❌ (Manual cleanup) | ❌ | ❌ |
| 1-Tap OTP Copy & Auto-Dismiss | ✅ | ❌ | ||
| Offline Message Categorization (Bank, Card, Delivery, Travel, OTP) | ✅ (100% On-Device) | ❌ | ❌ | |
| No Account / No Telemetry | ✅ | ✅ | ✅ | ❌ |
- Grab
app/build/outputs/apk/debug/app-debug.apk. - Transfer it to your phone and install it.
- Open Heimdall, grant SMS permissions, and set it as your default SMS app in Settings.
Requires JDK 17+ and the Android SDK.
git clone https://github.com/your-username/Heimdall.git
cd Heimdall
# Build APK
./gradlew assembleDebug
# Or install directly to a connected phone
./gradlew installDebug