Releases: NullCoreDeveloper/NullcoreGram
Release list
v12.9.2
🚀 Релиз NullcoreGram (Android) — самое свежее ядро, фичи AyuGram и WebProxy
Анонсирую NullcoreGram — форка Telegram для Android, в котором я объединил возможности AyuGram и Nagram, вырезал остаточную телеметрию и внедрил поддержку протокола WebProxy.
В отличие от оригинального AyuGram, который часто отстает от обновлений Telegram, этот клиент построен на самой свежей базе (NekoX/Nagram), поэтому вы получаете самый актуальный функционал и дизайн Telegram.
📌 Что вошло в релиз:
• База AyuGram + Nagram: сохранена история удалённых/изменённых сообщений (анти-удаление), раздельный Ghost Mode (режим невидимки) для каждого аккаунта и гибкая кастомизация (возможность не использовать функционал удаленных сообщений или Ghost Mode).
• Полная зачистка телеметрии: из кода вырезаны Sentry, Firebase Crashlytics и прочие трекеры.
• Автоматический VPN-байпас: Добавлен новый тумблер («Отключать прокси при VPN»). При включении любого VPN клиент автоматически отключает прокси, предотвращая зацикливание трафика, а при выключении VPN — возвращает прокси обратно.
• Ротация прокси: унаследованная от оригинального Nagram функция автоматического переключения серверов по таймауту.
🔬 Опережая вопросы: Реализация WebProxy и его ограничения
🔬 Как работает WebProxy на Android (в отличие от версии для ПК)
В клиент была добавлена поддержка протокола WebProxy.
Главное архитектурное отличие нашей Android-реализации от десктопной/веб версий:
На ПК логика WebProxy опирается на браузерные механизмы, которые сами умеют формировать HTTPS и WebSocket запросы.
На Android нативное сетевое ядро Telegram (TGNet, написанное на C/C++) умеет работать только с чистыми TCP-соединениями (как SOCKS5 или классический MTProto-прокси). Чтобы научить его работать с WebProxy без переписывания всего ядра, реализован локальный мост-транслятор.
Как это работает под капотом:
В коде (WebProxyManager.kt) запускается локальный сервер на адресе 127.0.0.1. Ядро Telegram подключается к нему, думая, что это обычный прокси. Мост берет сырой TCP-трафик от ядра и через библиотеку OkHttp упаковывает его в защищенные HTTPS-запросы или WebSockets (в зависимости от того, какой режим выдаст сервер), после чего отправляет их наружу.
Суть «белых списков» в том, что ТСПУ блокирует всё, кроме разрешенных доменов. Проверка идет по имени домена (SNI) в самом начале соединения.
Современные протоколы обхода (например, VLESS REALITY) умеют подделывать SNI: они «воруют» чужой сертификат и притворяются разрешенным сайтом, поэтому ТСПУ их пропускает.
WebProxy так не умеет. Библиотека отправляет честный HTTPS/WSS трафик с реальным доменом вашего прокси-сервера. Если этого домена нет в разрешенном «белом списке» провайдера — соединение обрывается.
(В теории, реализовать механизм подмены SNI для WebProxy возможно, но тогда на ПК-версиях разработчикам придется отказаться от удобной реализации через браузерные движки, так как браузер не позволяет на низком уровне манипулировать SNI-заголовками при установке TLS-соединения).
Зачем тогда нужен WebProxy?
Он отлично решает проблему блокировки IP-адресов серверов Telegram или фильтрации по сигнатурам MTProto. Трафик WebProxy (HTTPS/WSS на 443 порту) выглядит для DPI-фильтров как обычный веб-серфинг, к которому они не придираются. Но против самых жестких мер (запрет всего, кроме белого списка) по-прежнему нужны полноценные VPN-клиенты с функциями маскировки.
Для скачивания:
🟣 Скачать для ARMv8
🟣 Скачать для ARMv7
🔗 Исходный код: https://github.com/NullCoreDeveloper/NullcoreGram