Skip to content

aj3423/SpamBlocker

Repository files navigation

SpamBlocker

Android Call/SMS blocker. (Android 10+)

Get it on F-Droid

Table of Contents

Screenshot

Call SMS Setting Notification

Target Audience

  • ✅ For people who are more inclined to reject unknown calls
  • For those who need to answer unknown calls, for example, salesmen or lawyers, etc:
    • ✅ If your carrier supports STIR attestation and it works well for you
    • ❌ Otherwise, consider other blockers that rely on spam database

How it works

It works without replacing your default Call/SMS app.

  • For call:
      It's the Caller ID app
  • For SMS:
      It takes over the SMS notification, it only filters the notifications, the spam messages will still be present in the SMS app.

    💡 Please turn off the notification permission of the default SMS app in system settings, otherwise there will be double SMS notifications.

Features:

Filter It checks
Contacts Whether from a contact
STIR STIR attestation
Repeated Whether the number has been calling repeatedly
Dialed Whether the number has been dialed
Recent Apps If some specific apps have been used recently, all calls are allowed.
Use case:
  You ordered Pizza online and soon they call you to refund.
Off Time A time period that always permits calls, usually no spams at night.
Regex Pattern Some typical patterns:
- Any number: .* (the regex .* is equivalent to the wildcard * in many other apps)
- Exact number: 12345
- Starts with 400: 400.*
- Ends with 123: .*123
- Shorter than 5: .{0,4}
- Longer than 10: .{11,}
- Unknown number (it's empty string): .{0} or ^$
- Contains "verification": .*verification.*
- Contains any of the words: .*(police|hospital|verification).*
- Starts with 400, with leading country code 11 or not: (?:11)?400.*
- Extract verification code from SMS message: code.*?(\d+)

Ask AI to generate or explain a regex:
  "Show me regex for checking if a string starts with 400 or 200"
  Results in (400|200).*

Permissions

Permission (all optional) Why
ANSWER_PHONE_CALLS Reject, Answer and Hang-up calls
POST_NOTIFICATIONS Show notifications
READ_CONTACTS For matching contacts
RECEIVE_SMS For receiving new messages
READ_CALL_LOG
READ_SMS
For feature: Repeated Call/Dialed (check if it's repeated)
PACKAGE_USAGE_STATS For feature: Recent Apps
For checking whether an app has been used recently
READ_PHONE_STATE For block mode: Answer + Hang-up (monitor ringing state)

Privacy

No data collection

  • No internet access, works completely offline.
  • No external storage access, only accessable to scoped storage(the Downloads folder).
  • No communication with other app

Support

  • Most problems have already been discussed in the issue list, please search first.
  • There's also a matrix channel

FAQ

Language support

Languages are translated using Gemini AI(golang script), fire an issue for requesting a new language support.

Donate

❤️ https://aj3423.github.io/donate