Skip to content

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 19 Jul 17:13

Новое ядро etonify-core

  • MeowSingBox заменён на yamixdev/etonify-core, основанный на стабильной ветке sing-box 1.13.14 и адаптированный под Etonify.
  • Клиент использует libbox v1.13.14-etonify.1 и перед запуском получает список возможностей ядра. Новые функции включаются только тогда, когда встроенный AAR их действительно поддерживает.
  • Добавлены адресная проверка выбранного сервера, управляемая групповая проверка, понятные ошибки URLTest, ограничение параллелизма, общий срок выполнения и отмена устаревших сессий.
  • В ядро вошли управляемое переключение с недоступного сервера, очистка соединений и ресурсов, поддержка XHTTP/SplitHTTP и опциональная VLESS Encryption.
  • Настройки из Etonify 0.2.1 переносятся без очистки данных. Несовместимые параметры старого ядра заменяются поддерживаемыми значениями, а итоговый конфиг проверяется новым libbox до запуска сервиса.
  • Исходный код ядра подключён к репозиторию как submodule ветки etonify-dev. Встроенный AAR закреплён SHA-256, файлом provenance и точным commit ядра.

VPN, сеть и раздельная маршрутизация

  • Исправлена ситуация, когда VPN показывал успешное подключение, но DNS и весь трафик уходили в таймаут. Служебные соединения ядра надёжно исключаются из собственного туннеля.
  • Улучшено восстановление после переходов Wi-Fi ↔ мобильная сеть, выключения экрана и возврата приложения из фона.
  • VPN продолжает работать после удаления Etonify из списка недавних приложений. При повторном открытии восстанавливаются состояние, список серверов, пинг и командный канал к уже работающему ядру.
  • Раздельная маршрутизация сверяет выбранные приложения с теми пакетами, которые Android действительно добавил в VPN. Удалённое или некорректное приложение больше не оставляет сервис в частично применённом состоянии.
  • Для Android 8–12 добавлен запасной маршрут выбранных приложений. Быстрые изменения режима и списка объединяются, не создавая пересекающиеся перезапуски VPN.
  • Сохранены оба режима работы: системный VPN TUN и локальный HTTP/SOCKS-прокси. Доступ к локальному прокси защищён автоматически созданными учётными данными, в том числе при прослушивании LAN.
  • Ручное отключение больше не отменяется устаревшей командой восстановления. Диагностика показывает запрошенные и фактически применённые приложения раздельной маршрутизации.

Серверы, задержка и внешний IP

  • Нажатие на задержку на главном экране проверяет только выбранный сервер, а не всю подписку.
  • При проверке всех серверов результаты появляются по мере получения. Старые значения не выдаются за новые, поздний ответ отменённой проверки не перезаписывает актуальный результат, а реальная ошибка отображается отдельно.
  • Команды выбора сервера и URLTest выполняются последовательно и связываются с текущей сессией. Поздний ответ от старой команды больше не меняет выбранный сервер.
  • Сервер, выбранный при выключенном VPN, сохраняется и используется при следующем подключении и после перезапуска приложения.
  • «Самый быстрый» показывает задержку фактически выбранного сервера. Для «Умной маршрутизации» больше не рисуется вымышленный пинг.
  • IP сервера показывается сначала по адресу endpoint, затем уточняется внешним IP через ядро. Добавлены короткие таймауты, резервные источники, кэш и защита от запоздалых ответов старой сети.
  • Страна и флаг сервера больше не заменяются геолокацией выходного IP после включения VPN или раздельной маршрутизации.
  • Автоматический выбор, умная маршрутизация и цепочки прокси получили понятные названия и отдельные состояния в интерфейсе.

DNS, подписки и защита данных

  • Исправлен запуск с DoH, DoT, TCP и UDP DNS по доменному имени: клиент добавляет безопасный bootstrap-resolver и не создаёт циклическую DNS-зависимость.
  • Обычный IP-адрес DNS, например 1.1.1.1 или 8.8.8.8, принимается как UDP без требования вручную писать udp://.
  • Ошибки добавления и обновления подписок объясняют причину: неверный адрес, пустой ответ, HTML вместо подписки, таймаут, DNS/TLS, отсутствие серверов и основные HTTP 4xx/5xx.
  • При активном VPN подписки обновляются через физическую сеть устройства, чтобы запрос не зацикливался внутри туннеля.
  • HWID, Authorization, Cookie и другие чувствительные заголовки отправляются только по HTTPS. Междоменный redirect удаляет секретные заголовки, а переход HTTPS → HTTP блокируется.
  • Настройки, подписки, пароли и ключи в Hive защищены AES-GCM; ключ хранится в Android Keystore, а старые данные переносятся автоматически.
  • Секреты маскируются во Flutter-журнале, нативной диагностике Android и экспортируемых отчётах.

Интерфейс и производительность

  • Приложение открывает интерфейс до полной загрузки больших конфигураций подписок; активная подписка подготавливается в фоне.
  • Большие списки серверов строятся лениво и не создают все строки одновременно. Кнопка «Ещё …» открывает оставшиеся серверы, выбранная сортировка сохраняется.
  • Пинг, скорость и трафик обновляют только нужные элементы вместо перестроения всего приложения каждую секунду.
  • Нативные логи записываются пакетами в отдельном потоке, уменьшая лишние операции с хранилищем.
  • Добавлены Baseline и Startup Profile для запуска приложения, главного экрана и списка серверов.
  • Системные сообщения заменены едиными карточками с подробностями и действиями. Обновлены экран «О клиенте», история MeowTeam и ссылка на исходный код ядра.

Android, CI и обновление клиента

  • Минимальная версия повышена до Android 8.0 (API 26), удалены недостижимые ветки Android 5–7.
  • Flutter обновлён до 3.44.6; обработка VPN-разрешения и установки APK переведена на современный Activity Result API.
  • Установщик принимает APK только из закрытой папки Etonify и повторно проверяет пакет, Android API, подпись и SHA-256 перед передачей Android.
  • CI и release workflow проверяют hash и provenance libbox.aar, запускают Flutter/Android-тесты, lint, Android assemble и CodeQL.
  • GitHub Actions формирует universal и split-ABI APK, update manifest и черновик релиза с этим changelog.
  • Версия приложения обновлена до 0.2.2+6.