Skip to content

Releases: arsenii-cmd/Tejar

Tejar 1.4.4 — in-app updates

Choose a tag to compare

@arsenii-cmd arsenii-cmd released this 26 Jul 19:34

Everything since 1.3.0, in one release. Based on Telegram 12.9.0.

Updating the app

Tejar lives outside any app store, so until now getting a new build meant noticing a release on GitHub and installing the APK by hand. This release makes the app take care of it.

Update button in the header. The main screen now has an update icon next to the search button, and it tints itself when a new version is waiting. It opens a new About app screen showing the installed version, a link to GitHub Releases, a manual Check for update button, and — when something newer exists — its version, changelog and an Update button with a download progress bar.

Background checks and notifications. The app checks for a new release roughly every six hours, on its own, and tells you when it finds one. The check survives reboots and only announces each release once. Tapping the notification opens the About app screen with the update ready to download. Previously a check only ever happened when the app was cold-started, so someone who never quits Telegram would simply never hear about a new build.

Downloads that survive being backgrounded. The download now runs under a foreground service, so leaving the app, turning the screen off or having battery saver enabled no longer stalls it partway through. Before, Android's Doze and App Standby throttling would quietly freeze the transfer as soon as the app lost focus.

Downloads remember where they got to. A dropped connection or a cancelled download no longer makes the app forget that an update exists. Previously any interruption wiped the discovered update entirely — the Update button vanished and it looked as though there were nothing to install. Now only a genuine signature mismatch discards a release; anything else leaves it in place so you can retry.

Only genuinely Tejar builds are installed. A downloaded APK's signing certificate is verified against the running app before installation is offered, so a tampered or substituted release asset is rejected rather than handed to the installer. HTTPS alone would not cover this — it protects the connection, not the identity of whatever served the bytes.

Versioning

Tejar's version is now its own, independent of the Telegram release the fork is built on. The About app screen shows both: the Tejar version at the top, and Based on Telegram 12.9.0 underneath. Previously the app reported the Telegram version as its own, which made it impossible to tell two Tejar builds apart if they shared an upstream base.

Branding

The app name reads Tejar consistently — on the main screen, on the About app screen and in the update dialog, including the German, Spanish, Italian and Brazilian Portuguese translations. Some of these places used to say "Telegram" even though the local resources were correct, because Telegram's downloaded language pack silently overrode them at runtime.

Fixes

Crash on launch. Certain builds crashed immediately at startup with a NoSuchMethodError. The release shrinker was removing a networking method it wrongly judged unreachable.

Wasted work during downloads. Progress is now reported once per whole percent rather than once per 16 KB — for a ~140 MB APK that is a hundred updates instead of several thousand, which stops the download from flooding the UI thread and the notification manager.

Security and reliability (from the 1.4 security review)

  • The local SOCKS5 proxy is no longer open on 127.0.0.1 to any app on the device — each session gets random credentials.
  • Subscription fetching enforces HTTPS and refuses redirects that would downgrade to plain HTTP.
  • Subscription URLs are stored encrypted, migrating any existing plaintext file.
  • Credentials in links are redacted before anything reaches logcat, and the server address no longer appears on the lock screen.
  • The VPN no longer reports Connected when the xray core never actually opened its SOCKS port.
  • A single corrupt entry in the config store no longer wipes every saved config.
  • Boot-time restore checks the real running-state flag, and its encrypted-storage I/O moved off the main thread.
  • The plaintext DNS fallback and a leftover unencrypted config.json write were removed; UDP is enabled for calls.
  • Shadowsocks link parsing handles plaintext user-info, no longer double-decodes URLs, and validates port ranges.
  • APP_ID / APP_HASH are read from local.properties at build time instead of being committed in source.

Install

Tejar-1.4.4-69729-arm64-standalone.apk — arm64 only. Signing certificate SHA-256: 435cb417636c38f763ed13753830bcc9f4e2d6912012f24876195a58aa0598d6.

Installs over any earlier Tejar build; your chats and VPN configs are kept.


Русская версия

Всё, что появилось с версии 1.3.0, одним релизом. Основано на Telegram 12.9.0.

Обновление приложения

Tejar живёт вне магазинов приложений, поэтому раньше получить новую сборку означало заметить релиз на GitHub и поставить APK вручную. В этой версии приложение берёт это на себя.

Кнопка обновления в шапке. На главном экране рядом с поиском появилась иконка обновления, и она подсвечивается, когда доступна новая версия. По нажатию открывается новый экран «О приложении»: установленная версия, ссылка на GitHub Releases, кнопка ручной проверки, а если есть что ставить — версия, список изменений и кнопка обновления с полосой прогресса.

Проверка в фоне и уведомления. Приложение само проверяет наличие новой версии примерно раз в шесть часов и сообщает, когда находит. Проверка переживает перезагрузку телефона, а о каждом релизе сообщается один раз. Тап по уведомлению открывает экран «О приложении» с готовым к скачиванию обновлением. Раньше проверка происходила только при холодном запуске, так что человек, который никогда не закрывает Telegram, попросту не узнавал о новых сборках.

