* fix: address routing, media, worker and platform issues * ci: use available Android tools and verify Windows CLI artifact * fix(gui): return a result from asynchronous stop command * test(android): verify installed APK and proxy lifecycle on emulator * fix(media): use native MTProto for CDN203 and retain recent diagnostics * Fix owned WebSocket split after transport boxing * Clarify CDN transport and connection status guarantees * Recognize accessible Android power button labels * chore(release): prepare 2.0.0-beta.15 with verified draft publication --------- Co-authored-by: babin <Thartewerner536e@engineer.com>
4.5 KiB
CLI для ARM64 / OpenWrt
Цель сборки — aarch64-unknown-linux-musl: ARM64 Linux, статический бинарь без
зависимости от glibc, OpenSSL или WebView. Это подходит для 64-битной прошивки
NanoPi R4S и других ARM64-роутеров. MIPS и 32-битный ARM требуют другой сборки.
Проверьте архитектуру прошивки командой uname -m: ожидается aarch64.
Workflow Static ARM64 CLI собирает и запускает тесты на ARM64 runner,
проверяет ELF (нет INTERP и NEEDED), запуск CLI, завершение по SIGTERM и
сохранение секрета между запусками. Артефакт содержит бинарь и SHA-256.
Release workflow прикладывает такой же проверенный артефакт к будущим релизам.
Наличие сборки в PR не означает, что уже опубликован новый релиз.
Это проверка ARM64 Linux, а не испытание конкретной прошивки OpenWrt или доступности Telegram через вашего провайдера.
Установка
Скачайте артефакт успешного запуска workflow нужного PR либо файл
tglock-cli-aarch64-unknown-linux-musl из релиза, если он там опубликован.
Сверьте SHA-256, скопируйте бинарь на роутер и выполните:
chmod 755 /usr/bin/tglock-cli
/usr/bin/tglock-cli --version
mkdir -p /etc/tglock
chmod 700 /etc/tglock
Создайте /etc/tglock/tglock.toml:
port = 1080
lan = true
secret_file = "/etc/tglock/secret"
# worker = ["your-name.workers.dev"]
lan = true нужен для телефонов и компьютеров в домашней сети. По умолчанию
CLI слушает только loopback. Секрет создаётся при первом запуске и сохраняется
в указанном файле; он не должен теряться при перезагрузке или обновлении.
chmod 600 /etc/tglock/tglock.toml
/usr/bin/tglock-cli --config /etc/tglock/tglock.toml
В Telegram выберите MTProto и используйте LAN-адрес роутера, порт 1080 и
секрет из напечатанной ссылки. 127.0.0.1 на телефоне означает сам телефон.
Разрешайте входящий TCP 1080 только из доверенной LAN; не публикуйте порт
в WAN. Звонки через UDP эта сборка не реализует.
Сервис procd
После проверки ручного запуска сохраните /etc/init.d/tglock:
#!/bin/sh /etc/rc.common
START=95
STOP=10
USE_PROCD=1
start_service() {
procd_open_instance
procd_set_param command /usr/bin/tglock-cli --config /etc/tglock/tglock.toml
procd_set_param respawn 3600 5 5
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}
chmod 755 /etc/init.d/tglock
/etc/init.d/tglock enable
/etc/init.d/tglock start
logread -e tglock
Обновление: остановите сервис, замените бинарь после проверки контрольной суммы,
сохраните /etc/tglock, запустите сервис снова. Для отмены автозапуска используйте
/etc/init.d/tglock stop и /etc/init.d/tglock disable.
TLS и маршруты
Встроенный набор доверенных корневых сертификатов webpki обновляется вместе с бинарём. Проверка сертификата и имени включена: при подключении к закреплённому IP имя Telegram по-прежнему используется для SNI и проверки сертификата. На роутере должно быть установлено правильное время.
Если все Telegram IP недоступны, нужен доступный маршрут через собственный Cloudflare Worker. Статическая сборка сама по себе не устраняет блокировку всех внешних маршрутов.