aj3423/SpamBlocker

Android Call/SMS blocker.

Kotlin

1,908

1,236 commits

updated Oct 14, 2026

See the code

README

🙏 Help wanted

[!NOTE]
We are releasing it on the Google Play Store and need your help with the 14-day closed testing. See: https://github.com/aj3423/SpamBlocker/issues/664

SpamBlocker

Android Call/SMS blocker. (Android 10+)

SpamBlocker Get it on F-Droid Get it on Obtainium Get it on Github

Table of Contents

Screenshots

HistorySettingsNotification

How it works

It works without replacing your call/SMS app. You can kill the app after setup, it doesn't need to stay running in the background.

📞 For call:

It's a Caller ID app.

💬 For SMS:

The app takes over SMS notifications, you need to disable notifications from the SMS app to avoid duplicates.

AppSend/Receive SMSShow NotificationsMessage LogsThe Point
SpamBlocker❌✅️ Takes over notificationsReceived messages only, no sent messagesAvoid interruptions
SMS apps✅️❌ Must be manually disabledAll messages
(remain undeleted, including spam texts)
Messaging

SMS Screening provider mode:

Similar to call screening, the app can work as a service. The SMS app asks it to check messages in real time, this app simply replies "block" or "allow". It only works with SMS apps that support this SMS screening protocol. Currently, this is not supported by any SMS app :)

Features:

FilterIt checks
ContactsFrom a contact?
Contact GroupFrom a contact group?
Contact PrefixMatches prefix of an existing contact? Use case: save one clinic number xxxx22 to allow its full range xxxx11-xxxx99
STIR/SHAKENFails STIR/SHAKEN attestation?
Repeated CallsMultiple calls from the same number in a short while?
Dialed NumberHave you dialed the number?
Answered NumberAllow previously answered numbers
EmergencyAllow calls for a while after dialing an emergency number(e.g. 911)
Push AlertAllow calls after receiving notifications from other apps, e.g.: "Your order has been taken by driver ...", the driver may then contact you.
SMS AlertAllow calls after receiving SMS messages like: "[From ...] We are calling to inform ..., please feel free to answer."
SMS BombBlock continuous OTP message floods
Recent AppsAllow calls if some apps have been used recently.
Use case:
  You ordered Pizza online and soon they call you to refund.
Meeting ModeDecline calls during online video meetings.
Off TimeA time period that always allows calls, usually no spams at night.
Spam DatabaseBlock numbers in the spam database. Any downloadable spam databases can be integrated, such as the FTC-DNC registry.
Local AI TrainingTrain your own spam SMS filter
Schedule & CalendarAuto adjust rules based on time schedule and calendar events
Geolocation & CarrierBlock numbers based on geolocation or carrier name
Instant QueryCheck the incoming number online in real time, querying multiple API endpoints simultaneously, such as the PhoneBlock.
Report SpamAutomatically or manually report the number to build our crowd-sourced databases, protecting others and yourself.
Regex
(regular expression)
Check the Wiki for examples.

Limitations

FAQ

Permissions

Permission (all optional)Why
INTERNETFor database downloading / instant query / number reporting
ANSWER_PHONE_CALLSReject, answer and hang-up calls
POST_NOTIFICATIONSShow notifications
READ_CONTACTSMatch contacts
RECEIVE_SMS / RECEIVE_MMSFor SMS notification screening
SEND_SMSFor auto replying to blocked contacts
READ_CALL_LOGFor allowing repeated calls
READ_SMSFor training local AI
READ_CALENDARFor dynamically adjusting rules based on calendar events
PACKAGE_USAGE_STATSFor feature: Recent Apps (check whether an app has been used recently)
READ_PHONE_STATEFor BlockMode: Answer+Hang-up (monitor ringing state)
REQUEST_IGNORE_BATTERY_OPTIMIZATIONSFor it to keep working after being swiped and killed
NOTIFICATION_ACCESSFor feature: Push Alert (receiving notifications from other apps)
WRITE_SETTINGSFor customizing call ringtone
READ_LOGFor reporting bugs with logcat messages
SYSTEM_ALERT_WINDOWFor the caller ID floating window
SCHEDULE_EXACT_ALARMFor repeating important notifications

Privacy

  • For offline features

    No data collection.

  • For online features:

    The API server will see your:

    • IP address
    • TLS and TCP fingerprints (which would reveal your Android OS)
    • The reported number(including your country code)

    Nothing else.

  • Reproducible apk

  • Apk signing signature:

    apksigner verify --print-certs SpamBlocker.apk

    7b1ce727856f3427eab1fadfad6c9730cd4e6ba201661547f009206377dffb58

Language support

Languages are translated using AI, PRs for corrections are welcome.

Contribution Wanted

  • Both manual and AI-assisted improvements are welcome.

Some ideas

(new ideas are welcome)

Donate 🤑

https://aj3423.github.io/donate

aj3423/SpamBlocker

Android Call/SMS blocker.

Kotlin

1,908

1,236 commits

updated Oct 14, 2026

