REGSTAR
← Все проекты
WhiteListChecker iconСтабильная версия · v1.0.0

> android / диагностика мобильной сети

WhiteListChecker

Диагностика мобильной сети и обнаружение признаков режима белых списков по наблюдаемому сетевому поведению.

WhiteListChecker выполняет проверки через отдельно полученный объект Android Network для мобильного соединения, даже если Wi-Fi остаётся основной сетью телефона. Приложение объединяет HTTPS-проверки с DNS-диагностикой, хранит результаты локально и отслеживает изменения во времени.

Android 8+KotlinJetpack ComposeRoomRU / ENMIT
Статистика WhiteListChecker
Главный экран WhiteListChecker
Настройки DNS WhiteListChecker
ПлатформаAndroid 8+
Релизv1.0.0
Опубликован25 августа 2026
Модель данныхЛокально на устройстве
ЛицензияMIT

$ контекст

Что измеряет приложение

WhiteListChecker не имеет доступа к внутренним правилам фильтрации оператора. Приложение показывает наблюдаемое сетевое поведение и намеренно не выдаёт результат за доказательство конкретного механизма на стороне оператора.

01 / проблема

Один неудачный запрос не объясняет, почему ресурс недоступен.

Причиной могут быть маршрутизация, DNS, TLS, временная потеря связи, VPN или туннель, настройки устройства либо фильтрация на стороне сети. Одной проверки «работает / не работает» недостаточно для полезной диагностики.

02 / подход

Проверять прямой маршрут мобильной сети по нескольким независимым сигналам.

Приложение получает отдельный объект Android Network для мобильного соединения и выполняет через него HTTPS- и DNS-проверки, использует DNS как дополнительный диагностический сигнал, а затем локально сохраняет результат для истории, статистики и мониторинга.

> возможности

Основные возможности

Стабильная версия выполняет прямую диагностику мобильной сети и не требует аккаунта или серверной инфраструктуры владельца проекта.

01
CELL

Явная маршрутизация через мобильную сеть

Использует ConnectivityManager.requestNetwork(...) для получения TRANSPORT_CELLULAR без глобальной привязки всего процесса через bindProcessToNetwork.

02
HTTPS

Проверки сайтов через выбранную сеть

Проверяет редактируемые группы LOCAL и FOREIGN через выбранную мобильную сеть с обычной проверкой TLS-сертификата и имени хоста.

03
DNS

DNS-диагностика

Поддерживает редактируемые DNS-резолверы, UDP/53, переход на TCP/53 при сетевой ошибке и разрешение имён через выбранную мобильную сеть. DNS остаётся дополнительным сигналом, а не единственным основанием для классификации.

04
DATA

История и статистика

Room хранит историю проверок, результаты по отдельным целям, статистику и временную шкалу состояний. Данные можно экспортировать в CSV, JSON или TXT.

05
MON

Фоновый и активный мониторинг

Периодические проверки выполняются через WorkManager, а явно запущенный непрерывный мониторинг работает через сервис переднего плана (foreground service).

06
NTF

Уведомления

Поддерживает локальные Android-уведомления и необязательную личную интеграцию с Telegram через Cloudflare Worker и Telegram-бота пользователя.

07
UPD

Проверка обновлений

Асинхронно проверяет официальные GitHub Releases, не предлагает prerelease-версии как обычные стабильные обновления и позволяет открыть официальную страницу релиза.

08
ISSUE

Встроенная обратная связь

Действия «сообщить об ошибке» и «предложить улучшение» открывают GitHub Issue Forms без встраивания GitHub PAT или OAuth-токена с правами записи в APK.

09
I18N

Русский и английский интерфейс

Пользовательские диалоги, уведомления, описания для специальных возможностей и сообщения об ошибках локализованы через ресурсы Android.

$ схема_проверки

Как формируется результат

Доступность сайтов — основной сигнал классификации. DNS используется как дополнительный, поэтому один недоступный публичный DNS-резолвер не превращается автоматически в общую DNS-ошибку мобильной сети.

! Прокси и VPN намеренно не используются в основном маршруте проверки: они могут изменить измеряемый путь и сделать прямую диагностику мобильной сети недостоверной.

> интерфейс

Экраны приложения

Это актуальные скриншоты из репозитория проекта.

Главный экран
01Главный экран
Статистика
02Статистика
Настройки проверок сайтов
03Проверки сайтов
Настройки DNS
04DNS
Фоновые проверки
05Фоновые проверки
Активный мониторинг
06Активный мониторинг
Локальные уведомления
07Уведомления

$ архитектура

Архитектура приложения

Приложение использует MVVM, отдельные сценарии использования (use cases) и явную сборку зависимостей через AppContainer. Логика проверки, хранение данных и классификация вынесены из Compose-компонентов.

UI

