Commit graph

89 commits

Author SHA1 Message Date
xtclovver
90e46df80d fix: добавить ccmni/ccemni интерфейсы MediaTek в список стандартных 2026-04-12 22:15:22 +03:00
xtclovver
f2e9063f5f fix: заменить Yandex IP-чекеры на 2ip.ru и sypexgeo.net
Яндекс-эндпоинты блокируют запросы от Android/OkHttp по TLS fingerprint
и возвращают 403, что приводило к ложному срабатыванию детектора VPN.
Заменены на 2ip.ru и api.sypexgeo.net — оба хостятся в России, используют
стандартные CA и корректно отвечают на запросы от Android.

Добавлен парсинг JSON-поля "ip" в extractIp для поддержки sypexgeo.net.
2026-04-12 22:11:41 +03:00
xtclovver
8be61d6f78 fix: сохранять состояние сканирования при повороте экрана
Перенос корутины сканирования в CheckViewModel (viewModelScope), который
переживает пересоздание Activity. Результаты и прогресс накапливаются в
StateFlow<List<ScanEvent>> и воспроизводятся новым экземпляром Activity.
2026-04-12 21:12:52 +03:00
xtclovver
b0b9b68828 feat: check all active SIM cards, not just SIM1
Add SimCardInfo data class and replace flat simMcc/simCountryIso/isRoaming
fields on LocationSnapshot with simCards: List<SimCardInfo>. Collect SIM data
from all active subscriptions via SubscriptionManager.getActiveSubscriptionInfoList()
with a fallback to the default TelephonyManager for single-SIM devices or when
permission is denied. Each SIM emits its own informational finding. Roaming
confidence is derived from the SIM whose MCC matches the active network MCC.

Closes #19
2026-04-12 20:40:12 +03:00
xtclovver
d6e143a8ba fix: TUN probe fallback via Network.bindSocket for excluded apps
Apps excluded from VPN via per-app split tunnel cannot use
network.socketFactory to reach the VPN network. Add BindSocketFactory
which calls Network.bindSocket() on each unconnected socket before
connect, equivalent to curl --interface tun0 (SO_BINDTODEVICE).

UnderlyingNetworkProber now falls back to this method if the standard
network.socketFactory path fails, allowing vpnIp to be obtained even
when the app is excluded from the tunnel.
2026-04-12 20:34:15 +03:00
xtclovver
836a09e302 feat: attribute localhost proxy owner app 2026-04-12 20:17:44 +03:00
xtclovver
930e3fa0c5 fix: require comparable IPs for split tunnel detection 2026-04-12 19:45:33 +03:00
xtclovver
30ce449743 fix workflow error
Some checks failed
CI / build (push) Has been cancelled
2026-04-10 03:01:22 +03:00
xtclovver
d7395c22b7 bug fixes 2026-04-10 02:42:33 +03:00
xtclovver
ab07fe311f feat: retry geoip and ip comparison checkers 2026-04-10 02:05:37 +03:00
xtclovver
7c49e9f087 fix: language fix 2026-04-10 01:48:47 +03:00
xtclovver
22c4abbbf9 fix: устранить падение проверки на Android 8.1 2026-04-10 01:22:52 +03:00
xtclovver
8342225c26 fix: исправить регрессии bypass-детектора и порядка IP в narrative 2026-04-09 21:44:48 +03:00
xtclovver
11f919a2f4 feat: добавить мультиязычность, переключатель языка и переводы README 2026-04-09 21:40:03 +03:00
xtclovver
9ea0d05a33 fix: корректно выставлять версию APK при сборке 2026-04-09 21:06:37 +03:00
xtclovver
f22e5ffd51 fix: убрать cleartext-трафик GeoIP 2026-04-09 21:03:27 +03:00
xtclovver
e845fcbd9e refactor: extract VerdictNarrative strings to resources, add Context param 2026-04-09 19:24:26 +03:00
xtclovver
6ce66dea09 refactor: extract SettingsActivity hardcoded strings to resources 2026-04-09 16:21:41 +03:00
xtclovver
0fa5f6e931 refactor: extract MainActivity hardcoded strings to resources 2026-04-09 16:20:39 +03:00
xtclovver
8341d71be6 refactor: extract layout hardcoded strings to resources 2026-04-09 16:16:05 +03:00
xtclovver
7a2d564f26 feat: add locale configuration for en/ru/fa/zh-CN 2026-04-09 16:14:45 +03:00
xtclovver
61c2220df0 feat: пояснить итог проверки и добавить детали вердикта 2026-04-09 16:00:35 +03:00
xtclovver
74d9692392 fix: установленные VPN-приложения и VpnService как информационные данные
Найденные установленные VPN-приложения и объявленные VpnService-провайдеры
теперь отображаются в info-секции карточки «Прямые признаки», а не как
сигналы «Требует проверки». Статус карточки больше не становится жёлтым
из-за одного лишь факта установки приложения.
2026-04-09 15:26:04 +03:00
xtclovver
6a2fbdc62f feat: активный TUN-зонд через VPN Network object
Добавляет EvidenceSource.TUN_ACTIVE_PROBE и два информационных finding
в BypassChecker.reportUnderlyingNetworkResult:
- успех: запрос через vpnNetwork.openConnection() вернул IP (TUN живой)
- неудача: VPN активен, но запрос через VPN Network недоступен

