# История изменений (Changelog) — Mirrly TG Proxy Все важные изменения проекта Mirrly TG Proxy документируются в этом файле. ## [v2.0.0 (Pre-Release)] Мульти-аплинк шлюз, английский язык, стабилизация FSM, диагностика и онбординг. --- ## 1. Контрольные отпечатки SHA-256 * **app-universal-release.apk SHA-256**: `D450E64CC12B170DFC82D4258EFBF76540DA9C34AF3C2E12965EBC0BB3E8BE6F` * **app-arm64-v8a-release.apk SHA-256**: `7BB80109FC47B21B53F0133CA1709FE2CA1476AECCB7E759AEF3022EDEF9BAC9` * **app-armeabi-v7a-release.apk SHA-256**: `329CD4D64812E8AC512FBE63AE16B996BD2CEDB85055C79F4B7A96D20BB738FA` * **app-x86_64-release.apk SHA-256**: `9EC46A3521C3C1EEB33635791432B3A1B59E205259622354F86F0C521E62468D` * **app-x86-release.apk SHA-256**: `3036FEF1026FDE5A6D40E1B41938A03FACAB701F7F85431837AF0E51CFC6148F` * **SHA-256 подписи (Release)**: `97:73:5C:0A:20:70:7F:D4:E4:BD:93:A2:D8:48:CA:91:9A:C5:40:45:4A:62:16:E8:CC:7D:43:4F:1F:9F:0A:96` --- ## 2. Назначение установочных пакетов (APK) * **app-universal-release.apk**: Универсальная сборка. Содержит нативные библиотеки под все архитектуры (ARM64, ARMv7, x86, x86_64). Гарантированно подходит для любого Android-устройства. Единый основной файл для автообновлений и публикации. * **app-arm64-v8a-release.apk**: Сборка ARM64. Оптимизирована для большинства современных смартфонов и планшетов (64-битные процессоры ARM). Обладает наименьшим размером. * **app-armeabi-v7a-release.apk**: Сборка ARMv7. Для старых 32-битных Android-устройств. * **app-x86_64-release.apk**: Сборка x86_64. Для 64-битных эмуляторов Android (Android Studio, LDPlayer, BlueStacks) и устройств на базе процессоров Intel/AMD. * **app-x86-release.apk**: Сборка x86. Для 32-битных эмуляторов Android x86. --- ## 3. Готовый функционал (Стабильно) ### Локализация и языки * **Поддержка английского языка**: Добавлен полный перевод интерфейса, системных уведомлений и диалогов на английский язык (`values-en`). * **Выбор языка в системе**: Поддержка индивидуального выбора языка приложения в настройках Android 13+ (`locales_config`). ### Маршрутизация и проксирование * **Режим WORKER**: Туннелирование трафика через Cloudflare Worker по протоколу WebSocket TLS 1.3 на порт 443 с защитой Anti-Open-Relay. * **Режим VLESS**: Поддержка Reality и маскировки под HTTPS-трафик на порт 443 с возможностью указания пула CDN-доменов. * **Режим SOCKS5**: Локальный слушатель на порту 10808 с аутентификацией и TCP relay для передачи трафика Telegram. * **Режим HYBRID**: Автоматическое резервирование соединения при недоступности основного узла. * **Привязка к дата-центрам (DC Affinity)**: Маршрутизация соединений Telegram к соответствующим дата-центрам для устранения повторных рукопожатий. * **Политика доверия (Trust Policy)**: Изоляция приватных конфигураций VPS от утечки на публичные релеи (`allowPublicRelayFallbackForPrivateVps`). ### Стабилизация сети и надежность * **Автомат состояний сети (FSM)**: Логика переходов `NORMAL`, `DEGRADED`, `RECOVERING` для предотвращения частых переподключений. * **Защита от флэппинга (Anti-Flapping)**: Окно фиксации задержек 5–10 секунд и период охлаждения 30–60 секунд при нестабильном радиоканале. * **Изоляция поколений сети (Generation Guard)**: Исключение гонок сокетов и применения устаревших DNS-ответов при переключении между Wi-Fi и LTE. * **Потоковый контроль буферов (Flow Control)**: Буфер записи 4 МБ в воркере и ядре Rust с водяными знаками для предотвращения обрывов связи (код 1009) при передаче медиафайлов. * **Экспресс-анализ (Smart Connect)**: Проверка готовности узлов за 2–3 секунды перед установлением соединения. ### Интерфейс и пользовательский опыт * **Экран первого запуска (Onboarding)**: Стартовое руководство для новых пользователей с пошаговой настройкой. * **Официальный Telegram-канал**: Экран перехода в канал проекта (`@WhyOkyHb`) с информацией о релизах. * **Разделение настроек (Simple / Advanced)**: Базовый режим для быстрого старта и расширенный режим с доступом к сетевым буферам, `TCP_NODELAY` и параметрам TLS. * **Обновленный дизайн главного экрана**: Фокус на текущем статусе подключения, сокращение вторичных технических параметров. ### Безопасность и диагностика * **Диагностический отчёт**: Встроенный генератор отчёта о состоянии системы с экспортом через буфер или диалог «Поделиться». * **Защита конфиденциальности (Zero Secret Leak)**: Автоматическая маскировка токенов, паролей SOCKS5, личных доменов и закрытых ключей (`[REDACTED]`). * **Классификация сетевых ошибок**: Разделение причин сбоев на доменные категории с понятным описанием для пользователя и кодом для логов. * **Проверка подписи обновлений**: Валидация цифровой подписи APK в нативном слое Rust/NDK перед запуском системного установщика. * **Встроенный модуль автопроверки (UpdateChecker)**: Парсинг релизов GitHub с обязательной сверкой контрольных сумм SHA-256. --- ## 4. Функционал на стадии тестирования (Может работать не у всех) * **Режим MASQUE (Anycast HTTP/3)**: Прямое туннелирование трафика через Cloudflare WARP с использованием протокола CONNECT-UDP и дейтаграмм QUIC. Зависит от доступности UDP/Anycast на стороне интернет-провайдера. * **Режим AWG (AmneziaWG Anycast)**: Камуфлирование протокола WireGuard для обхода сигнатурного анализа DPI (заголовки `H1..H4`, мусорные пакеты `Jc`, инициализация `I1`, кастомные INI-конфигурации). * **Каскадный режим (WARP_CASCADE)**: Автоматическое переключение по цепочке `MASQUE` -> `AWG` -> `Worker WSS` при блокировках. * **Профилировщик фаз подключения (Pipeline Profiler)**: Замер миллисекундных задержек на этапах валидации конфигурации, резолвинга DNS, рукопожатия и проверки сквозного канала. * **Менеджер аккаунтов WARP**: Регистрация устройств, получение учетных данных и сканирование Anycast-эндпоинтов на стороне клиента. --- ## 5. В разработке (Превью) * **Системный VPN-режим (VpnService)**: Графический интерфейс с орбитальным кольцом и кинетической анимацией для будущего перехвата трафика всего устройства (в текущем релизе проксирование Telegram полностью автономно). * **Встроенный замер скорости (SpeedTest)**: Модуль измерения пропускной способности соединения внутри приложения. --- ## [v1.1.8.3] Тест скорости туннеля, энергосбережение при офлайне, авторизация SOCKS5 и расписание. --- ## 1. Контрольные отпечатки SHA-256 * **app-universal-release.apk SHA-256**: `E590DD61BDCC4466532BC0FC1B784DE3147F8C0D6BAAEC4D88251E2C0ECB51F3` * **app-release.apk SHA-256**: `E590DD61BDCC4466532BC0FC1B784DE3147F8C0D6BAAEC4D88251E2C0ECB51F3` * **app-debug.apk SHA-256**: `6B8EA2EC63F7F0CD967B3481F2B5CD3FB000E6DBFC109A02F919246C01F68D66` * **app-arm64-v8a-release.apk SHA-256**: `1FDE62A0055BC452B5FEFB9CA77D8221486B4E0A320CEB84A9A0B9D5301ECC1D` * **app-armeabi-v7a-release.apk SHA-256**: `2AB5B722946E342CBCCB45A0610E9ED4477869C4B8E209EDD5F6A3518FCA8E8B` * **app-x86_64-release.apk SHA-256**: `385431F62EC2E785F680F44A0A02A1E248A6A9CAA08AF87375421F1327C8203F` * **app-x86-release.apk SHA-256**: `260FA112A9BEBC66E992D72E10F05B545021FA5F96593B2C5795BBA020BA31EC` * **SHA-256 подписи (Release)**: `97:73:5C:0A:20:70:7F:D4:E4:BD:93:A2:D8:48:CA:91:9A:C5:40:45:4A:62:16:E8:CC:7D:43:4F:1F:9F:0A:96` --- ## 2. Назначение установочных пакетов (APK) * **app-universal-release.apk**: Универсальная сборка. Содержит нативные библиотеки под все архитектуры (ARM64, ARMv7, x86, x86_64). Гарантированно подходит для любого Android-устройства. Единый основной файл для автообновлений и публикации. * **app-arm64-v8a-release.apk**: Сборка ARM64. Оптимизирована для большинства современных смартфонов и планшетов (64-битные процессоры ARM). Обладает наименьшим размером. * **app-armeabi-v7a-release.apk**: Сборка ARMv7. Для старых 32-битных Android-устройств. * **app-x86_64-release.apk**: Сборка x86_64. Для 64-битных эмуляторов Android (Android Studio, LDPlayer, BlueStacks) и устройств на базе процессоров Intel/AMD. * **app-x86-release.apk**: Сборка x86. Для 32-битных эмуляторов Android x86. --- ## 3. Ключевые изменения ### Энергосбережение и режим Deep Dormancy при отсутствии сети * **Интеллектуальное распознавание полного отсутствия интернета**: * Реализовано четкое разделение между слабым сигналом (DPI-блокировки, задержки, потеря пакетов) и полным отсутствием подключения к сети (авиарежим, потеря сигнала оператора, `DISCONNECTED`). * При отключении сетевого интерфейса прокси-служба немедленно переходит в спящий режим ожидания (`Deep Dormancy`): сокеты закрываются, фоновые DoH-запросы и циклические пробы `PingEngine` приостанавливаются. Это исключает холостую нагрузку на CPU и предотвращает быстрый разряд аккумулятора. * При восстановлении сигнала (`onNetworkRestored`) служба мгновенно выходит из спящего режима и производит моментальный прогрев сокетов без задержек. * Исключена ложная каскадная ротация воркеров в `WorkerFailoverManager` при системном отключении сети (`NETWORK_LOST`). * **Интеллектуальная защита аккумулятора (Battery Saver Guard)**: * Настраиваемое автоматическое выключение прокси при разряде батареи ниже заданного порога (5%, 10%, 15%, 20%, 25%) или включении режима `Power Save Mode` при работе не от зарядного устройства. ### Движок замера скорости сетевого туннеля (Tunnel Speed Test Engine) * **Полнофункциональный спидтест через Cloudflare Worker**: * Разработан многопоточный асинхронный модуль `TunnelSpeedTestEngine` для замера реальной пропускной способности туннеля без сторонних внешних сервисов. * Калибровка задержки: серия быстрых проб RTT и расчет среднеквадратичного разброса (Jitter по RFC 3550). * Определение пограничного узла дата-центра Cloudflare (`Edge Colo`, например `DME`, `FRA`, `WAW`, `VIE`). * Потоковое скачивание данных (Download) с адаптивным EWMA-сглаживанием мгновенной скорости в Мбит/с. * Потоковая отправка данных (Upload) через HTTP POST с буферизацией чанков по 64 КБ и фиксацией пиковой скорости отдачи. * Анализ пригодности канала для сервисов Telegram: текстовые сообщения, аудиозвонки Opus 48 kHz, передача медиафайлов и видеостриминг 4K UHD. * **Экран тестирования скорости (`TunnelSpeedTestScreen`)**: * Неоновый анимированный спидометр / тахометр с динамической дугой, шкалой разметки и цифровым индикатором в Мбит/с. * Сетка карточек метрик: Пинг (мс), Джиттер (мс), Входящая скорость (Мбит/с), Исходящая скорость (Мбит/с), Код дата-центра (POP). * График волновой формы (Waveform Sparkline) динамики скорости передачи данных в реальном времени. * Карточка оценки качества канала с вердиктами для всех сценариев работы Telegram. * Кнопки управления тестом: запуск, остановка и повторный замер с тактильным виброоткликом. ### SOCKS5-аутентификация (RFC 1928 / RFC 1929) * **Поддержка Username/Password Subnegotiation в нативном движке Rust**: * Реализована субнегоциация учетных данных согласно RFC 1929 (`mirrlyengine`). * Сервер запрашивает метод `0x02` (Username/Password), проверяет длину и байты полей `UNAME` и `PASSWD`, возвращая `0x00` (Success) при совпадении и `0xFF` (Failure) с разрывом соединения при ошибке. * Добавлен FFI-метод `SetSocks5Auth` для динамической передачи учетных данных в нативный слой. * **Диалог обязательной авторизации (`Socks5AuthRequiredDialog`)**: * При попытке запуска SOCKS5 прокси без указания логина и пароля отображается отдельное окно с требованием настроить учетные данные. * Поддерживается быстрый ввод, генерация надежных случайных данных в один клик и валидация перед сохранением и стартом службы. * **Бесшовное заполнение учетных данных в ссылках `tg://socks`**: * Обновлен генератор ссылок `LocalProxyServer.getTelegramSocks5Url()`. Логин и пароль автоматически кодируются по стандарту URL Encoding и передаются в параметрах: `tg://socks?server=127.0.0.1&port=10808&user=...&pass=...`. ### Автоматизация и расписание работы (Schedule Engine & Sleep Timer) * **Полноценный движок расписания (`ScheduleManager`)**: * Реализована автоматизация запуска и отключения прокси-службы по расписанию через системный `AlarmManager.setExactAndAllowWhileIdle`. * Поддерживаются гибкие шаблоны дней недели: «Каждый день», «Будние дни» (Пн–Пт), «Выходные дни» (Сб–Вс) и «Выборочные дни» с индивидуальным мульти-выбором. * Системный приемник `BootReceiver` и `MirrlyApplication` автоматически пересинхронизируют и восстанавливают алармы после перезагрузки устройства. * **Таймер сна и автоотключение при старте (Sleep Timer)**: * Возможность настройки времени работы при каждом ручном старте службы (15 мин, 30 мин, 1 час, 2 часа, 4 часа, 8 часов). * Диалог настройки таймера сна `SleepTimerDialog` с пресетами и обратным отсчетом. ### Зал Славы и сообщество (Hall of Fame) * **Обновление списка контрибьюторов и баг-хантеров (`HallOfFameScreen`)**: * В Зал Славы добавлен пользователь **`ustiprog`** (автор Issue #21) за инициативу внедрения постоянного таймера сна и предоставление телеметрии разряда аккумулятора, послужившей основой для разработки режима Deep Dormancy. * Актуализированы списки закрытых Issues для активных участников сообщества (**`Grovymon`**, **`BbIBux`**, **`zzzxxx888207-design`**). --- ## [v1.1.8.2] Безопасный TLS WebPKI, валидация Sec-WebSocket-Accept, QR-сканер ML Kit и изоляция секрета. --- ## 1. Контрольные отпечатки SHA-256 * **app-universal-release.apk SHA-256**: `649D4A6B099D1408AFDA427C81E15492D6967C433B12C7EC7078CA4BC0CDEC2E` * **app-arm64-v8a-release.apk SHA-256**: `9F0CA366DC90EBDEA76C73AEA8A2EFA942EA4631E94315A8FC1E7C6613A81109` * **app-armeabi-v7a-release.apk SHA-256**: `D31F7A2976C59063778148D83163F5548D21FD39EC3A170B2A499ECEE60C9B4D` * **app-x86_64-release.apk SHA-256**: `2E5F8CB162E835BF6A067E8AC014E61369248B8D00FF1D19054E2DE960FB765D` * **app-x86-release.apk SHA-256**: `967C9A80BD17B64BFEC84657271D24A0831B43D45577B88ABC9E0256ED32A300` * **SHA-256 подписи (Release)**: `97:73:5C:0A:20:70:7F:D4:E4:BD:93:A2:D8:48:CA:91:9A:C5:40:45:4A:62:16:E8:CC:7D:43:4F:1F:9F:0A:96` --- ## 2. Назначение установочных пакетов (APK) * **app-universal-release.apk**: Универсальная сборка. Содержит нативные библиотеки под все архитектуры (ARM64, ARMv7, x86, x86_64). Гарантированно подходит для любого Android-устройства. Единый основной файл для автообновлений и публикации. * **app-arm64-v8a-release.apk**: Сборка ARM64. Оптимизирована для большинства современных смартфонов и планшетов (64-битные процессоры ARM). Обладает наименьшим размером. * **app-armeabi-v7a-release.apk**: Сборка ARMv7. Для старых 32-битных Android-устройств. * **app-x86_64-release.apk**: Сборка x86_64. Для 64-битных эмуляторов Android (Android Studio, LDPlayer, BlueStacks) и устройств на базе процессоров Intel/AMD. * **app-x86-release.apk**: Сборка x86. Для 32-битных эмуляторов Android x86. --- ## 3. Ключевые изменения ### Безопасность сетевого стека и TLS * **Переход на доверенные корневые сертификаты WebPKI (`webpki-roots`)**: * Полностью удален небезопасный режим обхода валидации (`NoVerify` / `InsecureSkipVerify`). * Внедрена строгая валидация сертификатов серверов через `RootCertStore` с проверкой подлинности цепочки доверия глобальных Root CA, сроков действия и соответствия `ServerName` (SAN). * Предотвращены любые попытки проведения атак Man-in-the-Middle (MITM) на публичных или скомпрометированных сетях Wi-Fi. * **Криптографическая валидация WebSocket-хэндшейка (RFC 6455)**: * Реализована строгая проверка заголовка `Sec-WebSocket-Accept` по спецификации RFC 6455 (`Base64(SHA1(Key + GUID))`). * Добавлена обязательная проверка заголовков `Upgrade: websocket` и сброс соединения при любых отклонениях от стандарта. ### Сетевой стек и протокольная изоляция Failover * **Изоляция WorkerFailover исключительно для режима SOCKS5**: * Устранено ложное срабатывание механизма отказоустойчивости (`WorkerFailoverManager`) при сетевых сбоях и смене сетей во время активной сессии MTProto. * Поскольку протокол MTProto маршрутизируется исключительно через глобальный Anycast CDN Flowseal и не использует личные или девелоперские Cloudflare Workers, обработка сбоев в `WorkerFailoverManager` и замеры задержки в `PingEngine` изолированы строго для SOCKS5. * В `LocalProxyServer` предотвращен холостой сброс сокетов и ложная запись в логе (`Обновление конфигурации воркера → ''`) при смене узлов во время MTProto-сессии. ### Сканирование и быстрый импорт QR-кодов * **Интеграция движка Google ML Kit Barcode Scanning**: * Встроен модуль аппаратного сканирования QR-кодов на базе CameraX и Google ML Kit (`play-services-mlkit-barcode-scanning`) с динамической загрузкой моделей Google Play Services для сохранения компактного размера APK. * Обеспечено стабильное распознавание QR-кодов под углами, при плохом освещении, с экранов мониторов, а также инвертированных темных кодов из консоли. * Корректная обработка `rowStride` плоскостей YUV в анализаторе кадров. * **Секция сканера в Менеджере воркеров**: * Реализован интерфейс видоискателя камеры с динамической лазерной сеткой. * Добавлено управление фонариком с векторными иконками `ic_flash_on` и `ic_flash_off`. * Быстрая кнопка перехода к сканеру «QR» на панели фильтрации воркеров. * Поддержка ручной вставки адреса из буфера обмена и автоматическая Pre-Flight проверка доступности узла перед сохранением. ### Генератор QR-кодов и обмен узлами * **Вкладка «Поделиться воркером»**: * Реализована генерация стилизованных QR-кодов со скругленными элементами (squircles), протокольными неоновыми акцентами и логотипом приложения по центру. * Формирование deep-ссылок `mirrly://worker?domain=...&name=...` для мгновенного импорта узла на других устройствах. * Возможность сохранения QR-кода как изображения PNG и быстрой отправки через системный диалог `ACTION_SEND`. * **Защита официальных узлов**: * Генерация ссылок и QR-кодов разрешена исключительно для личных узлов пользователя (`customWorkers`). Дефолтные узлы разработчика защищены от экспорта. ### Комплексная адаптивность интерфейса (DPI/PPI & Responsive Layout) * **Архитектурный хелпер адаптивности (`AdaptiveLayoutHelper`)**: * Разработан модуль вычисления эффективных классов ширины дисплея (`COMPACT`, `MEDIUM`, `EXPANDED`), плотности пикселей и адаптивного коэффициента масштабирования. * Внедрены универсальные модификаторы `Modifier.adaptiveContentPadding()` (динамические безопасные поля 14/18/24 dp) и `Modifier.adaptiveContainerWidth(600.dp)` (центрирование и ограничение контента на планшетах, складных устройствах и в горизонтальной ориентации). * Реализована адаптация для всех 14 экранов приложения (`HomeScreen`, `SettingsScreen`, `WorkerManagerScreen`, `LogsScreen`, `HistoryScreen`, `NetworkDiagnosticScreen`, `WorkerAnalyticsScreen`, `CloudflareWorkerGuideScreen`, `AboutScreen`, `LicenseScreen`, `TermsScreen`, `UpdateScreen`, `HallOfFameScreen`, `VolunteerProgramScreen`, `ProjectChronicleScreen`). * **Эластичность элементов и защита от переполнения**: * Нижние кнопки управления переведены на эластичные контейнеры `heightIn(min = ...)` с обработкой переноса строк и защитой от нелинейного масштабирования шрифтов (Android 14+). * Диалоговые окна адаптированы под `adaptiveContainerWidth(440.dp)` и оснащены принудительной вертикальной прокруткой для компактных экранов. ### Безопасность и хранение данных * **Изоляция криптографического секрета MTProto (`secret_hex`)**: * Секретный ключ MTProto-прокси (`secret_hex`) вынесен из общего файла настроек `mirrly_tg_proxy_prefs.xml` в отдельное изолированное хранилище `mirrly_secrets_prefs.xml`. * Автоматическая бесшовная миграция существующих конфигураций при первом запуске. * **Правила защиты резервного копирования (`data_extraction_rules.xml` и `backup_rules.xml`)**: * Настроены гранулярные правила бэкапа для Android 12+ и устаревших версий Android (6.0–11). * Файл секретов, служебные трекеры и кэш гарантированно исключены из облачного бэкапа в Google Drive, сохраняя только пользовательские настройки и добавленные воркеры. ### Интерфейс и оптимизация UX * **Удаление скрытия интерфейса**: * Полностью удален функционал скрытия интерфейса и кнопка-глаз (`ic_eye`) с главного экрана, что исключает случайные скрытия интерфейса и упрощает управление приложением. * Убраны неиспользуемые жесты и промежуточные состояния анимаций. * **Стилизация элементов управления**: * Применены полностью овальные капсулы-фильтры (`stadium pills`) с прозрачным фоном и адаптивным счетчиком узлов. * Восстановлена плавная прокрутка (`verticalScroll`) в диалоговых окнах сканера, подтверждения внешних ссылок и оценки приложения. ### Инструменты деплоя (`deploy.bat` / `deploy.ps1`) * **Автоматическая установка зависимостей**: * Встроена автоустановка Node.js LTS через `winget` прямо из консоли скрипта без необходимости ручного скачивания и перезапуска терминала. * Автоматическая установка и оптимизация Cloudflare Wrangler CLI. * **Генерация QR-кода в терминале**: * По завершении деплоя в консоли выводится компактный QR-код для моментального сканирования камерой смартфона. * Корректный алгоритм перемежения блоков Рида-Соломона (уровень `L`), предотвращающий искажения QR-кода при длинных именах доменов. * **Надежность и производительность**: * Кэширование вызовов Wrangler и оптимизация инициализации, снижающие время деплоя до 2–4 секунд. * Файл `deploy.ps1` сохранен в кодировке UTF-8 with BOM для совместимости с Windows PowerShell 5.1. * Файл `wrangler.toml` формируется в UTF-8 без BOM для предотвращения ошибок синтаксиса в Wrangler. * Отображение информации об авторизованном профиле Cloudflare в шапке и замер задержки отклика (RTT). --- ## [v1.1.8.1] Умный нормализатор доменов воркеров, Pre-Flight проверка доступности и редизайн таймера сна. --- ## 1. Контрольные отпечатки SHA-256 * **app-universal-release.apk SHA-256**: `C1276F85C431F679F0F382945D4148333048347CEB1DE35D56051265D61FF22D` * **app-arm64-v8a-release.apk SHA-256**: `CC90961EC0B37ADB7A817E2F61355DDDD1D3C6D4CA36243B2BFDBA8715829789` * **app-armeabi-v7a-release.apk SHA-256**: `0430938E95D73E264E2DF0D595AA8A7B5B998F66C053A28F9B485A63816C6C2D` * **app-x86_64-release.apk SHA-256**: `542C69A75E231979BD0D8D58432205D5F6D87334C53C8DA9F60437686D38F5FD` * **app-x86-release.apk SHA-256**: `427865319597077BD1842D5AAC20E36209042C19B7CB6AEFB514A7F07C7CB8A0` * **SHA-256 подписи (Release)**: `97:73:5C:0A:20:70:7F:D4:E4:BD:93:A2:D8:48:CA:91:9A:C5:40:45:4A:62:16:E8:CC:7D:43:4F:1F:9F:0A:96` --- ## 2. Назначение установочных пакетов (APK) * **app-universal-release.apk**: Универсальная сборка. Содержит нативные библиотеки под все архитектуры (ARM64, ARMv7, x86, x86_64). Гарантированно подходит для любого Android-устройства. Единый основной файл для автообновлений и публикации. * **app-arm64-v8a-release.apk**: Сборка ARM64. Оптимизирована для большинства современных смартфонов и планшетов (64-битные процессоры ARM). Обладает меньшим размером. * **app-armeabi-v7a-release.apk**: Сборка ARMv7. Для старых 32-битных Android-устройств. * **app-x86_64-release.apk**: Сборка x86_64. Для 64-битных эмуляторов Android (Android Studio, LDPlayer, BlueStacks) и устройств на базах процессоров Intel/AMD. * **app-x86-release.apk**: Сборка x86. Для 32-битных эмуляторов Android x86. --- ## 3. Ключевые изменения ### Сетевой стек и нормализация адресов * **Интеллектуальный модуль нормализации доменов (`WorkerDomainNormalizer`)**: * Реализован отказоустойчивый алгоритмический парсер для автоматической обработки любых некорректных пользовательских данных. * **Авто-детектор Cloudflare Dashboard**: распознавание ссылок из адресной строки браузера `dash.cloudflare.com/...`, автоматическое извлечение системного имени воркера и вывод подсказки с указанием скопировать публичный адрес со страницы *Deployments*. * **Фильтр кириллических букв-двойников (Homoglyphs)**: автоматическая замена случайно набранных на русской раскладке символов (`а`, `о`, `е`, `р`, `с`, `х`, `у`, `i`, `к`, `м`, `в`, `т`) на латинские аналоги. * **Regex-сканер терминальных логов**: извлечение валидных FQDN и адресов `*.workers.dev` из текста консоли и логов `wrangler deploy`. * **Очистка протоколов и мусора**: удаление схем (`https://`, `wss://`, `tcp://`), портов (`:443`, `:8443`), путей (`/apiws`), query-параметров, кавычек (`"`, `'`, `«`, `»`), скобок и невидимых Unicode-символов (`\u200B`, `\uFEFF`, `\u00A0`). * **Детектор перепутанных полей (Smart Swap)**: автоматическое распознавание ситуации, когда URL вставлен в поле названия, с переносом адреса в поле домена и формированием читаемого имени узла. * **Поддержка ссылок Telegram-прокси**: извлечение адреса сервера из ссылок `tg://socks?server=...` и `https://t.me/socks?server=...`. * **Pre-Flight проверка сетевой доступности узлов**: * При добавлении (`AddWorkerDialog`) или импорте (`ImportWorkerDialog`) выполняется автоматический проверочный запрос через `WorkerPingTester`. * При подтверждении доступности узел мгновенно активируется. При сбое связи выводится диагностическое предупреждение с опциями корректировки адреса или принудительного сохранения. ### Интерфейс и пользовательский опыт (UI/UX) * **Переработка диалога «Добавление воркера» (`AddWorkerDialog`)**: * Поле **«Адрес воркера»** вынесено на первое место с бейджем `ОБЯЗАТЕЛЬНО`, моноширинным шрифтом (`FontFamily.Monospace`) и выделенной кнопкой быстрой вставки из буфера обмена в один клик. * Поле **«Название узла»** переведено во вторичное с бейджем `ОПЦИОНАЛЬНО` и авто-генерацией названия из домена. * Добавлен живой интерактивный бейдж валидации и предпросмотра распознанного адреса с кнопкой физической перестановки полей `⇄`. * Интегрирована встроенная памятка с примером правильного адреса и инструкцией по его поиску в панели Cloudflare. * **Редизайн диалогового окна «Таймер сна» (`SleepTimerDialog`)**: * Интерфейс диалога приведен к единому визуальному стандарту с кнопкой возврата `ic_arrow_left` в левом верхнем углу с учетом системных отступов (`WindowInsets.statusBars`). * Кнопки действий подняты выше и объединены в единый стек скроллируемого контента под карточкой параметров. * Интегрированы микро-анимации физических нажатий (`springPress`) и виброотклик `HapticFeedbackType.LongPress` / `TextHandleMove`. ### Инструменты развертывания и инфраструктура * **Автономный скрипт развертывания воркеров (`deploy.bat`)**: * Скрипт преобразован в полностью самостоятельный однофайловый пакет (All-in-One): весь исполняемый код PowerShell и JS-код воркера (`worker.js` v1.1.8.1) вшиты внутрь `.bat` файла. * Добавлена возможность прерывания операции и отмены на клавишу `Escape` на любом этапе (при вводе имени, подтверждении деплоя и в главном меню). * Реализован прямой перехват стандартного потока вывода `wrangler deploy` для мгновенного извлечения публичного домена воркера. * Встроена предварительная проверка авторизации Cloudflare (`wrangler whoami`), предотвращающая лишние открытия браузера. * Добавлена поддержка создания узлов в один клик, смены аккаунтов Cloudflare, авто-копирования домена в буфер обмена и сохранения истории в `mirrly_workers.txt`. * **Обновление версионирования**: * Версия приложения обновлена до `1.1.8.1` (`versionCode = 23`). * Обновлен `User-Agent` в DoH-резолвере (`DohResolver`), версии воркеров в `TgConstants` и скриптах деплоя. * Добавлен комплексный тест-сьют `WorkerDomainNormalizerTest` из 24 тестов, полностью покрывающий все виды некорректного пользовательского ввода. --- ## [v1.1.8] Сетевые алгоритмы DoH, Happy Eyeballs, аналитика квоты, выбор архитектур APK и летопись Genesis. --- ## 1. Контрольные отпечатки SHA-256 * **app-universal-release.apk SHA-256**: `739EBF9CD16D7FC9BBDB480BF2DD7E726698B1B8CDEA85AC0DB52BE404F8E5A4` * **app-arm64-v8a-release.apk SHA-256**: `DDD9F9F6773F173038EAE874CBB6B9E4A21E09F31C39C079048C0905F86F87CF` * **app-armeabi-v7a-release.apk SHA-256**: `E68E066BD94E5D3D6840C450457C2445E58C95FC5C18B46D5D027D74E11E7389` * **app-x86_64-release.apk SHA-256**: `6906A3BB79D3794962FDBD057160DD442BCD42444CB2969BA94C79BD6FB20F47` * **app-x86-release.apk SHA-256**: `E7F015B7BB289F9A3968DA4E3AEA823C951D5437A0FC4D480C10303012CD2DFA` * **SHA-256 подписи (Release)**: `97:73:5C:0A:20:70:7F:D4:E4:BD:93:A2:D8:48:CA:91:9A:C5:40:45:4A:62:16:E8:CC:7D:43:4F:1F:9F:0A:96` --- ## 2. Назначение установочных пакетов (APK) * **app-universal-release.apk**: Универсальная сборка. Содержит нативные библиотеки под все архитектуры (ARM64, ARMv7, x86, x86_64). Гарантированно подходит для любого Android-устройства. Единый основной файл для автообновлений и публикации. * **app-arm64-v8a-release.apk**: Сборка ARM64. Оптимизирована для большинства современных смартфонов и планшетов (64-битные процессоры ARM). Обладает меньшим размером. * **app-armeabi-v7a-release.apk**: Сборка ARMv7. Для старых 32-битных Android-устройств. * **app-x86_64-release.apk**: Сборка x86_64. Для 64-битных эмуляторов Android (Android Studio, LDPlayer, BlueStacks) и устройств на базах процессоров Intel/AMD. * **app-x86-release.apk**: Сборка x86. Для 32-битных эмуляторов Android x86. --- ## 3. Ключевые изменения ### Сетевой стек и алгоритмы устойчивости * **DNS-over-HTTPS (DoH) с Race Resolver & Local TTL Cache (`DohResolver`)**: * Реализован многопоточный Race Resolver: параллельный асинхронный опрос независимых DoH-серверов (Cloudflare `1.1.1.1` / `1.0.0.1`, Google `8.8.8.8` / `8.8.4.4`, Quad9 `9.9.9.9`). * Фиксация первого валидного ответа (First-Response Wins) с отменой медленных параллельных корутин. * Прямой доступ по защищенным IP SAN без риска циклического DNS-бутстраппинга. * Потокобезопасный локальный кэш `ConcurrentHashMap` со скользящим TTL (30–3600 сек) и fallback на системный DNS при недоступности DoH-серверов. * Интеграция DNS-адаптера `DohOkHttpDns` в сетевые клиенты проверки доступности воркеров и обновлений. * **Happy Eyeballs v2 (RFC 8305) для Anycast IP Cloudflare (`HappyEyeballsEngine`)**: * Ступенчатый параллельный опрос пула Anycast IP с межпакетной задержкой 200 мс для мгновенного обхода деградировавших или заблокированных IP-маршрутов. * Локальный рейтинг Anycast IP (IP Fast-Path) с экспоненциальным сглаживанием задержки (EWMA RTT) и авто-сортировкой списка адресов. * **Детектор DPI-блокировок и Instant Deep Failover (`DpiAnomalyDetector` / `WorkerCircuitBreaker` / `WorkerFailoverManager`)**: * Эвристический анализ сетевых сбоев (`ECONNRESET`, `Software caused connection abort`, `Broken pipe`, `SSLHandshakeException`, `bad_record_mac`). * Мгновенный перевод автомата `WorkerCircuitBreaker` в режим изоляции (`OPEN`) с первого же критического сбоя с 10-минутным карантином. * Бесшовный авто-переход на резервный воркер (`WorkerFailoverManager`) за время < 300 мс. * **Telegram DC-Affinity & Multi-DC Socket Distribution (`TelegramDCAffinityEngine`)**: * Поведенческий анализ трафика и активных соединений по дата-центрам Telegram (DC1..DC5, DC203, CDN 100). * Динамическое перераспределение ресурсов сокет-пула (до 65–75%) на доминантный медиа-сервер (DC4) с гарантированным сохранением сокетов для чатов (DC2). * Учет диалектов протокола MTProto (`intermediate`, `padded`, `abridged`) и экспоненциальное затухание весов неактивных DC (период полураспада 60 сек). * **Экспоненциальное сглаживание скорости (`EmaSpeedFilter`)**: * Двухканальный адаптивный фильтр EMA ($\alpha = 0.30$ в стабильном режиме, $\alpha = 0.65$ при резком старте скачивания, $\alpha = 0.50$ при остановке с отсечением остаточного шлейфа $< 1$ КБ/с). * Устранение высокочастотного джиттера сотовой связи, стабилизация спидометров в UI и предотвращение ложных переключений сокет-пула (`AutoSpeedPreset`). * **Многофакторная авто-адаптация стека (`NetworkConditionEvaluator`)**: * Оценка текущей пропускной способности, сглаженного пинга, Min-RTT, джиттера, процента успешной доставки, индекса MOS и уровня QoS. * Динамическое переключение алгоритма `TCP_NODELAY` и размера буферов в реальном времени. ### Автоматизация и управление энергопотреблением * **Battery & Thermal Aware QoS (`BatteryThermalQoSEngine`)**: * Динамическая адаптация размера пула сокетов и сетевых таймаутов под уровень заряда аккумулятора, состояние зарядки и температурный статус устройства (Android Thermal API). * Автоматический возврат в штатный скоростной режим при уровне заряда выше 50% или подключении к зарядному устройству. * **Adaptive Heartbeat & Keep-Alive Engine (`AdaptiveHeartbeatEngine`)**: * Адаптивная регулировка частоты фоновых keep-alive пингов в зависимости от типа сети (Wi-Fi 45–60 сек vs сотовая связь 15–20 сек) и состояния экрана для надежного удержания NAT-таблиц операторов. * **Predictive Pre-Warm Manager (`PredictivePreWarmManager`)**: * Предиктивный упреждающий прогрев пула WSS-сокетов при разблокировке экрана (`ACTION_USER_PRESENT`) и подключении питания с дебаунсом 30 секунд. * **Глубокий сброс соединений при смене сети**: * Автоматическая очистка кэша DoH, рейтинга Happy Eyeballs, состояния DC-Affinity и перезапуск зондов `PingEngine` при переключении между Wi-Fi и сотовой связью. ### Аналитика запросов и интерактивный график (Worker Request Analytics) * **Интерактивный график Безье (Smooth Bezier Area Chart)**: * Разработан полноэкранный модуль аналитики `WorkerAnalyticsScreen` в неоновом визуальном стиле с плавной кривой Безье (`cubicTo`) и полупрозрачным вертикальным градиентом. * Интерактивный тач-скраббер: при касании пальцем отображается пунктирная линия, светящаяся точка и всплывающий тултип с точным временем и разбивкой (WSS-туннели vs служебные пробы). * **Локальный трекер Zero-Network-Cost (`WorkerRequestTracker`)**: * Реализован 100% локальный учет WSS-хэндшейков и служебных проверок доступности с нулевым расходом внешнего сетевого трафика и API-запросов (0 байт, 0 обращений к квоте Cloudflare). * Поддержка 8 временных срезов: `Сессия`, `1ч`, `5ч`, `12ч`, `24ч`, `7 дней`, `30 дней`, `Всего`. * Индикатор суточного лимита (100 000 в сутки на бесплатном тарифе Cloudflare) и таймер обратного отсчета до ежедневного сброса квоты (00:00 UTC). * Шейдерный модификатор `horizontalFadingEdges` для плавного растворения краев горизонтальных списков без визуальных обрезов со скоростью 120 FPS. ### Индекс качества сети и глубокая диагностика (Connection Health Index & SQI) * **Анимированный индикатор качества связи (`LiquidWaveQualityCircle`)**: * Реализован круговой индикатор с динамическими волнами жидкости в центре блока сетевой статистики на главном экране. * Цветовая адаптация под активный протокол: индиго для SOCKS5 (`0xFF818CF8`) и изумрудный для MTProto (`0xFF00FF87`). * **Полноэкранная диагностическая вкладка (`NetworkDiagnosticScreen`)**: * Расчет скоринга качества соединения (SQI от 0 до 100%) по взвешенной формуле: 45% RTT (EWMA), 25% джиттер LTE и 30% надежность доставки пакетов. * Расчет индекса качества голосовых и видео-звонков по модели ITU-T G.107 (MOS / R-Factor) для широкополосного кодека Opus в Telegram. * Отслеживание физического Min-RTT (BBR) и вычисление индекса задержек очередей (Bufferbloat). * Детализированные информационные панели сетевого стека с векторными SVG-иконками (RTT, осциллограмма джиттера, надежность доставки, узел Cloudflare, серверная стойка, шлюзы) и модальными справками `InfoButton`. ### Менеджер архитектур и выбор установочных пакетов (Multi-APK Architecture Engine) * **Автоматическое распознавание архитектуры процессора**: * Определение поддерживаемых ABI устройства (`Build.SUPPORTED_ABIS`) с выводом рекомендаций (`ARM64-v8a`, `ARMv7`, `x86_64`, `x86`, `Universal`). * Всплывающий диалог выбора с аппаратным размытием фона (`FLAG_BLUR_BEHIND`), частицами и карточками технических характеристик (`SHA-256`, ABI, размер, назначение). * Индивидуальный парсинг и валидация SHA-256 хэша выбранного установочного пакета (`extractSha256ForAsset`). * Кэширование списка ассетов обновления в локальных настройках (`KEY_CACHED_APK_ASSETS`). * **Режим переустановки и восстановления (Recovery Mode)**: * Возможность скачивания и чистой переустановки любого типа APK поверх текущей версии с валидацией контрольных сумм `SHA-256` и цифровой подписи без сброса пользовательских настроек. ### Интерактивная летопись, Зал Славы и комьюнити (Genesis, Hall of Fame & Community) * **Скрытая интерактивная летопись проекта (Easter Egg Chronicle — `ProjectChronicleScreen`)**: * Интерактивная пасхалка в честь 1 месяца с момента первого релиза (27.07.2026): открывается серией из 5 быстрых тапов по аватару разработчика или бейджу `GENESIS • 27.07.2026` в разделе «О разработчике». * **Энергетическое зарядное кольцо и пружинный отклик (`tapBounceScale`)**: круговой индикатор накопления энергии (`1/5 -> 2/5 -> 3/5 -> 4/5 -> 5/5`) вокруг аватара. * **Взрыв сверхновой (`SupernovaCanvas`)**: полноэкранная радиальная детонация квантовой энергии с 3 расширяющимися ударными кольцами, 12 фотонными лучами и тройным виброоткликом (`LongPress`). * **Кинематографичный портальный переход (`Portal Warp Zoom`)**: раскрытие вкладки через упругое масштабирование (`0.76f -> 1.0f`) и вертикальный подъем из центра аватара (`TransformOrigin(0.5f, 0.30f)`). * **Интерактивная эмблема Genesis (`GenesisChronicleCanvas`)**: 4 концентрических орбитальных кольца, 6 спутников с лазерными лучами связи, вращающаяся квантовая призма и расширяющаяся ударная волна со спарк-эффектом по тапу. * **Фоновая квантовая матрица (`GenesisQuantumMatrixCanvas`)**: процедурные градиентные туманности и анимированная динамическая сетка киберпространства. * **Хронология ключевых вех (22 версии от v1.0.0 до v1.1.8)**: детальный исторический разбор эволюции проекта с карточками вех и пояснениями архитектурных решений. * **Лаборатория протоколов**: архитектурный стандарт 4 протоколов (`MTProto`, `SOCKS5`, `WEB` WebTransport/WSS, `HTTP` HTTP CONNECT) с динамическими анимированными шкалами реализуемости (Cloudflare Worker vs CDN Flowseal). * **Зал Славы и Благодарности (`HallOfFameScreen`)**: * Полноэкранный кибер-зал признания для контрибьюторов, участников бета-тестирования, спонсоров и донатеров. * Ранговые бейджи (`Core Contributor`, `Beta Vanguard`, `Patron of Proxy`, `Genesis Pioneer`), анимированные частицы и карточки признания. * **Программа волонтеров тестирования (`VolunteerProgramScreen`)**: * Специализированный раздел набора волонтеров для раннего тестирования APK-сборок, проверки совместимости с различными клиентами Telegram и валидации стабильности на сотовых сетях. ### Интерфейс, настройки и локализация * **Менеджер воркеров и Circuit Breaker**: * Карточки воркеров дополнены бейджами состояния изолятора (обратный отсчет времени карантина и статус проверки узла). * Быстрый переход в экран аналитики запросов из панели действий Менеджера воркеров. * **Режимы пропускной способности (WsPool) в настройках**: * Переработан селектор режимов (`Эко`, `Баланс`, `Турбо`, `Ультра`, `Авто`) с подробным описанием влияния на память RAM (~100–200 КБ) и задержки. * **Компактный дизайн и единое местоимение разработчика**: * Все системные диалоги и бейджи интерфейса оптимизированы для компактного отображения. Все текстовые обращения переведены в первое лицо единственного числа («Я», «мой», «выражаю»). * **Локализация системных логов (`HumanLogTranslator`)**: * Интегрирован перевод новых системных событий: DoH-резолвинг, Happy Eyeballs, срабатывания Circuit Breaker, failover-переключения, QoS-троттлинг и перераспределение сокетов DC-Affinity. ### Тестирование и надежность * **Комплекс модульных тестов**: * Добавлено 12 новых тест-сьютов (`DohResolverTest`, `HappyEyeballsEngineTest`, `DpiAnomalyDetectorTest`, `WorkerCircuitBreakerTest`, `WorkerFailoverTest`, `TelegramDCAffinityTest`, `EmaSpeedFilterTest`, `BatteryThermalQoSEngineTest`, `AdaptiveHeartbeatTest`, `ConnectionHealthTest`, `NetworkConditionEvaluatorTest`, `PredictivePreWarmTest`) со 100% успешным прохождением. --- ## [v1.1.7] ### Ключевые изменения и улучшения * **Сетевой стек и нативное ядро mirrlyengine (Rust Core)**: * **Разделение маршрутизации MTProto и SOCKS5**: Трафик MTProto переведен на прямое туннелирование через глобальный пул Anycast CDN Flowseal (`kws{dc}.{domain}/apiws`), исключив промежуточные проксирующие узлы и снизив задержки. Режим SOCKS5 по-прежнему использует персональные воркеры Cloudflare и резервный пул разработчика. * **Ускорение подключения Anycast CDN**: Шаг ступенчатой задержки в гонке узлов снижен с 60 мс до 25 мс (`stagger_step`), что сократило время первоначального отклика при старте прокси. * **Интеллектуальная обработка сетевых ошибок и кулдаун**: Функция `is_cooldown_error` расширена для распознавания кодов `HTTP 429`, `500`, `502`, `503`, `504` и ошибок шлюзов Cloudflare (`520`–`524`), обеспечивая моментальный перевод сбойного узла в режим ожидания и переключение на резервный маршрут. * **Оптимизация дата-центров и TCP-туннелирования**: Актуализирован адрес дата-центра DC 5 (`91.108.56.130`), синхронизированы пулы CIDR (`*DC_OPT.write()`), для TCP-туннелей снято ограничение фазового таймаута для надежного завершения хэндшейков. * **Оркестратор переключения протоколов (Protocol Switching Orchestrator)**: * **3-фазное переключение с глубокой паузой (`PAUSE_DARK`)**: Реализован режим смены протокола `DISCONNECTING` -> `PAUSE_DARK` (1000 мс) -> `RECONNECTING`. В темной паузе происходит мягкая смена акцентных цветов интерфейса и гарантированное высвобождение портов и дескрипторов перед запуском нового сетевого стека. * **Графический движок и рендеринг (CyberEnergyCanvas)**: * **Рендеринг без аллокаций памяти (Zero Allocation at 120 FPS)**: Отрисовка частиц переведена на плоский предвыделенный массив `FloatArray`, полностью устранивший создание объектов в цикле отрисовки и исключивший паузы сборщика мусора (GC). * **Продвинутая динамика частиц**: Добавлены сегментированные кометные шлейфы (Comet Trails), динамические микро-связи (Interconnect lines) между сближающимися частицами и деликатное свечение на GPU. * **Системные диалоги и аппаратное размытие (DialogBlurHelper)**: * **Унифицированный контейнер диалогов (`DialogBackdropBox`)**: Интегрировано аппаратное оптическое размытие фона (`FLAG_BLUR_BEHIND`, радиус 60 px) для Android 12+ (API 31+) с динамическим fallback на глубокий акриловый слой (88% opacity) на более ранних версиях ОС и устройствах без поддержки системного blur. * **Слой микро-частиц**: Во все системные диалоги внедрен фоновый декоративный слой интерактивных частиц `CyberParticlesOverlay`. * **Тактильный отклик (Haptic Feedback Controller)**: * **Аппаратный контроллер вибрации (`HapticHelper`)**: Реализованы тактильные профили — четкий щелчок (`performTapClick`), бархатистая многоамплитудная волна скольжения (`performSwipeGlide`) на базе композитных примитивов Android 12+ и мягкий отклик границ (`performSoftTick`), интегрированные в жесты свайпа и переключатели. * **Пользовательский интерфейс и оптимизация Jetpack Compose**: * **Стабильный отклик кнопок (`springPress`)**: Модификатор переработан с использованием `clickable` и `PointerEventPass.Initial`, устранив потерю событий нажатия при быстрых кликах и конфликты с прокруткой списков. * **Кэширование анимаций (`staggeredEntrance`)**: Состояние появления списков сохраняется через `rememberSaveable`, исключая повторные анимации при возврате на экраны. * **Ленивый монтаж экранов**: В `MainActivity` экраны («Менеджер воркеров», «О приложении», «Лицензии», «Условия», «Обновление») монтируются в дерево композиции только при их активации. * **Индикация в шторке уведомлений**: Разделено отображение статусов для SOCKS5 (`Worker: ...`) и MTProto (`CDN: ...`), добавлен дебаунс замера пинга (порог 3 ошибок подряд). --- ## [v1.1.6.1] ### Ключевые изменения и улучшения * **Пул узлов разработчика (Developer Workers Pool)**: * **Распределение нагрузки**: Все 4 резервных узла разработчика (`Альфа`, `Бета`, `Гамма`, `Дельта`) переведены на независимые Cloudflare-аккаунты для устранения лимитов 100 000 запросов в сутки на бесплатном тарифе. * **Синхронизация ядра**: Обновлены списки адресов в нативном Rust-ядре (`mirrlyengine/src/config.rs` -> `DEV_SOCKS5_WORKERS`) и в Android-интерфейсе (`PreferencesManager.kt`). * **Автономный инструмент деплоя Cloudflare Worker (`tools/deploy-worker/`)**: * **Запуск в 1 клик на Windows (`deploy.bat`)**: Создан единый пакетный файл для запуска интерактивного мастера деплоя двойным кликом без ручного ввода команд в консоли. * **Интерактивное меню и мультидеплой**: Добавлено меню быстрого создания воркеров, генерации случайных или кастомных имен, переключения аккаунтов Cloudflare (`wrangler logout`) и просмотра истории. * **Интерактивный TTY-терминал**: Обеспечен прямой ввод для автоматической регистрации поддоменов `workers.dev` на новых аккаунтах Cloudflare. * **Автосохранение и Deep Links**: Все созданные узлы автоматически сохраняются в `my_workers.txt` с генерацией ссылок быстрого импорта `mirrly://worker?name=...&domain=...` и копированием домена в буфер обмена. * **Интерфейс приложения**: * В экраны «Инструкция Cloudflare Worker» и «Менеджер воркеров» добавлены интерактивные карточки быстрого деплоя с копированием команды в 1 тап и переходом к репозиторию. * **Архитектура репозитория и обслуживание**: * Выполнена модульная организация каталога `tools/` с разделением на `deploy-worker/` и `build/`. * Удалены устаревшие файлы заметок о релизах, очищены временные артефакты, обновлен `.gitignore`. * Версия приложения обновлена до `1.1.6.1` (`versionCode = 20`), обновлен `UpdateChecker.CURRENT_VERSION_NAME`. ## [v1.1.6] ### Ключевые изменения и улучшения * **Нативное ядро mirrlyengine (Rust Core) и сетевые протоколы**: * **Поддержка фрагментации WebSocket (RFC 6455)**: Реализована потоковая сборка фрагментированных фреймов (`OP_CONTINUATION`) с контролем флага `fin` и защитой от переполнения буфера (`MAX_FRAME_PAYLOAD = 16 MB`), обеспечивая надежную передачу тяжелого медиа-трафика через проксирующие узлы. * **Потоковая сегментация дискретных пакетов (`MsgSplitter`)**: Модуль `MsgSplitter` переработан для пошаговой дешифрации клиентского потока, точной сборки дискретных кадров MTProto (протоколы Abridged и Intermediate) через границы фрагментированных TCP-пакетов и последующего шифрования перед отправкой в WebSocket-канал. * **Оптимизация параллельной гонки воркеров (Fallback Race)**: Добавлена мгновенная отмена оставшихся фоновых задач (`handles.abort()`) и немедленное закрытие избыточных WebSocket-соединений после ответа первого успешного узла. * **Статическая маршрутизация дата-центров MTProto**: В `LocalProxyServer` настроена прямая передача пула IP-адресов дата-центров Telegram (DC 1–5, DC 203) в нативный движок при старте, исключая задержки на DNS-резолвинг. * **Архитектура Cloudflare Worker (cloudflare_worker.js)**: * **Асинхронная очередь записи (Sequential Backpressure Queue)**: Запись данных из WebSocket в TCP переведена на цепочку последовательных промисов (`writeQueue`), что исключает параллельные конфликты записи и гарантирует строгую целостность сетевых пакетов. * **Фрагментация исходящих TCP-буферов**: Передача данных из входящего TCP-потока в WebSocket разбивается на блоки размером до 64 КБ (`subarray`), предотвращая сброс соединений при передаче больших файлов. * **Изолированная очистка ресурсов (`cleanup`)**: Гарантировано корректное закрытие TCP-райтера и сокета при событиях `close` и `error` без утечек дескрипторов. * **Интерфейс, навигация и конфигурация**: * **Защита от дребезга навигации «Назад»**: В `MainActivity` реализован дебаунс быстрых повторных нажатий системной кнопки «Назад», устраняющий непреднамеренные скачки между экранами. * **Маршрутизация Anycast CDN**: В `ProxyConfig` скорректировано поведение: при пустом значении пользовательского домена в режиме MTProto активируется глобальный Anycast CDN пул. * **Версионирование**: Обновлен номер версии до `1.1.6` (`versionCode = 19`). ## [v1.1.5] ### Ключевые изменения и улучшения * **Нативное ядро mirrlyengine (Rust Core) и сетевые протоколы**: * **Конкурентная гонка воркеров (Happy Eyeballs Race)**: Для режима MTProto с туннелированием через воркеры реализован параллельный конкурентный опрос пула узлов разработчика со ступенчатой задержкой (100 мс) и контролем параллелизма через семафор. Побеждает первый ответивший узел с наименьшим пингом; проигравшие WebSocket-соединения автоматически закрываются в фоне. * **Очистка сетевого конвейера и устранение задержек**: Из цикла проксирования `bridge_ws` полностью удален легаси-модуль сегментации `MsgSplitter`, что устранило лишние аллокации памяти, снизило задержки и стабилизировало передачу медиафайлов на высоких скоростях. * **Маршрутизация дата-центров Telegram**: Функция сопоставления IP-адресов дата-центров (`get_dc_target_ip`) вынесена в оптимизированный хелпер с поддержкой разделения сигнальных и медиа-потоков (DC 1–5, DC 203). * **Автоматический кулдаун 429**: Добавлена интеллектуальная блокировка на время кулдауна для узлов с ответом `HTTP 429 Too Many Requests`. * **Архитектура переключения протоколов (Protocol Switching Orchestrator)**: * **Менеджер переключения (`ProtocolSwitchManager`)**: Разработан 3-фазный оркестратор переключения режимов (`DISCONNECTING` -> `SWITCHING_ACCENT` -> `RECONNECTING`). * **Мгновенный отклик и асинхронное переключение**: Реализовано неблокирующее применение целевого режима (обновление конфигурации и `isSocks5Flow` происходит сразу в момент вызова с 0 мс задержки ввода для UI). Остановка сокетов (`server.stop()`) и перезапуск службы перенесены в фоновый поток `Dispatchers.IO` без искусственных задержек, исключая просадки FPS и замирание главного потока. * **Безопасная отмена корутин**: Добавлена отмена предыдущих незавершенных задач (`switchJob?.cancel()`), что предотвращает гонки состояний и дублирование службы при быстром переключении. * **Пользовательский интерфейс и жестовая навигация**: * **Интерактивный капсульный переключатель (Segmented Capsule Switch)**: Внедрен паттерн Optimistic UI в `ProtocolSwitcherHeader` — локальное состояние `optimisticIsSocks5` обновляется синхронно по тапу или жесту (0 мс задержки ввода). Ползунок анимируется мгновенно на физической пружине (`Spring.DampingRatioLowBouncy`, `Spring.StiffnessMediumLow`) без ожидания фоновых сервисных задач. Жестовый детектор `pointerInput` переведен на стабильный контекст `Unit`, устранив сброс и дергание жестов. * **Разделение и выравнивание шапки (Двухуровневый TopBar)**: Шапка главного экрана разделена на два независимых визуальных уровня (верхняя строка высотой 38 dp с 3 левыми иконками, строго центрированным заголовком «Мирли» и 3 правыми иконками; нижний подуровень с таблеткой `MTProto`/`SOCKS5` и выпадающим бейджем активного воркера). * **Инерция графических слоев и каскадная физика кнопки (Staggered Spring Physics)**: Для кольцевой структуры `RotatingProxyRing` и кнопки питания внедрена раздельная каскадная физика смещения по оси Y (`Spring.StiffnessMediumLow` для кнопки, `Spring.StiffnessLow` для внутреннего кольца и `Spring.StiffnessVeryLow` для внешнего волнового кольца), создающая органичный упругий шлейф при подъеме и спуске. Добавлена динамика продавливания кнопки при нажатии (`+8.dp`), аэродинамический подъем при подключении (`-16.dp` в `CONNECTING`, `-8.dp` в `CONNECTED`) и отрисовка слоев через `Modifier.graphicsLayer` в фазе GPU Draw Phase на 120 FPS. * **Индикатор активного воркера**: Добавлен анимированный бейдж с именем активного узла при выборе режима `SOCKS5`. * **Жесты свайпа для списков и вкладок**: В «Менеджере воркеров» и «Инструкции Cloudflare Worker» добавлена поддержка горизонтальных свайпов для переключения фильтров и вертикальных жестов закрытия экранов с тактильным виброоткликом. * **Frosted Glass диалог импорта (`ImportWorkerDialog`)**: Диалог импорта воркеров по ссылке переработан в строгом стиле полупрозрачного стекла с аппаратным размытием фона (`FLAG_BLUR_BEHIND`) и полным запретом на эмодзи. * **Настройки и конфигурация**: * **Адаптивный скоростной профиль по умолчанию**: Пресет скорости по умолчанию переведен в режим `AUTO` (`SpeedPreset.AUTO`) для автоматической оптимизации `TCP_NODELAY`. * **Оптимизация параметров туннелирования**: Удален устаревший переключатель «Воркер по умолчанию (SOCKS5)», выбор узла разработчика теперь активируется автоматически при отсутствии пользовательских воркеров. * **Версионирование**: Обновлен номер версии до `1.1.5` (`versionCode = 18`). ## [v1.1.4] ### Ключевые изменения и улучшения * **Сетевой стек и ядро mirrlyengine (Rust Core)**: * **Полный переход на нативное ядро и удаление устаревшего JVM-стека**: Из модуля `core` полностью удалены старые реализации сетевых протоколов на Kotlin (`FakeTls.kt`, `MTProtoCrypto.kt`, `MsgSplitter.kt`, `RawWebSocketClient.kt`, `Socks5WsBridge.kt`, `TgWsBridge.kt`, `WsPool.kt`). Обработка сетевого трафика (SOCKS5, MTProto, FakeTLS, WebSocket, TLS) переведена на 100% в нативное ядро `mirrlyengine` (`libmirrlyengine.so`). * **Адаптивный алгоритм Happy Eyeballs и TCP Fast Failover**: В `ws.rs` и `cfproxy.rs` внедрена ступенчатая параллельная гонка подключений (RFC 8305) с немедленным запуском следующего IP-кандидата при раннем сбое соединения, что исключает задержки в мобильных сетях. * **Параллельное разрешение DNS**: Интегрирована функция параллельного разрешения IPv4 и IPv6 адресов (`resolve_dual_stack_ips`). * **Обработка смены сетевых интерфейсов (`ResetNetworkSockets`)**: В `lib.rs` реализована атомарная ротация токенов сессий (`CancellationToken`): при переключении Wi-Fi ↔ LTE все зависшие соединения прерываются, очищается кэш DoH и кулдауны 429, а балансировщик перезапускает замер на новом интерфейсе. * **Интеллектуальное управление TCP_NODELAY (Алгоритм Нагла)**: Реализован 3-позиционный селектор (`AUTO` / `ON` / `OFF`) с передачей флага в нативный слой через `SetTcpNoDelay`. В `NetworkConditionEvaluator.kt` реализована динамическая оценка задержки (порог 140 мс), пропускной способности (порог 50 Мбит/с) и загруженности канала. * **Оптимизация профилей скорости (Speed Presets)**: Скорректированы параметры пула сокетов и буферов: `Эко` (2 сокета / 128 КБ), `Баланс` (4 сокета / 256 КБ — по умолчанию), `Турбо` (8 сокетов / 1 МБ), `Ультра` (16 сокетов / 2 МБ) и `Авто`. * **Безопасность и скрипт Cloudflare Worker**: * **Защита от открытого релея (Anti-Open-Relay Allowlist)**: В `cloudflare_worker.js` внедрена проверка целевых хостов и портов. Разрешены только официальные подсети Telegram IPv4 (`91.108.0.0/16`, `149.154.160.0/20` и др.), префиксы IPv6 (`2001:b28:f23d:`, `2001:67c:4e8:`), порты (80, 443, 5222, 8443, 8888, 8080) и официальные домены (`*.telegram.org`, `*.t.me`, `*.telesco.pe`). Сторонний трафик блокируется с кодом 403 Forbidden. * **Отказоустойчивая верификация подписи (Fail-Closed)**: В `native_sec.cpp` и `SignatureVerifier.kt` при любых ошибках чтения подписи или исключениях возвращается статус `UNOFFICIAL_MODIFIED` вместо пропуска проверки. * **Пользовательский интерфейс (Jetpack Compose)**: * **Менеджер воркеров (`WorkerManagerScreen`)**: Добавлен поиск по названию и домену, фильтры узлов («Все», «Официальные», «Пользовательские»), индикация исчерпания суточных лимитов Cloudflare (HTTP 429), общий и раздельный замер пинга, карточка настройки App Links и диалог подтверждения удаления узлов. * **Настройки маршрутизации (`SettingsScreen`)**: Добавлен независимый переключатель «Применять к MTProto» для раздельного перенаправления трафика MTProto через выбранный воркер или автономный Anycast CDN-пул. * **Диалоги и навигация**: Оптимизирована компоновка `ExternalLinkConfirmDialog.kt` и обновлены параметры пружинных анимаций переходов (`DampingRatioNoBouncy`). * **Сборка и CI/CD**: * **Автоматизация сборки нативного ядра в GitHub Actions**: В `.github/workflows/android.yml` добавлен шаг компиляции `mirrlyengine` под 4 целевые ABI (`arm64-v8a`, `armeabi-v7a`, `x86_64`, `x86`) с использованием NDK 27.1.12297006 и кэшированием Cargo. * **Контрольные суммы в CI/CD**: Добавлен автоматический расчет и вывод контрольных сумм SHA-256 для всех релизных APK. ## [v1.1.3.1] ### Ключевые изменения и улучшения * **Навигация и исправление зависаний кнопок «Назад»**: * **Стек навигации экранов (Screen Stack Architecture)**: Устранена проблема зависания и зацикливания кнопок возврата в разделах «Настройки», «О приложении», «Менеджер воркеров», «Инструкция» и «Обновление». Реализован детерминированный стек переходов между экранами. * **Синхронизация жестов Android**: Полностью согласованы системные жесты назад и программные кнопки возврата в шапках экранов. * **Модуль обновлений и семантическое сравнение версий**: * **Поддержка версий 1.1.3.1 и устранение ложных срабатываний**: Алгоритм `UpdateChecker` и `UpdateManager` доработан для покомпонентного сравнения версий произвольной структуры. Устранено ложное появление уведомлений и баннера обновления при установленной актуальной сборке. * **Игнорирование версий**: Добавлена кнопка закрытия `✕` на главном баннере и кнопка «Пропустить эту версию» в окне обновления с сохранением в настройках. * **Глубокие ссылки (Deep Links / App Links) и разрешения**: * **Интеграция App Links (`https://mirrly.app/worker?domain=...`)**: В манифест добавлен фильтр `android:autoVerify="true"` для хостов `mirrly.app`, `www.mirrly.app`, `mirrly.me` и схемы `mirrly://worker`. * **Управление разрешениями Android**: В «Менеджер воркеров» добавлена кнопка перехода в системные настройки для включения открытия поддерживаемых ссылок в приложении. ## [v1.1.3] ### Ключевые изменения и улучшения * **Импорт воркеров через Deep Links в 1 клик**: * **Поддержка протоколов `mirrly://worker`**: Реализован системный обработчик глубоких ссылок. При переходе по ссылке вида `mirrly://worker?domain=...&name=...` из Telegram, WhatsApp или браузера приложение автоматически открывает интерактивный диалог подтверждения. * **Мгновенная активация**: Пользователю достаточно нажать одну кнопку «Импортировать ⚡» для добавления узла в список и переключения активного маршрута без ручного ввода доменов. * **Генерация ссылок при отправке**: Функция «Поделиться воркером» формирует готовую ссылку с названием и доменом для удобной отправки друзьям. * **Менеджер воркеров (Worker Manager)**: * **Интерактивный экран управления (`WorkerManagerScreen`)**: Добавлена новая вкладка управления узлами Cloudflare Worker с поддержкой пользовательских названий («Мой домашний», «Сервер от друга») и защитой от дублирования доменов. * **Пул воркеров разработчика**: В приложение интегрирован пул из 5 независимых серверов разработчика для SOCKS5 с возможностью моментального резервного переключения. * **Ручной замер пинга и статус 429**: Кнопка «Пинг ⚡» запускает быстрый замер задержки каждого узла и подсвечивает исчерпание лимитов (HTTP 429) с информационным окном о суточных квотах Cloudflare. * **Скоростной балансировщик Anycast (Fast Race & Latency Balancer)**: * **Параллельный замер задержки (Happy Eyeballs)**: В `mirrlyengine` (`balancer.rs` и `cfproxy.rs`) реализован замер сетевой задержки (RTT) до всех 20 встроенных Anycast CDN узлов со ступенчатым стартом 100 мс (RFC 8305), лимитером параллелизма (до 4 потоков) и таймаутом 2000 мс для безупречной работы в мобильных сетях (LTE/5G). * **Приоритет стабильности (Hysteresis & Anti-Flapping)**: Балансировщик оптимизирован под надежность соединений (99.9% успешных хэндшейков): при естественных колебаниях радиосигнала проверенный активный узел сохраняется (порог 60 мс), исключая разрывы сессий и connection reset. * **Мгновенный холодный старт**: Самый первый ответивший узел моментально назначается активным для сокетов Telegram при запуске приложения. * **Экономия лимитов Cloudflare**: Тихий фоновый перерасчет запускается 1 раз в 60 минут, расходуя минимум суточной квоты запросов. * **Интерфейс и руководство**: * **Чипы на главном экране**: Добавлен компактный чип активного воркера `Воркер: [Имя] ⚙️` для мгновенного перехода в Менеджер. * **Полноэкранная инструкция (`CloudflareWorkerGuideScreen`)**: Пошаговое руководство по созданию персонального воркера за 2 минуты (ПК & Телефон). ## [v1.1.2] ### Ключевые изменения и улучшения * **Высокопроизводительное нативное ядро mirrlyengine (Rust Core)**: * **Многократное увеличение скорости и пропускной способности сети**: Обработка пакетов перенесена из виртуальной машины Android (JVM) в скомпилированный машинный код Rust, что исключило паузы сборщика мусора (GC pauses) и снизило задержки (ping / jitter) при интенсивном обмене данными (загрузка тяжелых медиафайлов, видеосообщений и голосовых звонков). * **Автономная работа SOCKS5 без обязательного кастомного воркера**: Режим SOCKS5 теперь функционирует «из коробки» без обязательной настройки личного Cloudflare Worker — нативное ядро самостоятельно маршрутизирует и туннелирует трафик к дата-центрам Telegram через пул быстрых шлюзов и прямое TCP-соединение. * **Глубокая оптимизация сетевого стека**: Использование асинхронного Tokio runtime с неблокирующим вводом-выводом (epoll/kqueue) и zero-copy передачей буферов снизило энергопотребление и нагрузку на процессор мобильного устройства. * **Модульная архитектура движка (`libmirrlyengine.so`)**: Собраны оптимизированные нативные бинарные библиотеки для всех 4 целевых платформ Android NDK: `arm64-v8a`, `armeabi-v7a`, `x86_64` и `x86` с применением LTO (Link-Time Optimization) и стриппингом отладочных символов. * `cfproxy` и `ws`: 1-Hop WSS-туннелирование через защищенные WebSocket-соединения Cloudflare с непрерывным пре-вормингом сокетов (`prewarm_target`) для дата-центров DC2 и DC4, обеспечивающее нулевую задержку первого сетевого пакета. * `socks5`: Полноценная реализация асинхронного SOCKS5 сервера на локальном порту 10808 с поддержкой команд `CONNECT`, разбором IPv4, IPv6 и доменных имен (FQDN). * `doh`: Встроенный DNS-over-HTTPS клиент с локальным кэшированием IP-адресов и защитой от подмены и отравления DNS-запросов провайдером. * `stats`: Потокобезопасный учет сетевого трафика и таймингов на базе атомарных счетчиков (`AtomicU64`). * **Поддержка протокола FakeTLS (ee / dd секреты) и защита от DPI**: * **Маскировка под легитимный HTTPS трафик**: В модули `core` (`FakeTls.kt`) и `mirrlyengine` (`faketls.rs`) добавлена поддержка протокола FakeTLS, использующего префиксы секретов `ee` и `dd`. Клиентские подключения маскируются под стандартные сессии TLS 1.3 с генерацией корректных структур `ClientHello`, `ServerHello`, `ChangeCipherSpec` и `ApplicationData`. * **Генерация и валидация ключей**: Добавлена функция генерации случайных защищенных секретов с префиксом `dd` в `ProxyConfig.generateRandomSecret()`. Добавлены модульные тесты `FakeTlsTest.kt`. * **Сетевой стек, параллельные подключения и маршрутизация**: * **Параллельная гонка подключений (Happy Eyeballs)**: В `TgWsBridge.kt` внедрен механизм параллельного установления WSS-соединений со ступенчатой задержкой 150 мс по списку доменов Telegram. * **Корректная перешифровка в MsgSplitter**: Полностью переработан класс `MsgSplitter.kt`: реализована обязательная перешифровка потока данных (`client_dec -> plaintext -> upstream_enc`) с корректной нарезкой кадров для WebSocket эндпоинта `/apiws`. * **Динамический список Anycast CDN-доменов**: В `TgConstants.kt` расширен пул встроенных доменов Telegram (`DEFAULT_EMBEDDED_DOMAINS`) для обхода региональных блокировок без необходимости использования сторонних шлюзов. * **Улучшенный наблюдатель сети (`NetworkChangeObserver`)**: Реализовано отслеживание смены сетевых интерфейсов (Wi-Fi ↔ LTE) с гарантированным вызовом `ResetNetworkSockets` в `mirrlyengine` и очисткой пула сокетов для предотвращения зависания сессий. * **Пользовательский интерфейс и диалоги (Jetpack Compose)**: * **Автоматическое переключение режима в TelegramConnectDialog**: При нажатии на кнопку подключения MTProto или SOCKS5 приложение автоматически меняет активный режим прокси и выполняет мягкий перезапуск сервера без необходимости ручного переключения в настройках. * **Настройки и управление воркерами (`SettingsScreen`)**: Разделена логика маршрутизации: добавлена понятная информационная плашка об автономной работе MTProto через CDN-пулы Telegram и выделен переключатель воркера для SOCKS5. * **Человекопонятный перевод логов (`HumanLogTranslator`)**: Добавлены правила декодирования событий для всех ключевых операций Rust-ядра `mirrlyengine`, FakeTLS-рукопожатий, Cloudflare Fronting и прогрева пула сокетов. * **Обновленный экран обновлений (`UpdateScreen`)**: Улучшена логика удержания состояния информации о релизе и оптимизирована валидация контрольных сумм пакетов перед передачей в установщик. * **Скрипт Cloudflare Worker (cloudflare_worker.js)**: * **Поддержка IPv6 и гибкого синтаксиса параметров**: Реализован универсальный парсер адресов назначения, поддерживающий форматы `?target=host:port`, `?target=[IPv6]:port` и раздельные параметры `?host=...&port=...`. * **Безопасная очистка ресурсов**: Добавлено гарантированное закрытие TCP-сокетов (`tcpSocket.close()`) во всех обработчиках событий WebSocket (`close`, `error`, `finally`). ## [v1.1.1] ### Ключевые изменения и улучшения * **Полный рефакторинг и стабилизация Push-уведомлений**: * **Динамическая трехцветная индикация статуса**: * Внедрены контекстные иконки для строки состояния Android: зеленый статус (`ic_stat_proxy_connected`), предупреждающий желтый (`ic_stat_proxy_warning`) и критический красный (`ic_stat_proxy_error`) с цветовой дифференциацией (`#10B981`, `#F59E0B`, `#EF4444`). * **Информативные статусы и показатели сети в реальном времени**: * Заголовки и тексты уведомлений отображают активный протокол (`[MTProto]` / `[SOCKS5]`), пинг до Cloudflare/шлюза, текущие скорости приема/отдачи (`↓ / ↑`), тип активной сети (Wi-Fi / Мобильная) и остаток таймера сна. * **Управление и жизненный цикл**: * Встроена нативная кнопка быстрого отключения «Остановить» со специальной векторной иконкой `ic_notif_stop`. * Реализованы методы `cancelProxyNotifications`, `cancelUpdateNotification` и `cancelSummaryNotification`, исключающие застревание уведомлений в шторке после остановки прокси или закрытия приложения. * Изоляция контекста службы `ProxyForegroundService` с помощью `SupervisorJob()` и защита вызовов `notify()` от исключений системы. * **Сетевой стек, пулы сокетов (WsPool) и ускорение туннелирования**: * **Стабилизация и контроль пула веб-сокетов (`WsPool`)**: * Внедрен метод `connectAndAwait(timeoutMs = 3000)`: сокеты, не успевшие завершить TLS/WS рукопожатие за отведенное время, немедленно закрываются, предотвращая утечки дескрипторов и зависшие соединения. * Добавлено динамическое свойство `availableSockets`, валидирующее активность соединения (`client.isAlive`) и время жизни сокета в пуле (TTL 60 секунд). * **Исправление подсчета трафика и двусторонних мостов (`TgWsBridge`, `Socks5WsBridge`)**: * Устранена инверсия счетчиков байтов (загрузка/отдача) в фоновых циклах моста. * Добавлена гарантированная очистка и закрытие клиентских сокетов в секциях `finally` и при получении сигналов из `closeChannel`. * **Устойчивость сетевого мониторинга**: * Внедрен строгий таймаут 2500 мс для проверок сетевой доступности в `LocalProxyServer` с прямым TCP-пингом до Telegram при отключенном Cloudflare. * Оптимизирована обработка событий смены сети (Wi-Fi ↔ LTE) в `NetworkChangeObserver` без гонки потоков при перезапуске сервера. * **Безопасность JNI-слоя (`NativeProxy`)**: * Вызовы библиотеки `ProxyLibrary` обернуты в перехват критических ошибок `Throwable`, исключая падение процесса при сбоях в нативном слое. * **Пользовательский интерфейс и дизайн (Jetpack Compose)**: * **Интерактивные анимации и тактильный отклик**: * Добавлен универсальный модификатор пружинного нажатия `.springPress()` для кнопок действий и карточек. * Переработаны кнопки переключения режимов, очистки и запуска на всех экранах приложения. * **Очистка кодовой базы от устаревших компонентов**: * Полностью удален устаревший монолит `UpdateDialog.kt` (-772 строки кода) в пользу выделенного оптимизированного экрана `UpdateScreen.kt`. * **Главный экран (`HomeScreen`)**: * Переработан верхний статус-бар и центральный индикатор состояния. * Добавлено отображение количества готовых сокетов в пуле (`wsPool.availableSockets`). * Оптимизирована отрисовка энергоэффективного холста `CyberEnergyCanvas`. * **Экран настроек (`SettingsScreen`) и поддержка проекта**: * Проведена структуризация карточек настроек (протоколы, воркеры, таймер сна, диагностика). * Интегрирован модуль `DonationManager` и диалог поддержки автора через сервис DaLink с возможностью отложить напоминание на 3 дня или скрыть навсегда. * Обновлен диалог настройки таймера сна `SleepTimerDialog`. * **Экран истории (`HistoryScreen`)**: * Оптимизирована производительность скролла списка сессий и расчет агрегированной статистики трафика. * **Единый визуальный стиль диалогов**: * Диалоги приведены к единому оформлению с размытием фона (`blurBehindRadius`), четкими контрастными границами и строгой типографикой без лишних декоративных символов. * **Исправление вылетов и общая стабильность**: * Устранены сбои при переполнении буфера сообщений в `AppLogger` и на экране логов `LogsScreen`. * Устранен вылет при быстром переключении режима прокси (MTProto ↔ SOCKS5) во время активного трафика. * Устранены race conditions и утечки корутин при перезапуске `ProxyForegroundService`. * Исправлена обработка заголовков ETag и парсинг релизных тегов в `UpdateChecker`. --- ## [v1.1.0] ### Ключевые изменения и улучшения * **Критические исправления сетевого стека**: * **Предотвращение вылетов SOCKS5 и повреждения состояния MTProto**: * Вызовы JNI `NativeProxy.stopProxy()` при остановке службы теперь пропускаются, если нативный движок не был запущен (в режиме SOCKS5). Это устранило повреждение внутреннего JNI-состояния и последующие падения MTProto. * Введен флаг `isNativeRunning` в `LocalProxyServer` и проверка `isStarted` в `NativeProxy` для всех JNI-методов (`stopProxy`, `setPoolSize`, `setSecret`, `getStats`). * **Обработка прерываний ввода-вывода (`InterruptedIOException`)**: * В `Socks5WsBridge` и `TgWsBridge` блоки обработки исключений переведены на `catch (e: Throwable)` с явным отсеиванием `CancellationException` и `InterruptedIOException` без нецелевого логирования ошибок. * **Исправление предупреждения SOCKS5**: * Диалог предупреждения в `SettingsScreen` убран, если активирован дефолтный воркер (`useDefaultWorkerSocks5 = true`). * **Устранение утечки сообщений и потенциального deadlock в `RawWebSocketClient`**: * Буфер `messageChannel` переведен на `Channel.UNLIMITED` с принудительным закрытием соединения при сбоях отправки TCP-фреймов. * Вызовы `messageChannel.close()` добавлены в обработчики `onClosing`, `onFailure` и `onClosed`. * **Исправления системы обновлений и навигации**: * **Коррекция скрытия плашки обновлений**: Блок плашки обернут в `AnimatedVisibility` с анимацией `shrinkVertically + fadeOut` при включении скрытого режима UI. * **Обработка HTTP 304 Not Modified**: `UpdateManager` теперь кеширует данные релиза в `SharedPreferences` и при повторной проверке сверяет версии через `isVersionNewer()`, исключая ложные предложения обновиться до текущей версии. * **Единая навигация к экрану обновлений**: `SettingsScreen` и `OfficialSourceCard` переведены на вызов экрана обновлений через событие `onOpenUpdate()`. Компонент `UpdateDialog` и устаревшие вызовы удалены. * **Парсер версий**: `UpdateChecker.cleanVersionString()` переведен на регулярные выражения для корректной обработки модифицированных релизных тегов. * **Архитектура пакетов, производительность и ABI Splits**: * **Переход от `app-release.apk` к целевым ABI-сборкам**: * Отменено использование громоздкого файла `app-release.apk`. Релизные артефакты теперь разделены по архитектурам (`arm64-v8a`, `armeabi-v7a`, `x86_64`, `x86`), а в качестве основного пакета публикации и автообновлений используется `app-universal-release.apk`. * Размер сборки для современных 64-битных устройств (`arm64-v8a`) снижен до ~4.8 МБ вместо ~7.1 МБ универсального пакета. * **Оптимизация памяти в `MsgSplitter`**: `MsgSplitter.split()` получил параметры `offset` и `length`, устранив аллокацию промежуточных `ByteArray` на каждый фрейм данных и снизив нагрузку на Garbage Collector. * **Event-based логирование в `AppLogger`**: `_logsFlow` переведен на `MutableSharedFlow` с ленивым вычислением форматированного времени и текста сообщений. * **Изоляция корутин в `WsPool`**: В область корутин пула веб-сокетов встроен `SupervisorJob()`. * **ProxyConfig, UI и Модульное тестирование**: * **Автосанитация доменов воркера**: Функция `sanitizeDomain()` автоматически отсекает схемы (`https://`, `wss://`), пути и параметры из вставленного пользователем адреса. * **Индикация обновлений в TopBar**: Кнопка в шапке всегда доступна и выделяется желтым цветом с бейджем-точкой при наличии нового релиза. * **Юнит-тесты**: Добавлены модульные тесты `MTProtoCryptoTest` (handshake и заголовки MTProto) и `Socks5ProtocolTest` (SOCKS5 negotiation и разбор адресов). --- ## [v1.0.9] ### Ключевые изменения и улучшения * **Поддержка SOCKS5 Proxy [БЕТА]**: * Реализован движок прозрачного TCP-релея SOCKS5 на порту `10808` для чатов, медиа и звонков. * Устранен баг жизненного цикла, приводивший к остановке сокет-слушателя при старте. * **Унифицированное WSS-туннелирование Cloudflare Worker**: * Разработан единый протокол туннелирования `wss://$cfDomain/tcp?target=$dcIp:443` для MTProto и SOCKS5 через Cloudflare Worker (`cloudflare:sockets`). * Исправлено туннелирование MTProto в `TgWsBridge.kt`. * **Раздельные настройки тумблеров**: * Добавлены независимые переключатели дефолтного воркера для SOCKS5 и MTProto с абсолютным приоритетом кастомного домена пользователя. * **Безопасность и чистота интерфейса**: * В инфо-подсказки добавлены подробные разъяснения по защите личных данных и принципам работы V8 Edge скриптов. * Все эмодзи убраны из диалогов SOCKS5 и инструкции. --- ## [v1.0.8] ### Ключевые изменения и улучшения * **Умный таймер сна (Sleep Timer)**: * Возможность настройки автоотключения прокси на 15 мин, 30 мин, 45 мин, 1 ч, 2 ч, 4 ч или пользовательский интервал (до 6 ч). * По истечении времени прокси плавно останавливается, экономя память и заряд батареи. * Интерактивные предупреждающие уведомления за 15, 10 и 5 минут до выключения с кнопками быстрого продления (+15 мин) и отмены. * **Центральная капсула времени (Capsule UI)**: * Время активного подключения и статус таймера объединены в компактную центральную капсулу `[ ● 00:14:22 │ ⏱ 00:45:10 ]`. * **Редизайн диалогов и экрана обновлений (Frosted Glass UI)**: * Диалог таймера сна переработан в едином прозрачном стиле со сплошным системным размытием фона (`blur = 70`). * Полностью удалены непрозрачные подложки с карточек и панелей во вкладке обновлений, введен AMOLED-прозрачный стиль со светящимися контурами и эффектом бегущего луча. * Мгновенное прерывание и очистка временных файлов по кнопке «Отменить загрузку». * **Адаптивность интерфейса (DPI/PPI)**: * С главного экрана убран технический шум (сырые счетчики сокетов и локальный адрес) в пользу чистого статуса `Cloudflare WSS • Защищено`. * Центральная кнопка питания переведена на гибкое распределение высоты (`weight(1f)`), предотвращая наложение элементов на компактных экранах. * **Сетевой стек и умный Fallback**: * Каждое новое подключение строго инициируется через Cloudflare WSS с абсолютным приоритетом. * Мгновенный сброс разорванных сессий (`wsPool.clear()`) и упреждающий прогрев сокетов к DC2/DC4 при переключении Wi-Fi ↔ LTE. * Быстрый таймаут резервного прямого TCP (2.5 с вместо 60–120 с) для мгновенного выявления блокировок ТСПУ. * **Безопасность и проверка целостности**: * Предварительная проверка цифровой подписи APK перед передачей файла в системный установщик Android. * Защита от DoS и лимит размера скачиваемого пакета обновления (до 100 МБ). * Полное прекращение публикации debug-сборок в релизах для максимальной безопасности пользователей. --- ## [v1.0.7] ### Ключевые изменения и улучшения * **История сессий и аналитика (Session History)**: * Выделенный экран `HistoryScreen` с нативными переходами и быстрой кнопкой в шапке (`ic_history.xml`). * Сводная панель аналитики: суммарное количество сессий, общий аптайм и переданный трафик. * Живая карточка активной сессии в реальном времени (статус, пиковая скорость, сокеты). * Фоновый персистентный менеджер `SessionHistoryManager` (хранение до 100 сессий). * **Бескарточный интерфейс (Pure Blur UI)**: * Отказ от тяжелых всплывающих карточек-контейнеров в пользу прозрачного системного размытия (`FLAG_BLUR_BEHIND`, `blurBehindRadius = 70`). * Анализатор ссылок `getLinkDetails` с автоопределением целевых страниц (Issues, Releases, Лицензия, Telegram). * Нижнее расположение кнопок действий для удобного управления одной рукой. * Полное удаление лишних эмодзи из системных диалогов. * **Полнотекстовый перевод лицензии GNU GPLv3**: * Приведение перевода к 18-раздельной структуре (0–17) с восстановлением 4 пропущенных разделов (12, 13, 14, 17). * Профессиональный юридический перевод терминов и преамбулы на экране `LicenseScreen.kt`. * **Обновление пользовательского соглашения (`TERMS_OF_USE.md`)**: * Синхронизация структуры и нумерации разделов [1–6] с англоязычным оригиналом. * **Переработка транслятора логов (`HumanLogTranslator.kt`)**: * Устранение ошибки парсинга IP/портов (ошибка «на порту 127»). * Ликвидация некорректных гибридных фраз автозамены. * Точные сообщения о несовпадении SHA-256, сбоях движка и ограничениях WakeLock. --- ## [v1.0.6] ### Ключевые изменения и улучшения * **Прямые автообновления внутри приложения (Direct APK Installer)**: * Встроенный загрузчик `UpdateDownloader` со скачиванием `app-release.apk`, индикацией скорости, прогресса (МБ, %) и автоматическим вызовом инсталлятора Android. * **Проверка целостности SHA-256**: * Автоматический расчет и сверка контрольной суммы SHA-256 скачанного APK с официальными отпечатками релиза. * **Экран релиза `UpdateScreen`**: * Полноценный интерфейс просмотра релиза с поддержкой рендеринга разметки GitHub Markdown (`GithubMarkdownText`). * **Индикатор отклика Telegram**: * Отображение доступности серверов Telegram в реальном времени в фоновом уведомлении службы. --- ## [v1.0.5.1] ### Ключевые изменения и улучшения * **Нативная верификация подписи в C++ NDK (`mirrly_sec`)**: * Проверка отпечатков цифровой подписи на нативном уровне C++ с маскированием эталонного SHA-256 ключа (XOR 0x5A) против модификаций байткода Smali. * **Мульти-хеширование через GitHub API**: * Поддержка считывания нескольких контрольных отпечатков SHA-256 из заметок релиза. * **Диалог безопасности `UnofficialBuildDialog`**: * Предупреждение об использовании неофициальной/модифицированной сборки с предложением перейти в оригинальный репозиторий. * **Сетевой стек и буферизация**: * Увеличение сетевого буфера до 2 МБ в режиме Турбо для быстрой загрузки медиафайлов. * Сквозное включение опции `TCP_NODELAY` для устранения задержек отправки сообщений (40–200 мс). --- ## [v1.0.5] ### Ключевые изменения и улучшения * **Профили производительности (SpeedPresets)**: * Режим «Турбо»: 16 сокетов на DC, буфер 2 МБ (2 097 152 байт). * Режим «Баланс»: 8 сокетов на DC, буфер 256 КБ (262 144 байт). * Режим «Эко»: 2 сокета на DC, буфер 32 КБ (32 768 байт). * **Резервный движок `TgWsBridge` на Kotlin**: * Автоматическое переключение на чистый Kotlin-модуль при недоступности нативной библиотеки. * **Учет трафика на уровне ядра Linux**: * Использование `TrafficStats` для подсчета байтов с динамическим расчетом скорости (Б/с, КБ/с, МБ/с). * **Стеклянный интерфейс Glassmorphism**: * Системное размытие заднего плана (`FLAG_BLUR_BEHIND`) для Android 12+. * **Защита внешних ссылок**: * Диалог `ExternalLinkConfirmDialog` перед открытием внешних ссылок. --- ## [v1.0.4] ### Ключевые изменения и улучшения * **Переход на лицензию GNU General Public License v3 (GPLv3)**: * Полный переход на строгую копилефт-лицензию для защиты открытого исходного кода от закрытия в коммерческих форках. * **Пользовательское соглашение (`TERMS_OF_USE.md`)**: * Четкие правила распространения бинарных сборок, запрет скрытого вредоносного ПО и защита бренда. * **Режим скрытия интерфейса (Stealth UI Mode)**: * Возможность скрытия UI по кнопке глаза и восстановление долгим нажатием. * **Экран «Условия использования» (`TermsScreen`)**: * Встроенный просмотр условий с переключением языков и копированием текста. --- ## [v1.0.0] — Первый официальный релиз ### Ключевые возможности * **Нативное ядро `libtgwsproxy` (C/Rust + JNA)**: * Высокопроизводительное туннелирование без оверхеда JVM. * **Пул прогретых сокетов (`WsPool`)**: * До 16 предварительно открытых WebSocket-соединений к каждому дата-центру Telegram (DC1–DC5) с нулевой задержкой рукопожатия. * **Локальный MTProto-прокси (`127.0.0.1:1443`)**: * Работа без системного `VpnService` — отсутствие лишней нагрузки на батарею и нагрева. * **Интеграция в 1 клик с 17+ клиентами Telegram**: * Автоопределение установленных клиентов: Official, Telegram X, AyuGram, NekoGram, Plus Messenger и др. * **Интеграция с Android OS**: * Плитка в шторке быстрых настроек (`ProxyTileService`). * Фоновая устойчивость с `WakeLock` и автопереподключение при смене сети (`NetworkChangeObserver`). * **Дизайн AMOLED True Black**: * Полностью на Jetpack Compose с визуализацией энерго-потоков и живой телеметрией.