Jetpack Compose + Material 3, MainViewModel и AppUpdateViewModel.

Домен

WhitelistCheckUseCase, CheckAndNotifyUseCase, CheckForAppUpdateUseCase и WhitelistStateClassifier.

Сеть

CellularNetworkProvider, MobileSiteChecker, CellularDnsResolver и OkHttp с фабрикой сокетов выбранного Android Network там, где это требуется.

Хранение данных

Схема Room 8 хранит историю, статистику и временную шкалу; DataStore Preferences — настройки приложения, модуля проверки, уведомлений и мониторинга.

Фоновые задачи

WorkManager используется для периодических проверок, а ActiveMonitoringService — для явно запущенного активного мониторинга в режиме foreground service.

Дополнительные интеграции

Публичный GitHub Releases API используется для проверки обновлений, а Cloudflare Worker пользователя — для необязательной личной интеграции с Telegram.

$ инженерные_решения

Инженерные решения

Эти ограничения являются частью дизайна продукта, а не отсутствующими функциями.

Изоляция мобильной сети

Не привязывать весь процесс к мобильным данным

Модуль проверки получает отдельный объект Android Network для мобильного соединения и создаёт через него DNS/HTTPS-трафик. Привязка всего процесса через bindProcessToNetwork намеренно не используется.

Классификация

Не сводить диагностику к DNS

Проверки сайтов являются основным сигналом. DNS остаётся дополнительным, поэтому сбои отдельных публичных DNS-резолверов не должны определять итоговый статус приложения.

Достоверность измерения

Без прокси/VPN в маршруте проверки

Прокси или туннель меняет измеряемый путь. Поддержка такого транспорта в основном модуле проверки противоречила бы цели прямой диагностики мобильной сети.

Переход на local-first

Удалить старый центральный сервис без потери истории

Миграция Room 7 → 8 удаляет устаревшую таблицу pending_public_reports, сохраняя историю, статистику, проверяемые цели и настройки пользователя.

Фоновая работа

Использовать подходящий механизм фоновой работы Android

WorkManager выполняет запланированные периодические проверки. Foreground service используется только для активного мониторинга, который пользователь запускает явно.

Доставка обновлений

Проверять обновления без автоматической установки

Приложение проверяет публичные GitHub Releases, отфильтровывает prerelease-версии и открывает официальную страницу релиза. Загрузка APK и установка остаются под контролем пользователя и Android.

> технологии

Технологический стек

Kotlinприложение
JDK 17сборка
Jetpack Compose + Material 3UI
MVVM + use casesархитектура
Coroutines + Flowасинхронное состояние
Room schema 8история
DataStore Preferencesнастройки
WorkManagerфоновые задачи
Foreground Serviceактивный мониторинг
OkHttpHTTPS
ConnectivityManagerмаршрутизация

> приватность

LOCAL-FIRST

Для основной функциональности центральный сервис не требуется.

Начиная с v1.0.0 старый центральный публичный сервис проекта удалён. Проверки, история и статистика остаются на устройстве.

  • История проверок хранится локально
  • Статистика хранится локально
  • Обязательный аккаунт не нужен
  • Нет центральной серверной инфраструктуры проекта для диагностики
  • Проверка обновлений не отправляет историю или настройки
  • Личная интеграция с Telegram необязательна и управляется самим пользователем

> безопасность

ГРАНИЦЫ БЕЗОПАСНОСТИ

Диагностика без отключения проверок безопасности TLS.

HTTPS-проверки сохраняют обычную проверку TLS-сертификата и имени хоста. APK не содержит GitHub PAT/OAuth-токена с правами записи и не содержит Telegram BOT_TOKEN.

  • Проверка TLS-сертификата остаётся включённой
  • Проверка имени хоста остаётся включённой
  • Нет GitHub PAT/OAuth-секрета в APK
  • Нет Telegram BOT_TOKEN в APK
  • Ключ подписи релизов и учётные данные не хранятся в Git
  • Обратная связь открывает публичные формы GitHub Issues

> параметры сборки

Параметры Android

minSdk26
compileSdk35
targetSdk35
versionCode26
versionName1.0.0
Артефакт релизаAPK
ЯзыкиRU / EN

$ стабильный_релиз

WhiteListChecker v1.0.0

Первый стабильный релиз опубликован 25 августа 2026 года. Официальный APK и файл контрольных сумм распространяются через GitHub Releases.

APK SHA-25653EE6B90AA3D2FB5A928519E3F6B411DD4572E1C2EE45519797449C4F3EB3ED3
Версия1.0.0
Опубликован25 августа 2026
APKWhiteListChecker-v1.0.0-release.apk
Размер9 972 068 байт
КаналСтабильный
ОбновленияGitHub Releases

> ссылки проекта

Разработка и документация

GitHub остаётся источником истины для кода, релизов, задач и технической документации.