Это отличает активное подтверждение маршрутизируемости TUN от пассивного
детектирования по имени интерфейса (tun0/ppp0) в IndirectSignsChecker.
Сигнал информационный, на вердикт не влияет.
2026-04-09 14:59:53 +03:00
xtclovver
6b4290442a fix: выделить VPN network binding из underlying-network leak 2026-04-09 14:58:53 +03:00
xtclovver
2e7e84d156 fix: не считать VPN gateway leak при совпадающих IP
Underlying сеть с доступом в интернет не означает обход туннеля, если
IP через VPN и underlying сеть совпадают. Теперь VPN_GATEWAY_LEAK с
detected=true выставляется только при расхождении IP-адресов; при
совпадении добавляется информационный finding без влияния на вердикт.

Fixes #8
2026-04-09 14:21:41 +03:00
xtclovver
bcd814e81c feat: показывать в настройках итоговый диапазон proxy-портов 2026-04-09 04:19:41 +03:00
xtclovver
fc5b840870 feat: показывать поэтапный прогресс проверки 2026-04-09 04:19:41 +03:00
xtclovver
a3438a8e95 feat: улучшить экран результатов и управление проверкой 2026-04-09 04:19:41 +03:00
xtclovver
24f81ec5bb feat: добавить настраиваемый dns-резолвер и улучшить сетевые проверки 2026-04-09 04:19:41 +03:00
xtclovver
d3413796f9 feat: Лучшая обработка ошибок GeoIP + текст проверки Split tunnel bypass более не должен резать глаза мерцанием 2026-04-09 04:19:41 +03:00
xtclovver
27c1832347 Актулизация README 2026-04-09 04:19:41 +03:00
xtclovver
998b78793f feat: добавить экран настроек (Material 3)
- SettingsActivity с секциями: Проверки, Приватность, Оформление, О приложении
- Material 3 TopAppBar с иконкой шестерёнки на главном экране
- Перенос GitHub и кнопки разрешений в настройки
- Тогл Split tunnel bypass (пропускает BypassChecker при отключении)
- Диапазон портов: пресеты Популярные/Расширенный/Полный/Кастомный
- ScanMode.POPULAR_ONLY в ProxyScanner
- Тогл сетевых запросов с диалогом подтверждения (пропускает GeoIP, IpComparison, BeaconDB)
- Приватный режим: маскировка последних 2 октетов IPv4 во всех карточках UI
- Выбор темы Светлая/Тёмная/Системная через AppCompatDelegate
- Тема применяется при запуске до setContentView
- Юнит-тесты для maskIp (6 тест-кейсов)
2026-04-09 04:19:41 +03:00
xtclovver
92481e8b83 feat: добавить ресурсы для экрана настроек
Строки, иконка шестерёнки, меню TopAppBar
2026-04-09 04:19:41 +03:00
xtclovver
f52b4d4991 fix: темная теме на сравнение ip 2026-04-09 04:19:41 +03:00
xtclovver
2ae845669b fix: исправить ложное определение private DNS и ULA как VPN 2026-04-09 04:19:41 +03:00
xtclovver
f1072cd384 feat: добавить предупреждение о сетевых запросах перед проверкой 2026-04-09 04:19:41 +03:00
xtclovver
41f59b0347 .gitignore update (again) 2026-04-09 04:19:41 +03:00
xtclovver
89fc82591a feat: заменить OpenCellID на BeaconDB 2026-04-09 04:19:41 +03:00
xtclovver
85acffa444 feat: Сравнение IP при подключении РФ/не-РФ чекерами 2026-04-09 04:19:41 +03:00
xtclovver
0eef1fa807 Добавить ifconfig IPv6 в сравнение IP 2026-04-09 04:19:41 +03:00
xtclovver
a041643d99 .gitignore update 2026-04-09 04:19:40 +03:00
xtclovver
4f405c6c2b Расширить сравнение IP старыми чекерами 2026-04-09 04:19:40 +03:00
xtclovver
929c7bb4c7 Добавить сравнение IP для RU и не-RU чекеров 2026-04-09 04:19:40 +03:00
xtclovver
60c0426390 дизайн: новая иконка приложения — лупа с красным прицелом на тёмном фоне 2026-04-09 04:19:40 +03:00
xtclovver
a2c20734de Привести проверки к методичке по вердикту, DNS, маршрутам и геолокации 2026-04-09 04:19:40 +03:00
xtclovver
a3b186522b исправление: не запускать MTProto probe для Xray/V2Ray портов 2026-04-09 04:19:40 +03:00
xtclovver
38cf750cf7
Delete docs directory 2026-04-08 23:21:54 +03:00
xtclovver
0992373e14 исправление: вынести кнопки Остановить и Разрешения в отдельные строки 2026-04-08 22:13:23 +03:00
xtclovver
8778ef2101 Merge branch 'main' of https://github.com/xtclovver/RKNHardering 2026-04-08 22:07:06 +03:00