MCPcopy Index your code
hub / github.com/apsun/NekoSMS

github.com/apsun/NekoSMS @0.22.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.22.0 ↗ · + Follow
514 symbols 1,444 edges 69 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

NekoSMS

A pattern-based text message blocker for Android.

Requirements

Features

  • Works with all SMS apps, stock or third party
  • Block messages based on sender and/or content
  • Supports regular expressions, wildcard patterns, and more
  • Backup and restore your filter rules across devices
  • Free, both as in beer and in speech
  • No internet access, no ads, no telemetry

Q&A

Why is it called NekoSMS?

No reason in particular. I wanted a name that had "SMS" in it, and "neko" was the first word that popped into my head. Hence, NekoSMS.

Why does this app require Xposed?

Starting from Android 4.4, only the default SMS app has the ability to intercept SMS messages. In order to bypass this restriction, code must be modified at the OS level.

What are the permissions used for?

  • READ_SMS, WRITE_SMS for obvious reasons
  • VIBRATE for notifications

Does NekoSMS work with (insert SMS app here)?

As long as your ROM supports it, yes. There is no app-specific SMS blocking code, so if it works with one SMS app, it will work with them all.

How does it work? (for nerds)

It hooks the internal Android class, com.android.internal.telephony.InboundSmsHandler. This class is responsible for taking the raw SMS data received by the phone and dispatching it to the default SMS app, then broadcasting it to all apps capable of reading SMS messages.

Essentially, this app intercepts the data right before it is sent to the default SMS app, then runs it through the user-defined filters. If the message matches a blacklist rule, the broadcast is dropped.

How does it work? (for non-nerds)

Dragon magic.

Hey! Are you trying to steal my personal data?!

Does this look like the face of evil to you?

The code is fully open source, so feel free to check for yourself! :-)

Nyaa?

Nyaa!

License

All code is licensed under GPLv3. Icons are from Google's material icons library.

Extension points exported contracts — how you extend this code

OnNewArgumentsListener (Interface)
(no doc) [4 implementers]
app/src/main/java/com/crossbowffs/nekosms/app/OnNewArgumentsListener.java

Core symbols most depended-on inside this repo

i
called by 49
app/src/main/java/com/crossbowffs/nekosms/utils/Xlog.java
getContext
called by 37
app/src/main/java/com/crossbowffs/nekosms/widget/EnumAdapter.java
e
called by 31
app/src/main/java/com/crossbowffs/nekosms/utils/Xlog.java
get
called by 21
app/src/main/java/com/crossbowffs/nekosms/loader/BlockedSmsLoader.java
from
called by 20
app/src/main/java/com/crossbowffs/nekosms/app/MainActivity.java
equals
called by 18
app/src/main/java/com/crossbowffs/nekosms/utils/StringUtils.java
toString
called by 16
app/src/main/java/com/crossbowffs/nekosms/data/SmsFilterData.java
getSenderPattern
called by 14
app/src/main/java/com/crossbowffs/nekosms/data/SmsFilterData.java

Shape

Method 436
Class 70
Enum 7
Interface 1

Languages

Java100%

Modules by API surface

app/src/main/java/com/crossbowffs/nekosms/xposed/SmsHandlerHook.java33 symbols
app/src/main/java/com/crossbowffs/nekosms/data/SmsMessageData.java20 symbols
app/src/main/java/com/crossbowffs/nekosms/app/FilterEditorActivity.java19 symbols
app/src/main/java/com/crossbowffs/nekosms/app/BlockedMessagesFragment.java19 symbols
app/src/main/java/com/crossbowffs/nekosms/widget/AutoContentLoader.java18 symbols
app/src/main/java/com/crossbowffs/nekosms/utils/ReflectionUtils.java18 symbols
app/src/main/java/com/crossbowffs/nekosms/widget/AutoContentProvider.java17 symbols
app/src/main/java/com/crossbowffs/nekosms/widget/ListRecyclerView.java16 symbols
app/src/main/java/com/crossbowffs/nekosms/widget/EnumAdapter.java16 symbols
app/src/main/java/com/crossbowffs/nekosms/filters/SmsFilterLoader.java13 symbols
app/src/main/java/com/crossbowffs/nekosms/app/MainActivity.java13 symbols
app/src/main/java/com/crossbowffs/nekosms/loader/BlockedSmsLoader.java12 symbols

For agents

$ claude mcp add NekoSMS \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact