aj3423 / SpamBlocker

Android Call/SMS blocker.
MIT License
494 stars 25 forks source link

SpamBlocker

Android Call/SMS blocker. (Android 10+)

<img src="https://github.com/user-attachments/assets/8757c78c-b0d5-4b8a-9adb-934d8a758e9e" alt="Get it on F-Droid" height="70">

Table of Contents

Screenshot

Call SMS Setting Notification

Target Audience

How it works

It works without replacing your default call/SMS app.

Features:

Filter It checks
Contacts Whether from a contact
Contact Group Whether it's a member of some contact group
STIR/SHAKEN STIR/SHAKEN attestation
Repeated Whether it's been calling repeatedly
Dialed Whether you have dialed the number
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.
In Meeting Decline calls during online video meetings
Off Time A time period that always permits calls, usually no spams at night.
Spam Database If it matches any spam number in the database. Any public downloadable spam databases can be integrated, such as the DNC.
Regex Pattern Some typical patterns:
- Any number: .* (the regex .* is equivalent to the wildcard * in 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
INTERNET For downloading spam numbers from public databases
MANAGE_EXTERNAL_STORAGE (Android 11+)
READ/WRITE_EXTERNAL_STORAGE (Android 10)
For file access from automated workflow
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 checking if a call is 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

Privacy Policy

Support

FAQ

Language support

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

Donate

:heart: https://aj3423.github.io/donate