Skip to content

Zapret KVN 0.2.12

Choose a tag to compare

@loop-uh loop-uh released this 24 Jul 20:05

Zapret KVN 0.2.12

  • Канал: stable
  • Android package: io.github.zapretkvn.android
  • APK: отдельные arm64-v8a, armeabi-v7a и x86_64
  • Core tag: v1.13.14-extended-2.5.2
  • Core commit: ff11f007ec798136a5de258f947a4f34011a37ea
  • Core patch SHA-256: 9f51f588bea76b108509359bec825c22d8d68f6f78b68cf191cf1f512bda22e8
  • Signing certificate SHA-256: f718835f014c8c4bfdcb281483eb9aea0d33cf705f7f1399545821b164f58898
  • arm64-v8a APK SHA-256: d4d29352f9150060e8d9e556bcf9a7018d24b723200ab155a5aaa0fb1eaef501
  • armeabi-v7a APK SHA-256: 5faea008042706119bcf10de29f760cbbf7c8a6574da3dcd32c2800216c5ac36
  • x86_64 APK SHA-256: d433a310e623eac064b111efa8bbb95a577c574a11ace4fdd2df899700cf2ff5

Что изменилось

  • Восстановлено обнаружение приложений на OEM-прошивках с урезанными ответами PackageManager: каталог использует последовательные fallback-источники и объединяет результаты без дублей.
  • В выборе VPN scope теперь видны отключённые системные приложения, которые Android всё ещё разрешает включать в per-app маршрутизацию.
  • Рекомендуемые системные приложения по умолчанию включаются в VPN scope, а пользовательские исключения сохраняются.
  • При сбое обнаружения приложений интерфейс показывает исходную причину ошибки вместо общего сообщения без диагностических деталей.
  • Исправлен импорт стандартных VLESS XHTTP URI: параметр extra разбирается как URL-кодированный JSON по XTLS, а не как Base64.
  • XTLS XHTTP options явно преобразуются в схему закреплённого sing-box-extended; неизвестные поля завершают импорт ошибкой вместо незаметной потери настроек.
  • Добавлена нативная плитка Zapret KVN для быстрых настроек Android: она запускает и останавливает VPN с выбранным профилем и показывает текущее состояние подключения.
  • Если профиль не выбран или Android ещё не выдал VPN/notification permission, плитка открывает приложение для штатного системного запроса.
  • Текстовый файл и буфер обмена теперь импортируют все найденные URI поддерживаемых протоколов, а не только первую подходящую строку.
  • В одном импорте можно смешивать VLESS, VMess, Trojan, Shadowsocks, Hysteria2 и TUIC.
  • Подписи, маркеры списка, Markdown-обёртки, Telegram-ссылки и несколько конфигов в одной строке не мешают обнаружению.
  • Все элементы многоэлементного Android-буфера объединяются перед разбором.
  • Неподдерживаемая конфигурационная URI-схема останавливает импорт явной ошибкой, чтобы частичный результат нельзя было принять за полный.
  • Расширен управляемый пул защищённых DNS-серверов для более устойчивого разрешения имён при недоступности отдельных провайдеров.
  • Явный отказ пользователя в системном запросе доступа к VPN теперь распознаётся отдельно и сопровождается понятной диагностикой.
  • Переключение сервера использует отдельный короткоживущий command client sing-box, чтобы гонка с подпиской selector-групп не пересоздавала TUN без необходимости.
  • Выбор MTU в настройках скрытия VPN теперь полностью виден и доступен на узких экранах без горизонтального прокручивания.
  • Обновлены публичная документация и Windows-сценарий сбора доказательств поведения VPN в режиме максимального энергосбережения.

Каждый APK содержит только одну архитектуру и встроенный libbox; отдельная динамическая загрузка ядра не используется.

Известные ограничения MVP

  • Android 8+; доступны отдельные arm64-v8a, armeabi-v7a и x86_64 APK, интерфейс рассчитан на телефоны.
  • Always-on/Lockdown и shared UID не поддерживаются как гарантированный per-app режим.
  • Managed DNS перехватывает TCP/UDP 53, но не встроенный DoH, DoT или mDNS; FakeIP выключен.
  • Domain-only block не является firewall: для гарантии нужен IP/CIDR rule-set.
  • Clash YAML и Hysteria v1 URI пока не импортируются; raw JSON остаётся ответственностью пользователя.
  • APK проверяется один раз при запуске; загрузка и системная установка требуют подтверждения, silent install недоступен. Подписки не обновляются в фоне, core обновляется только вместе с APK.
  • При неработающем proxy/DNS VPN закрывается без бесконечного retry и plaintext DNS fallback.