SpamBlocker – приложение с исходным кодом для фильтрации нежелательных звонков и SMS на устройствах с Android 10 и новее. Программа не заменяет стандартные приложения «Телефон» и «Сообщения». Для звонков она работает как системная служба определения номера и проверяет вызовы, а для SMS анализирует входящие сообщения и показывает собственные уведомления.
Репозиторий проекта набрал около 1,7 тыс. звёзд и 84 форка, история содержит более 1100 коммитов. Показатели отражают интерес сообщества, но не заменяют аудит безопасности.
SpamBlocker распространяется по лицензии MIT. Она разрешает использовать, изменять и распространять код, включая применение в коммерческих продуктах. При распространении нужно сохранить уведомление об авторских правах и текст лицензии. Авторы не предоставляют гарантий.
Что представляет собой SpamBlocker
SpamBlocker построен не вокруг единого облачного списка номеров, а вокруг конструктора правил. Пользователь задаёт условия, по которым звонок или сообщение разрешается, заглушается либо блокируется. Фильтры учитывают контакты, историю общения, текст SMS, время, календарь, оператора, регион и внешние базы.
Подход даёт больше контроля, чем простой переключатель «блокировать спам», но требует аккуратной настройки. Ошибка в регулярном выражении или приоритетах способна отсечь полезный вызов. Полный перечень доступных условий приведён в описании проекта.
Функции инструмента
- Контакты. Работа с адресной книгой, группами и диапазонами с общим префиксом.
- Регулярные выражения. Проверка телефонного номера и текста SMS по собственным шаблонам.
- STIR/SHAKEN. Учёт переданного оператором результата проверки подлинности номера.
- История. Разрешение ранее набранных, принятых или повторно звонящих номеров.
- Исключения. Временный пропуск звонка после уведомления, SMS или вызова экстренной службы.
- SMS Bomb. Подавление потока однотипных сообщений с одноразовыми кодами.
- Расписание. Смена правил по времени, календарю и во время видеоконференций.
- Базы и API. Импорт списков, сетевые проверки и отправка жалоб.
- Регион. Фильтрация по стране, местности и оператору.
Как работает фильтрация
При входящем вызове Android обращается к службе CallScreeningService. SpamBlocker получает доступные сведения о звонке, проверяет активные правила и возвращает системе решение. Официальная документация описывает тот же механизм Android для определения и отклонения подозрительных вызовов.
Каждое правило получает числовой приоритет. Чем больше значение, тем выше правило в цепочке. Например, разрешение контактов с приоритетом 10 перекрывает обычную блокировку с приоритетом 0. Режиму встречи можно назначить 20, чтобы во время конференции отклонялись даже некоторые разрешённые номера.
Одинаковый приоритет у противоположных правил может дать непредсказуемый результат. Настройки лучше проверять встроенным тестом и контрольными звонками. Для звонков интерфейс не обязан оставаться открытым. Расписания и SMS-уведомления зависят от фоновой работы, поэтому некоторые оболочки потребуют разрешить автозапуск и снять ограничения батареи.
Как обрабатываются SMS
В основном режиме SpamBlocker не становится полноценным SMS-клиентом. Стандартное приложение продолжает отправлять и хранить сообщения, а SpamBlocker проверяет входящие SMS и показывает уведомления. Чтобы избежать дублей, уведомления штатного клиента нужно отключить вручную. В журнале блокировщика остаются только полученные сообщения.
Экспериментальный режим SMS Screening Provider возвращает совместимому клиенту ответ «разрешить» или «заблокировать». Режим работает только с программами, которые поддерживают соответствующий протокол.
Конфиденциальность и разрешения
Согласно политике конфиденциальности, локальные функции не собирают аналитику и не передают данные. В приложении нет рекламных библиотек и трекеров. Правила, журналы и загруженные базы хранятся на устройстве.
Интернет нужен, чтобы загружать базы, мгновенно проверять номер и отправлять жалобы. Внешний сервер при запросе может увидеть IP-адрес, номер с кодом страны, время обращения, HTTP-заголовки и сведения об операционной системе. Фактический набор сохранённых данных зависит от выбранного сервиса.
Разрешения привязаны к функциям. Контакты нужны для адресной книги, журнал вызовов и SMS для истории, доступ к уведомлениям для Push Alert, календарь для расписаний, статистика приложений для Recent Apps. Полный перечень опубликован в списке разрешений.
Обычная и офлайн-сборка
Сеть можно запретить в Android. Разработчик также публикует APK без разрешения INTERNET среди релизов GitHub. Такая сборка не загружает базы, не выполняет мгновенные запросы и не отправляет жалобы.
Воспроизводимая сборка позволяет повторно скомпилировать опубликованный код и получить такой же APK. Совпадение помогает подтвердить, что после компиляции в файл не добавили скрытые компоненты.
F-Droid публикует историю проверок основной версии. Для APK без сетевого разрешения такая проверка не указана. Отсутствие проверки не говорит о вредоносном коде, но не подтверждает побайтовое совпадение с самостоятельно собранной копией.
Как установить и запустить
- Проверьте версию системы. Требуется Android 10 или новее.
- Установите приложение через F-Droid, Obtainium либо официальный GitHub.
- При первом запуске назначьте SpamBlocker службой определения номера и фильтрации звонков.
- Выдайте разрешения только для нужных функций.
- Сначала создайте исключения для контактов, ранее набранных номеров и экстренных случаев.
- Добавьте блокирующие правила, базы и регулярные выражения.
- Проверьте приоритеты встроенным тестом и сделайте несколько контрольных звонков.
- Для SMS отключите уведомления стандартного клиента, но оставьте его программой для отправки и хранения сообщений.
Ограничения
- Android 9 и более старые версии не поддерживаются.
- Поддержка RCS не планируется.
- Локальную модель искусственного интеллекта пока не реализовали.
- Автоматически очищать SMS разработчик не планирует.
- Точность онлайн-проверки зависит от сторонней базы.
- Ошибочное правило может заблокировать полезный звонок.
- Некоторые оболочки останавливают фоновые функции после закрытия приложения.
В FAQ разработчик отдельно предупреждает, что Android 16+ может показывать системное уведомление о пропущенном вызове даже для заглушённых звонков. Уточнение относится к актуальным системам: Google выпустила Android 17 16 июня 2026 года.
Плюсы и минусы
| Плюсы | Минусы |
|---|---|
| Открытый исходный код | Настраивать сложнее, чем обычные определители номера |
| Локальная работа без обязательного аккаунта | Ошибка в правилах может заблокировать полезный звонок |
| Не заменяет стандартные приложения | Для SMS нужно отключать дублирующие уведомления |
| Гибкие приоритеты, расписания и исключения | Часть функций требует широких разрешений |
| Поддержка собственных баз и API | Онлайн-проверка передаёт данные стороннему сервису |
| Доступен APK без сетевого разрешения | Для офлайн-APK не опубликована отдельная проверка воспроизводимости |
Заключение
SpamBlocker представляет собой конструктор правил для звонков и сообщений, а не готовый облачный антиспам-сервис. Программа сочетает локальную обработку, расписания, регулярные выражения, историю общения и подключаемые базы. Гибкость остаётся главным преимуществом и источником риска. Сначала лучше создать разрешающие исключения, затем постепенно включать блокировку и проверять результат. Пользователям, которым нужен один переключатель, проще начать со встроенных средств телефона.
SpamBlocker пригодится тем, кто получает много рекламных звонков, настраивает сложные расписания, работает с курьерами и хочет подключать собственные базы. Программа рассчитана на пользователей, знакомых с регулярными выражениями, API и приоритетами. Для блокировки нескольких номеров набор возможностей избыточен.
