Home

Awesome

SpamBlocker

Android Call/SMS blocker. (Android 10+)

<img src="https://github.com/aj3423/SpamBlocker/assets/4710875/9d44afe7-2524-4b34-8bf3-ba285200bb5c" height="90"> <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

CallSMSSettingNotification
<img src="https://github.com/aj3423/SpamBlocker/assets/4710875/7f03d0a0-d12e-4e1b-a064-2412fc1cee8e" width="200"><img src="https://github.com/aj3423/SpamBlocker/assets/4710875/ff1dd6c3-56dc-4f64-96a5-e7ca379af035" width="200"><img src="https://github.com/aj3423/SpamBlocker/assets/4710875/a86fff09-d30b-428e-866c-0f07b874d479" width="200"><img src="https://github.com/aj3423/SpamBlocker/assets/4710875/633e0e24-5ba0-44d7-90ec-09324081d37b" width="200">

How it works

It works without replacing your default call/SMS app.

It's not necessary to leave this app running in the background, you can kill the process after it's configured, if it doesn't work, please refer to this.

Features:

FilterIt checks
ContactsWhether from a contact
Contact GroupWhether it's a member of some contact group
STIR/SHAKENSTIR/SHAKEN attestation
RepeatedWhether it's been calling repeatedly
DialedWhether you have dialed the number
Recent AppsIf some specific apps have been used recently, all calls are allowed.<br>Use case:<br>ā€ƒ You ordered Pizza online and soon they call you to refund.
In MeetingDecline calls during online video meetings
Off TimeA time period that always permits calls, usually no spams at night.
Spam DatabaseIf it matches any spam number in the database. Any public downloadable spam databases can be integrated, such as the DNC.
Instant QueryCheck the incoming number online in real time, querying multiple API endpoints simultaneously.
Report SpamAutomatically or manually report the number to multiple API endpoints to protect others and yourself.
Regex<br>(regular expression)Check the Wiki for examples.<br><br>Some typical patterns:<br> - Any number: .* (the regex .* is equivalent to the wildcard * in other apps) <br> - Exact number: 12345 <br> - Starts with 400: 400.* <br> - Ends with 123: .*123 <br> - Shorter than 5: .{0,4} <br> - Longer than 10: .{11,} <br> - Unknown number (it's empty string): .{0} or ^$<br> - Contains "verification": .*verification.* <br> - Contains any of the words: .*(police|hospital|verification).* <br> - Starts with 400, with leading country code 11 or not: (?:11)?400.* <br>- Extract verification code from SMS message: code.*?(\d+)

Permissions

Permission (all optional)Why
INTERNETFor database downloading / instant query / number reporting
MANAGE_EXTERNAL_STORAGE (Android 11+)<br>READ/WRITE_EXTERNAL_STORAGE (Android 10)For file access from automated workflow
ANSWER_PHONE_CALLSReject, Answer and Hang-up calls
POST_NOTIFICATIONSShow notifications
READ_CONTACTSFor matching contacts
RECEIVE_SMSFor receiving new messages
READ_CALL_LOG<br>READ_SMSFor checking if a call is repeated
PACKAGE_USAGE_STATSFor feature: Recent Apps <br>For checking whether an app has been used recently
READ_PHONE_STATEFor block mode: Answer+Hang-up (monitor ringing state)

Privacy

Full Privacy Policy

Support

FAQ

Language support

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

Contributing

Donate

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