You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.