Стабильный релиз · 28.06.2026

Tunnel-0.9.1

Описание получено из официального GitHub Release и очищено allowlist-санитайзером перед отображением.

Tunnel 0.9.1#

Tunnel 0.9.1 — техническое hot-fix обновление API-подписок, сетевого контроллера, БС-режима, лимитов, отображения трафика и интерфейса обновлений.

Главное#

Слегка переработана логика API-подписок#

API-подписки теперь обновляются через прямой защищённый refresh provider-ссылки на клиенте.

Раньше backend мог отдавать уже закэшированные nodes, из-за чего подписка работала как декодированный и распаршенный вариант, обновление это исправляет. Так же позволяет на многих устройствах обновлять ее даже в режиме фильтрации Белых Списков:

  • подписка теперь зашифрована с помощью собственных методов обфускации. Хранится только в оперативной памяти.

Улучшена стабильность обновления API-подписок#

Добавлена логика bootstrap/fallback:

  • если encrypted URL уже есть — backend sync ограничен по времени;
  • если encrypted URL ещё нет — выполняется полноценная первичная синхронизация;
  • при недоступности backend приложение использует сохранённый encrypted URL;
  • старые nodes не удаляются при неудачном refresh;
  • encrypted metadata не теряется после обновления подписки.

Обновлено отображение серверов API-подписки#

Серверы из API-managed подписки теперь отображаются в едином стиле:

Tunnel #..4. , чтобы легче было запоминать последний используемый вам.

Smart Connect и Network Controller#

Улучшен сетевой контроллер#

Доработана логика Network Controller и fallback-переключений:

  • failed route помечается как bad;
  • bad node и bad endpoint больше не выбираются повторно;
  • ordinary fallback не должен сразу показывать ошибку, пока есть доступные кандидаты;
  • subscription fallback учитывает failed node и endpoint fingerprint;
  • route-not-found должен показываться только после исчерпания всех маршрутов;
  • добавлена защита от повторного выбора одного и того же фактического endpoint.

Улучшена логика БС fallback#

БС-режим теперь корректнее перебирает серверы из БС-подписок:

  • failed БС-node помечается как bad;
  • failed endpoint исключается из повторного выбора;
  • fallback не должен останавливаться после одного неудачного сервера;
  • БС fallback перебирает nodes из БС-подписок;
  • TCP ping больше не считается полноценной проверкой маршрута;
  • отсутствие TCP ping не означает, что маршрут нерабочий;
  • Не нашли маршрут показывается только после реального исчерпания доступных маршрутов.

Улучшена проверка БС-серверов#

БС-сервер теперь не должен считаться нерабочим только из-за ранней ошибки coordinator/startup-dispatch.

Сервер считается реально проверенным только после того, как приложение дошло до фактического запуска VPN/service runtime и route proof.

Это снижает риск ситуации, когда приложение быстро “перелистывает” БС-nodes, но не проверяет их по-настоящему.

Смягчена runtime-проверка аварийной сети#

Проверка аварийности во время уже установленного VPN-соединения стала мягче.

Для VLESS/VMess/Trojan/Shadowsocks аварийность теперь должна определяться через repeated relay-delay failure, а не через одиночные TCP/traffic-сигналы.

TCP ping, traffic mismatch и upload-without-download используются как диагностика, а не как причина немедленного fallback.

Отдельная логика для Hysteria2#

Hysteria2 не проверяется через VLESS-style relay-delay.

Для Hysteria2 fallback должен срабатывать только при реальной проблеме runtime/core:

  • process dead;
  • HEV runtime dead;
  • core fatal error;
  • local runtime failure.

Это уменьшает количество ложных аварийных переключений.

Уведомления и статус подключения#

Исправлены ложные Route Not Found уведомления#

Исправлена ситуация, когда приложение могло найти рабочий маршрут, но после этого всё равно показать уведомление:

Не нашли маршрут

Теперь такое уведомление должно появляться только если все доступные маршруты действительно исчерпаны.

Улучшены foreground-уведомления подключения#