Скачивание не прерывается в фоне. Загрузка теперь идёт под foreground-сервисом, поэтому сворачивание приложения, выключенный экран и включённый режим энергосбережения больше не останавливают её на середине. До этого механизмы Doze и App Standby тихо замораживали передачу, как только приложение теряло фокус.

Прерванная загрузка не сбрасывает найденное обновление. Обрыв связи или отмена скачивания больше не заставляют приложение забыть, что обновление существует. Раньше любое прерывание стирало найденный релиз целиком: кнопка обновления пропадала, и выглядело так, будто ставить нечего. Теперь релиз отбрасывается только при реальном несовпадении подписи, во всех остальных случаях он остаётся на месте и загрузку можно повторить.

Ставятся только настоящие сборки Tejar. Подпись скачанного APK сверяется с подписью установленного приложения до того, как предложить установку, поэтому подменённый файл релиза будет отвергнут, а не передан установщику. Одного HTTPS для этого мало: он защищает соединение, но не подтверждает, кто именно отдал байты.

Версии

Версия Tejar теперь своя собственная и не зависит от версии Telegram, на которой собран форк. На экране «О приложении» показаны обе: версия Tejar сверху и строка «Based on Telegram 12.9.0» под ней. Раньше приложение выдавало версию Telegram за свою, и различить две сборки Tejar с одной и той же основой было невозможно.

Название

Приложение называется Tejar везде — на главном экране, на экране «О приложении» и в диалоге обновления, включая немецкий, испанский, итальянский и бразильский португальский переводы. В части этих мест раньше отображалось «Telegram», хотя локальные ресурсы были правильными: языковой пакет, который Telegram скачивает с серверов, незаметно перекрывал их во время работы.

Исправления

Краш при запуске. Некоторые сборки падали сразу при старте с ошибкой NoSuchMethodError. Оптимизатор релизной сборки вырезал сетевой метод, ошибочно посчитав его недостижимым.

Лишняя работа во время загрузки. Прогресс теперь сообщается раз на целый процент, а не на каждые 16 КБ: для APK объёмом около 140 МБ это сто обновлений вместо нескольких тысяч, и загрузка перестала перегружать интерфейс и менеджер уведомлений.

Безопасность и надёжность (по итогам ревью 1.4)

  • Локальный SOCKS5-прокси больше не открыт на 127.0.0.1 для любого приложения на устройстве: на каждую сессию выдаются случайные учётные данные.
  • Загрузка подписок работает только по HTTPS и отклоняет редиректы с понижением до обычного HTTP.
  • Ссылки на подписки хранятся в зашифрованном виде, старый незашифрованный файл переносится автоматически.
  • Учётные данные в ссылках вырезаются до попадания в logcat, а адрес сервера больше не показывается на экране блокировки.
  • VPN больше не рапортует «Подключено», если ядро xray на самом деле не открыло свой SOCKS-порт.
  • Одна повреждённая запись в хранилище конфигов больше не стирает все сохранённые конфиги.
  • Восстановление после перезагрузки проверяет реальный флаг работы, а обращения к зашифрованному хранилищу вынесены с главного потока.
  • Убраны незашифрованный DNS-фолбэк и оставшаяся запись открытого config.json; для звонков включён UDP.
  • Разбор Shadowsocks-ссылок понимает незашифрованную часть с логином, больше не декодирует URL дважды и проверяет диапазон портов.
  • APP_ID и APP_HASH читаются при сборке из local.properties, а не лежат в исходниках.

Установка

Tejar-1.4.4-69729-arm64-standalone.apk — только arm64. SHA-256 сертификата подписи: 435cb417636c38f763ed13753830bcc9f4e2d6912012f24876195a58aa0598d6.

Ставится поверх любой предыдущей сборки Tejar, переписки и конфиги VPN сохраняются.

v1.3.0 — Update to Telegram 12.9.0 + proxy stability fixes

Choose a tag to compare

@arsenii-cmd arsenii-cmd released this 19 Jul 13:04

Tejar v1.3.0 — обновление до Telegram 12.9.0 + стабильность прокси

Крупное обновление: клиент переведён на актуальную кодовую базу Telegram Android 12.9.0 и устранена основная причина периодических обрывов VPN-прокси.


🔄 Обновление Telegram

  • База клиента обновлена с 12.8.1 до Telegram Android 12.9.0 — все актуальные функции и исправления мессенджера от разработчиков Telegram.
  • Обновление выполнено «с чистого листа»: VPN-модуль заново интегрирован поверх официальных исходников 12.9.0, без хвостов от предыдущих версий.
  • Сохранена официальная поддержка Android Auto из upstream.

🛠️ Исправления стабильности прокси