See the code

README

🙏 Help wanted

[!NOTE]
We are releasing it on the Google Play Store and need your help with the 14-day closed testing. See: https://github.com/aj3423/SpamBlocker/issues/664

SpamBlocker

Android Call/SMS blocker. (Android 10+)

SpamBlocker Get it on F-Droid Get it on Obtainium Get it on Github

Table of Contents

Screenshots

HistorySettingsNotification

How it works

It works without replacing your call/SMS app. You can kill the app after setup, it doesn't need to stay running in the background.

📞 For call:

It's a Caller ID app.

💬 For SMS:

The app takes over SMS notifications, you need to disable notifications from the SMS app to avoid duplicates.

AppSend/Receive SMSShow NotificationsMessage LogsThe Point
SpamBlocker❌✅️ Takes over notificationsReceived messages only, no sent messagesAvoid interruptions
SMS apps✅️❌ Must be manually disabledAll messages
(remain undeleted, including spam texts)
Messaging

SMS Screening provider mode:

Similar to call screening, the app can work as a service. The SMS app asks it to check messages in real time, this app simply replies "block" or "allow". It only works with SMS apps that support this SMS screening protocol. Currently, this is not supported by any SMS app :)

Features:

FilterIt checks
ContactsFrom a contact?
Contact GroupFrom a contact group?
Contact PrefixMatches prefix of an existing contact? Use case: save one clinic number xxxx22 to allow its full range xxxx11-xxxx99
STIR/SHAKENFails STIR/SHAKEN attestation?
Repeated CallsMultiple calls from the same number in a short while?
Dialed NumberHave you dialed the number?
Answered NumberAllow previously answered numbers
EmergencyAllow calls for a while after dialing an emergency number(e.g. 911)
Push AlertAllow calls after receiving notifications from other apps, e.g.: "Your order has been taken by driver ...", the driver may then contact you.
SMS AlertAllow calls after receiving SMS messages like: "[From ...] We are calling to inform ..., please feel free to answer."
SMS BombBlock continuous OTP message floods
Recent AppsAllow calls if some apps have been used recently.
Use case:
  You ordered Pizza online and soon they call you to refund.
Meeting ModeDecline calls during online video meetings.
Off TimeA time period that always allows calls, usually no spams at night.
Spam DatabaseBlock numbers in the spam database. Any downloadable spam databases can be integrated, such as the FTC-DNC registry.
Local AI TrainingTrain your own spam SMS filter
Schedule & CalendarAuto adjust rules based on time schedule and calendar events
Geolocation & CarrierBlock numbers based on geolocation or carrier name
Instant QueryCheck the incoming number online in real time, querying multiple API endpoints simultaneously, such as the PhoneBlock.
Report SpamAutomatically or manually report the number to build our crowd-sourced databases, protecting others and yourself.
Regex
(regular expression)
Check the Wiki for examples.

Limitations

FAQ

Permissions

Permission (all optional)Why
INTERNETFor database downloading / instant query / number reporting
ANSWER_PHONE_CALLSReject, answer and hang-up calls
POST_NOTIFICATIONSShow notifications
READ_CONTACTSMatch contacts
RECEIVE_SMS / RECEIVE_MMSFor SMS notification screening
SEND_SMSFor auto replying to blocked contacts
READ_CALL_LOGFor allowing repeated calls
READ_SMSFor training local AI
READ_CALENDARFor dynamically adjusting rules based on calendar events
PACKAGE_USAGE_STATSFor feature: Recent Apps (check whether an app has been used recently)
READ_PHONE_STATEFor BlockMode: Answer+Hang-up (monitor ringing state)
REQUEST_IGNORE_BATTERY_OPTIMIZATIONSFor it to keep working after being swiped and killed
NOTIFICATION_ACCESSFor feature: Push Alert (receiving notifications from other apps)
WRITE_SETTINGSFor customizing call ringtone
READ_LOGFor reporting bugs with logcat messages
SYSTEM_ALERT_WINDOWFor the caller ID floating window
SCHEDULE_EXACT_ALARMFor repeating important notifications

Privacy

  • For offline features

    No data collection.

  • For online features:

    The API server will see your:

    • IP address
    • TLS and TCP fingerprints (which would reveal your Android OS)
    • The reported number(including your country code)

    Nothing else.

  • Reproducible apk

  • Apk signing signature:

    apksigner verify --print-certs SpamBlocker.apk

    7b1ce727856f3427eab1fadfad6c9730cd4e6ba201661547f009206377dffb58

Language support

Languages are translated using AI, PRs for corrections are welcome.

Contribution Wanted

  • Both manual and AI-assisted improvements are welcome.

Some ideas

(new ideas are welcome)

Donate 🤑

https://aj3423.github.io/donate

Significant stargazers

vlakoff

80 followers · starred Jul 2024

Stavros Korokithakis

945 followers · starred Nov 2024

Émilien (perso)

452 followers · starred Mar 2026

𝗛𝗼𝗹𝗶

233 followers · starred Jun 2024