Foreground notification теперь должен показывать этапы подключения для всех режимов:

  • ordinary servers;
  • personal subscriptions;
  • regular subscriptions;
  • API-managed subscriptions;
  • BS subscriptions.

В уведомлении должны отображаться этапы:

  • подготовка подключения;
  • запуск VPN-ядра;
  • ожидание ответа ядра;
  • проверка маршрута;
  • переключение на другой сервер;
  • успешное подключение.

После подключения статус должен отображаться вместе с трафиком и временем сессии.

Пример:

Подключено ⬇ 120 KB/s ⬆ 15 KB/s Текущий сеанс: 00:03:12

При fallback:

Переключаюсь на другой маршрут ⬇ ... ⬆ ... Текущий сеанс: ...

Уменьшен шум от fallback-уведомлений#

Отдельные heads-up уведомления при частых fallback-переключениях должны показываться реже, чтобы Android не заглушал канал уведомлений как слишком шумный.

Основной статус fallback должен отображаться в foreground VPN notification.

Интерфейс#

Добавлена кнопка очистки выбранных приложений#

В разделе выборочного туннелирования добавлена кнопка:

Снять все галочки

Она позволяет быстро очистить список выбранных приложений.

Добавлена информация об обновлении#

В баннер обновления добавлена кнопка информации.

Теперь можно открыть список изменений прямо из приложения. Если changelog не указан, приложение показывает fallback-текст и предлагает открыть ссылку обновления.

Проверка трафика и лимитов#

Улучшена обработка статистики трафика:

  • premium-пользователи не ограничиваются по трафику;
  • free-лимит применяется только к metered-трафику;
  • трафик ignored/bypass-приложений не должен попадать в лимиты VPN;
  • исправлена логика дневного учёта;
  • переход через полночь должен корректно разделять usage по датам;
  • traffic counters не используются как единственное доказательство аварии маршрута.

Исправления#

  • Исправлена проблема, когда API-managed subscription URL был недоступен после обновления.
  • Исправлена потеря encrypted metadata после refresh.
  • Исправлена логика fallback для БС/ordinary маршрутов.
  • Исправлено повторное использование bad node / bad endpoint.
  • Исправлены ложные уведомления о недоступности ordinary VPN.
  • Исправлены лишние route-not-found уведомления во время fallback.
  • Исправлена ситуация, когда БС fallback мог остановиться после одного неудачного node.
  • Исправлена ситуация, когда TCP ping ошибочно считался полноценной проверкой маршрута.
  • Исправлена слишком жёсткая runtime-проверка аварийной сети.
  • Улучшена обработка Hysteria2 runtime-health.
  • Улучшена диагностика Network Controller в Logcat.
  • Улучшено отображение этапов подключения в foreground notification.

Технические изменения#

  • Добавлена поддержка encryptedURL для API-managed подписок.
  • Обновлены DTO API-подписок.
  • Добавлена миграция Room для хранения expiry encrypted URL.
  • Добавлен direct refresh flow для API-managed подписок.
  • Улучшена обработка bad-state в Network Controller.
  • Улучшена логика BS detector subscription fallback.
  • Добавлена защита от повторного выбора одного и того же endpoint.
  • Добавлена диагностика причин исключения БС-candidates.
  • Улучшено разделение startup validation и runtime health.
  • Runtime-health для non-Hysteria2 смягчён до repeated relay-delay failure.
  • Hysteria2 runtime-health отделён от VLESS-style проверок.
  • Расширены debug-коды для диагностики fallback, route proof и runtime health.

Примечание#

Tunnel 0.9.1 — промежуточное hot-fix обновление перед дальнейшей переработкой Smart Connect, Network Controller и маршрутизации в Tunnel 0.9.x.

Основная цель версии — стабилизировать API-подписки, fallback-переключения, БС-режим, уведомления подключения и runtime-проверки сети.

other

73,5 МБ

Скачать APK

SHA-256: 7831ceedb858a7cb8bed20bf64926574be281e878d0b2bc24e525e6c788833f4