Устранён симптом «прокси иногда перестаёт работать / VPN полностью вырубается», особенно заметный на Android 14+. Найдены и исправлены две независимые причины:

1. Тайм-аут фонового сервиса (Android 14+)

  • Тип foreground-сервиса изменён dataSync → specialUse: система на Android 14+ агрессивно завершала сервис типа dataSync, убивая уведомление и приоритет процесса.
  • Сервис переведён в режим START_NOT_STICKY — после завершения система больше не перезапускает его с «пустым» намерением, из-за чего раньше показывалось ложное уведомление «подключено», хотя ядро уже не работало.
  • Добавлена корректная обработка onTimeout() — тайм-аут сервиса на Android 14+ больше не роняет процесс исключением; VPN-туннель внутри процесса продолжает работать.

2. Потеря настроек прокси при переподключении

  • Состояние прокси (proxy_enabled, адрес, порт) теперь сохраняется в глобальные настройки Telegram так же, как это делает штатный экран прокси. Раньше при переподключении к серверам Telegram настройки прокси сбрасывались, и приложение молча уходило в прямое соединение, пока локальное ядро продолжало слушать порт — это и давало «плавающие» обрывы.
  • При отключении флаг корректно очищается, чтобы устаревший прокси не применялся повторно.

3. Watchdog восстановления

  • Сторожевой механизм теперь восстанавливает туннель во всех случаях, когда есть последняя рабочая конфигурация, а не только при включённом авто-переподключении.

📦 Установка

  • Файл: Tejar-12.9.0-arm64-standalone.apk — для 64-битных устройств (arm64-v8a, практически все современные телефоны).
  • Устанавливается поверх предыдущей версии Tejar с сохранением данных (та же подпись).
  • Если ранее ставили другой сборкой/подписью — сначала удалите старую версию.

Внутренняя версия: Telegram 12.9.0 · versionCode 69669 · пакет com.tejar.messenger.web.

v1.2.0 — Update to Telegram 12.8.1

Choose a tag to compare

@arsenii-cmd arsenii-cmd released this 13 Jul 12:01

Update to stock Telegram 12.8.1 (build 6916), fully re-integrating VPN proxy support on top of the new upstream snapshot.

Rebased onto a clean upstream snapshot at commit 9b50143d (12.8.1, build 6916) since the fork has no shared git history with upstream. Re-applied all custom patches on top:

  • vpn-core module (VPN proxy engine, unchanged) plus its settings.gradle/TMessagesProj dependency wiring
  • ApplicationLoader.java VPN bootstrap block (state restore, global proxy connection listener, Energy Saving pause/resume)
  • New org.telegram.ui.vpn package (TelegramProxyBridge, VpnConfigAdapter, VpnSettingsActivity) — verified against updated SharedConfig/ConnectionsManager/NotificationCenter APIs, no signature changes needed
  • VPN Proxy menu entry points in SettingsActivity and DataSettingsActivity (re-inserted by context, since both files were touched upstream)
  • Tejar branding (AppName strings, google-services.json package family, APP_PACKAGE), go.libv2ray.gojni manifest override, blanked Maps API key
  • Kotlin plugin wiring and APP_ID/APP_HASH BuildConfig fields in TMessagesProj/build.gradle needed for the module to compile/run at all

APK: arm64-v8a standalone build, signed with the same release key as previous versions — installs as an update over v1.1.0.

v1.1.0 — VPN reliability fixes + Add-config UI rework

Choose a tag to compare

@arsenii-cmd arsenii-cmd released this 13 Jul 09:42

vpn-core reliability fixes

  • Watchdog auto-reconnect actually works now. Previously the watchdog cancelled its own coroutine job before attempting to reconnect after a dead port, so recovery silently never happened.
  • Fixed a crash on system-triggered service restart. ProxyForegroundService now handles the null-intent restart Android delivers to a killed START_STICKY service by immediately calling startForeground again, avoiding a RemoteServiceException.
  • Removed a duplicate proxy start on boot. ApplicationLoader.onCreate() already restores VPN state globally on cold start; VpnBootReceiver was redundantly doing the same thing and racing it.

VPN Proxy screen UI rework

  • "Add configuration" and "Add subscription" are now one always-visible card with a Link / Subscription mode switch, instead of subscriptions being a barely-visible text link that most users never noticed.
  • Removed the system AlertDialog used for adding a subscription — it could render the URL field with invisible white-on-white text depending on the device's system theme. That whole code path is gone now.

Build

Attached APK: arm64-v8a only, standalone build type (package com.tejar.messenger.web), installs as an update over previous standalone installs.

Tejar v1.0.0

Choose a tag to compare

@arsenii-cmd arsenii-cmd released this 21 Jun 06:01

Tejar — форк Telegram со встроенным прокси AxiOm.

Android

  • Tejar.apk — standalone-сборка, установить напрямую (не из Google Play)