Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
terminalphone — Зашифрованная голосовая связь (нажми и говори) и текстовая коммуникация через скрытые сервисы Tor со сквозным шифрованием, настраиваемыми шифрами, релейным режимом для групповых вызовов и анти-криминалистическим уничтожением данных. | Kitploit
Инструменты/GitLabGitLab/here_forawhile/terminalphone
OSINT (Разведка открытых источников)Инструменты шифрования/дешифрованияСетевая безопасностьКонфиденциальностьКомандование и УправлениеRed Teaming
GitLabhere_forawhile/terminalphone

terminalphone

Зашифрованная голосовая связь (нажми и говори) и текстовая коммуникация через скрытые сервисы Tor со сквозным шифрованием, настраиваемыми шифрами, релейным режимом для групповых вызовов и анти-криминалистическим уничтожением данных.

Репозиторий
268372 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

TerminalPhone

Шифрованная голосовая связь в режиме PTT через скрытые сервисы Tor.

TerminalPhone — это один автономный Bash-скрипт, который обеспечивает анонимную, сквозную шифрованную голосовую и текстовую связь между двумя или более сторонами через сеть Tor. Он работает как рация: вы записываете голосовое сообщение, и оно сжимается, шифруется и передаётся удалённой стороне как единый блок. Вы также можете отправлять зашифрованные текстовые сообщения во время вызова. Никакой серверной инфраструктуры, никаких аккаунтов, никаких номеров телефонов. Ваш адрес .onion скрытого сервиса Tor — это ваша личность.


Содержание

  • Features
  • Installation
    • Linux
    • macOS
    • Termux (Android)
  • Quick Start
  • Usage
    • Menu Options
    • In-Call Controls
    • CLI Mode
  • How It Works
  • Security Model
  • Configuration
  • Troubleshooting
  • License

Возможности

  • Голосовые сообщения в режиме рации — Полная запись голосового сообщения с последующей передачей после отпускания кнопки. Никакого потокового вещания, никаких обрезаний.
  • Шифрованный чат во время вызова — Отправка и получение зашифрованных текстовых сообщений во время вызова. Нажмите T для ввода сообщения.
  • Идентификация вызывающего — Обе стороны автоматически обмениваются адресами .onion при подключении. Удалённый адрес отображается в заголовке вызова.
  • Автоматическое обнаружение завершения вызова — Когда одна сторона завершает вызов, другая немедленно получает уведомление, и вызов завершается автоматически.
  • Настраиваемый шифр — Выбор из 21 отобранных шифров, ранжированных по стойкости (256 бит → 128 бит). Включает семейства AES, ChaCha20, Camellia и ARIA. Слабые шифры (DES, RC4, режимы ECB) исключены.
  • Живое согласование шифра — Обе стороны обмениваются информацией о шифре при подключении. Заголовок вызова показывает как локальный, так и удалённый шифры с зелёными (совпадение) или красными (несовпадение) индикаторами, которые обновляются в реальном времени.
  • Настройки во время вызова — Нажмите S во время вызова для доступа к настройкам. Измените свой шифр на лету; отображение у удалённой стороны обновится автоматически.
  • Информация о мосте Snowflake — При использовании Snowflake для обхода цензуры страница вызова отображает имя дескриптора моста, отпечаток и статус транспортного подключения, полученные из журналов Tor.
  • Автоматическое прослушивание — При включении фоновый слушатель запускается автоматически при загрузке Tor. Входящие вызовы обнаруживаются и принимаются из главного меню без необходимости вручную выбирать «Прослушивать вызовы». После завершения вызова слушатель перезапускается.
  • Настраиваемая клавиша PTT — Изменение клавиши PTT с пробела по умолчанию на любую другую через меню настроек.
  • Статистика сообщений — Экран вызова отображает размер зашифрованной полезной нагрузки для отправленных и полученных сообщений с обновлением на месте.
  • Статус PTT удалённой стороны — Экран вызова показывает статический индикатор состояния удалённой стороны: «Ожидание» (зелёный) или «● Запись» (красный). Сбрасывается немедленно при поступлении аудиоданных, до начала воспроизведения.
  • Звуковой сигнал PTT — Необязательный звуковой сигнал, когда удалённая сторона начинает запись. Пять встроенных предустановок (тон, двойной, чириканье, динь, щелчок), созданных с помощью sox, плюс возможность записать собственный двухсекундный сигнал. Настраивается через меню настроек.
  • Анимация соединения — При вызове удалённого адреса воспроизводится цикличная анимация до загрузки интерфейса вызова.
  • Изменение голоса — Наложение голосовых эффектов на исходящее аудио. Включает 6 предустановок (низкий, высокий, робот, эхо, шёпот) и полностью настраиваемый режим с изменением высоты тона, перегрузкой, фланжером, эхом, фильтром верхних частот и тремоло. Эффекты обрабатываются с помощью sox перед кодированием Opus.
  • PTT через громкость (Termux) — Экспериментальный режим, позволяющий дважды нажать кнопку уменьшения громкости для переключения записи, даже если Termux работает в фоне. Требуется jq (устанавливается по запросу). Громкость автоматически восстанавливается после каждого нажатия.
  • Скрытый сервис Tor — Каждый экземпляр запускает собственный скрытый сервис Tor. Ваш адрес .onion служит постоянной маршрутизируемой конечной точкой. Не требуется перенаправления портов или публичного IP.
  • Сквозное шифрование — Весь аудио- и текстовый трафик шифруется с помощью настраиваемого шифра (по умолчанию: AES-256-CBC) с выводом ключа PBKDF2 из предварительно согласованного секрета перед входом в сеть Tor.
  • Секрет, защищённый паролем — Общий секрет может быть зашифрован при хранении с помощью пользовательского пароля (AES-256-CBC, 100000 итераций PBKDF2). Существующие открытые секреты автоматически обнаруживаются с предложением миграции.
  • Низкая пропускная способность — Кодек Opus при 16 кбит/с, 8 кГц моно. Типичное голосовое сообщение длительностью 10 секунд занимает менее 20 КБ, что легко укладывается в ёмкость Tor.
  • Обмен QR-кодом — Пункт 3 может отображать ваш адрес .onion в виде сканируемого QR-кода в терминале. Если qrencode не установлен, появится запрос на установку. QR-код отображается на альтернативном экранном буфере и уничтожается при закрытии. Предупреждение: некоторые QR-сканеры автоматически добавляют префикс http://; этот префикс автоматически удаляется при наборе.
  • Непрозрачные временные файлы — Все временные файлы используют расширения .tmp и случайные шестнадцатеричные идентификаторы. Никакие метаданные о типе файла или времени не раскрываются файловой системе.
  • Отображение цепочки переходов — Опциональное отображение пути вашей цепочки Tor во время вызовов с указанием имён реле и полных названий стран. Автообновление каждые 60 секунд. Настраивается через Настройки → Настройки Tor.
  • Исключение стран — Исключение определённых стран из ваших цепочек Tor. Предустановки для альянсов «Пять глаз», «Девять глаз» и «Четырнадцать глаз», а также возможность ввести собственные коды стран. Использует ExcludeNodes с StrictNodes в torrc.
  • Аутентификация протокола HMAC — Опциональное подписание всех сообщений протокола (голос, текст, управляющие сигналы) с помощью HMAC-SHA256, использующего общий секрет. Каждое сообщение включает случайный одноразовый номер, а увиденные одноразовые номера отслеживаются для отклонения повторов. Неподписанные, поддельные или повторяющиеся сообщения молча отбрасываются. Состояние HMAC фиксируется в начале вызова, чтобы предотвратить рассинхронизацию во время вызова. Настраивается через Настройки → Безопасность.
  • Затирание перед удалением — Опциональный переключатель в Настройках → Безопасность, который затирает каждый временный файл случайными данными из /dev/urandom перед удалением. Размер файла считывается, соответствующее количество байт случайных данных записывается поверх файла с помощью dd и conv=notrunc, запись сбрасывается на устройство хранения с помощью sync, а затем файл удаляется командой rm. Охватывает все критически важные файлы времени выполнения: сырые PCM-записи, аудио в кодировке Opus, зашифрованные полезные нагрузки, расшифрованные входящие аудио и чат, промежуточные данные эффектов голоса, ключевые материалы шифра и HMAC, журналы одноразовых номеров, флаги сессии, PID-файлы, именованные каналы, ключи скрытых сервисов Tor при ротации и данные сессии реле. Для каталогов все файлы внутри затираются рекурсивно. Встроенная тестовая опция создаёт образец файла, показывает исходное содержимое в открытом виде и в шестнадцатеричном формате, затирает его и отображает затирание в шестнадцатеричном формате, чтобы пользователь мог визуально убедиться, что данные уничтожены. Выключено по умолчанию — для большинства пользователей стандартная rm вполне подходит. Временные файлы TerminalPhone малы и недолговечны, и дисковое пространство обычно быстро переиспользуется нормальной активностью системы. Эта функция предназначена для пользователей, желающих дополнительный уровень защиты от восстановления криминалистическими методами. Примечание: на SSD и флеш-накопителях из-за выравнивания износа затирание может попасть на другие физические ячейки NAND — полнодисковое шифрование является единственной надёжной защитой на флеш-носителях. На традиционных HDD затирание заменяет данные в том же физическом месте и эффективно против всех программных методов восстановления.
  • Режим ретранслятора (групповой мост) — Запуск ретранслятора с нулевым знанием, который соединяет N анонимных вызывающих. Ретранслятор пересылает зашифрованное аудио и чат без расшифровки, не требует общего секрета или аудиооборудования. Клиенты автоматически обнаруживают режим ретранслятора через рукопожатие RELAY:1 и отображают в реальном времени количество участников группы. Уход одного вызывающего не отключает остальных. Панель оператора показывает количество вызывающих, время работы и пропускную способность.
  • Режим Tor с одним прыжком — Опциональный режим с пониженной задержкой для операторов ретрансляторов. Использует 1 прыжок Tor вместо 3 для скрытого сервиса, жертвуя анонимностью сервера ради меньшей задержки. Идеально для операторов ретрансляторов, которым не нужно скрывать свой собственный IP.
  • Настройка портов — Настройка порта прослушивания и SOCKS-порта вместе через Настройки → Настройки Tor. Позволяет запускать несколько экземпляров на одном устройстве с отдельными процессами Tor. В первую очередь полезно для операторов ретрансляторов, которые также хотят присоединиться к собственному групповому вызову — запустите ретранслятор на одном экземпляре, измените SOCKS-порт на втором экземпляре и совершите вызов как вызывающий.
  • Кроссплатформенность — Работает на стандартных дистрибутивах Linux, macOS и Android через Termux. Платформозависимые аудиобэкенды обрабатываются прозрачно.
  • Не требует прав root — Ввод PTT использует сырой режим терминала. Никаких специальных разрешений или модулей ядра не требуется.
  • Один скрипт — Один Bash-файл. Никакой системы сборки, среды выполнения или фреймворков.

Установка

Linux

Поддерживаемые дистрибутивы: Debian/Ubuntu (apt), Fedora/RHEL (dnf), Arch (pacman).``` bash

git clone https://gitlab.com/here_forawhile/terminalphone.git cd terminalphone bash terminalphone.sh

root@kitploit:~
Выберите опцию **7** в меню для автоматической установки всех зависимостей. Будут установлены следующие пакеты:

| Пакет | Назначение |
|---|---|
| `tor` | Луковая маршрутизация и скрытый сервис |
| `opus-tools` | Сжатие голоса (кодек Opus) |
| `sox` | Утилиты обработки аудио |
| `socat` | Двунаправленный TCP-ретранслятор через SOCKS-прокси Tor |
| `openssl` | Шифрование и дешифрование AES-256-CBC |
| `alsa-utils` | Запись и воспроизведение аудио (`arecord`, `aplay`) |

### macOS``` bash

git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh

Выберите опцию 7, чтобы автоматически установить все зависимости. Если Homebrew не установлен, скрипт сначала установит его, а затем установит следующие пакеты:

Примечание: В macOS sox используется как для записи (rec), так и для воспроизведения (play) вместо ALSA. Дополнительные аудиопакеты не требуются.

Apple Silicon (M1/M2/M3+): Если ваш терминал работает под Rosetta 2 (процесс x86_64), а Homebrew установлен в нативный префикс ARM (/opt/homebrew), brew install обычно завершается ошибкой Cannot install under Rosetta 2 in ARM default prefix. Установщик зависимостей теперь обнаруживает это и автоматически запускает Homebrew через arch -arm64, поэтому опция 7 работает независимо от того, как был запущен скрипт.

Termux (Android)

TerminalPhone поддерживает устройства Android через Termux. Из-за песочной архитектуры аудио в Android требуются два дополнительных компонента.

Шаг 1: Установите Termux

Установите Termux из F-Droid. Не используйте версию из Play Store, так как она устарела и больше не получает обновлений.

Шаг 2: Установите приложение Termux:API

Установите Termux:API из F-Droid. Это отдельное приложение Android (не пакет Termux), которое обеспечивает мост между Termux и системными API Android. TerminalPhone требует его для доступа к микрофону устройства и воспроизведению медиа.

Без установленного приложения Termux:API на устройстве команды termux-microphone-record и termux-media-player не будут работать, а запись и воспроизведение аудио будут завершаться без сообщения об ошибке.

После установки приложения Termux:API предоставьте ему разрешения на доступ к микрофону при появлении запроса.

Шаг 3: Установите пакет Termux:API внутри Termux```bash pkg install termux-api

root@kitploit:~
Это устанавливает утилиты командной строки, которые взаимодействуют с приложением Termux:API.

**Step 4: Run TerminalPhone**```bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh

Выберите опцию 7 для установки всех оставшихся зависимостей. Установщик сначала выполнит pkg upgrade для устранения возможных проблем с привязкой пакетов, а затем установит tor, opus-tools, sox, socat, openssl-tool, ffmpeg и termux-api.

Зависимости, специфичные для Termux:

ПакетНазначение
termux-apiМост CLI к микрофону и медиаплееру Android
ffmpegПреобразует записи M4A Android в сырой PCM для кодирования Opus

Быстрый старт```

  1. Run: bash terminalphone.sh
  2. Install deps: Select option 7
  3. Start Tor: Select option 8 (wait for 100% bootstrap)
  4. Set shared secret: Select option 4 (both parties must use the same secret)
  5. Share your .onion address with the other party (option 3)

To receive a call: Select option 1 (Listen for calls) To make a call: Select option 2 (Call an onion address)

root@kitploit:~
Обе стороны должны иметь запущенный Tor и настроенный один и тот же общий секрет перед началом вызова.

---

## Использование

### Параметры меню```
 1  Listen for calls          Wait for an incoming connection
 2  Call an onion address     Connect to a remote .onion endpoint
 3  Show my onion address     Display your .onion address (with optional QR code)
 4  Set shared secret         Configure the pre-shared encryption key
 5  Test audio (loopback)     Record and play back audio locally
 6  Show status               Display Tor, secret, and connection status
 7  Install dependencies      Install all required packages
 8  Start Tor                 Start the Tor process and hidden service
 9  Stop Tor                  Stop the Tor process
10  Restart Tor               Stop and restart Tor
11  Rotate onion address      Generate a new .onion address (destroys the old one)
12  Settings                  Configure Opus quality, PTT chime, Snowflake, auto-listen, PTT key, voice changer, security, Tor settings
13  Relay mode                Start a zero-knowledge group bridge for N callers
 0  Quit                      Stop Tor and exit

Элементы управления во время звонка

Linux (режим «удержание для разговора»):

КлавишаДействие
Удерживайте ПРОБЕЛЗапись голосового сообщения. Отправляется автоматически при отпускании.
TОтправить зашифрованное текстовое сообщение.
SОткрыть настройки во время звонка (сменить шифр, настроить качество).
QЗавершить звонок и вернуться в меню.

Termux (режим переключения):

Программная клавиатура Android отправляет события клавиш при отпускании, а не при нажатии. TerminalPhone адаптируется, используя режим переключения в Termux.

КлавишаДействие
Нажмите ПРОБЕЛНачать запись. Нажмите снова, чтобы остановить и отправить.

Режим CLI```bash

bash terminalphone.sh install # Install dependencies bash terminalphone.sh test # Audio loopback test bash terminalphone.sh status # Show status bash terminalphone.sh listen # Listen for incoming calls bash terminalphone.sh call ADDRESS # Call a .onion address bash terminalphone.sh relay # Start relay mode (group bridge)

root@kitploit:~
## Как это работает

TerminalPhone использует модель «запись-затем-отправка». Когда вы активируете PTT, микрофон непрерывно записывает, пока вы не отпустите кнопку. Затем полная запись обрабатывается через следующий конвейер:```
SENDER                                          RECEIVER
──────                                          ────────
Microphone                                      Speaker
    │                                               ▲
    ▼                                               │
Raw PCM (8kHz, 16-bit, mono)                    Opus decode
    │                                               ▲
    ▼                                               │
Opus encode (16kbps)                            AES-256-CBC decrypt
    │                                               ▲
    ▼                                               │
AES-256-CBC encrypt                             Base64 decode
    │                                               ▲
    ▼                                               │
Base64 encode ──▶ socat ──▶ Tor ──▶ socat ──▶ Receive

Протокол передачи основан на текстовых строках через TCP-соединение:

В Termux дополнительный этап преобразования обрабатывает собственный формат записи M4A в Android, используя ffmpeg для преобразования в сырой PCM перед кодированием Opus.


Модель безопасности

Шифрование: Всё аудио шифруется с помощью настраиваемого пользователем шифра (по умолчанию: AES-256-CBC) перед передачей. Доступен 21 тщательно отобранный шифр, от самых сильных (256-битных) до адекватных (128-битных). Ключ выводится из предварительно согласованного секрета с использованием PBKDF2 с 10 000 итераций. Шифрование применяется на уровне приложения, независимо от транспортного шифрования Tor. Секреты передаются OpenSSL через файловые дескрипторы (-pass fd:3), а не через аргументы командной строки, поэтому они никогда не отображаются в таблице процессов.

Согласование шифра: Обе стороны обмениваются названиями шифров при подключении и при смене шифра во время вызова. Названия шифров не являются секретными (принцип Керкгоффса). Если локальный и удалённый шифры не совпадают, обе стороны видят красные индикаторы в заголовке вызова.

Транспорт: Все данные маршрутизируются через цепи скрытых сервисов Tor. IP-адрес ни одной из сторон не раскрывается. Трафик в открытой сети отсутствует. Сетевой наблюдатель не может установить связь между участниками соединения.

Устойчивость к анализу трафика: Модель «запись-затем-отправка» создаёт нерегулярные паттерны передачи (сообщения переменной длины через нерегулярные интервалы), которые сложнее профилировать, чем непрерывная потоковая передача.

Аутентификация: Общий секрет служит неявной аутентификацией. Если у обеих сторон нет одного и того же секрета, расшифровка не удаётся, и аудио не воспроизводится. При подключении обе стороны обмениваются .onion-адресами для идентификации звонящего. Секрет может быть опционально зашифрован в состоянии покоя с помощью парольной фразы; при запуске скрипт запрашивает парольную фразу для его разблокировки.

Подпись протокола HMAC (опционально): При включении каждое сообщение протокола передачи — включая управляющие сигналы, такие как HANGUP, PTT_START и PING — подписывается с помощью HMAC-SHA256, полученного из общего секрета. В каждое сообщение включается случайный одноразовый номер, так что идентичные команды создают уникальные подписи. Использованные одноразовые номера отслеживаются в рамках вызова, а дубликаты отклоняются, предотвращая атаки повторного воспроизведения. Настройка HMAC фиксируется при запуске вызова через файл времени выполнения, так что пути отправки и получения всегда согласованы, даже если настройка переключается во время вызова (изменения вступают в силу при следующем вызове). На принимающей стороне любое сообщение с недействительной, отсутствующей или повторной подписью молча отбрасывается. Это предотвращает внедрение или повторение команд атакующим, который скомпрометировал цепь Tor (но не имеет общего секрета). Обе стороны должны включить HMAC для работы вызовов. Несовместимо с версиями до 1.1.3.

Ограничения:

  • Общий секрет должен быть передан внешним способом через защищённый канал (лично, через зашифрованную переписку и т.д.).
  • Отсутствует прямая секретность. Если общий секрет будет скомпрометирован, все прошлые и будущие сообщения с использованием этого же секрета могут быть расшифрованы.
  • Протокол не защищает от скомпрометированной конечной точки. Если любое устройство скомпрометировано, атакующий получает доступ к аудио в открытом виде.

Безопасность режима ретранслятора: Ретранслятор архитектурно является «нулевого знания». Он никогда не владеет общим секретом и не может расшифровать никакой контент. Аудиоданные проходят через буферы каналов ядра (FIFO), которые существуют только в памяти — ничего не записывается на диск. Когда ретранслятор останавливается, все временные файлы удаляются. Оператор ретранслятора не может определить, что было сказано, кто звонил или прочитать какие-либо сообщения. Ретранслятор фильтрует все управляющие сигналы (HANGUP, ID:, CIPHER:, PTT_START, PTT_STOP) и пересылает только AUDIO:, MSG: и PING. Глобальный пассивный противник может провести корреляционный анализ трафика для связывания звонящих с ретранслятором, но содержание сообщений остаётся непрозрачным.

Производительность ретранслятора: Основным узким местом является пропускная способность Tor. Пропускная способность скрытых сервисов Tor сильно варьируется и зависит от качества цепи, загруженности ретрансляторов и географического расстояния. Типичное голосовое сообщение длительностью 10 секунд составляет ~20 КБ в зашифрованном виде, и каждая передача рассылается N-1 слушателям.

Реалистичная ёмкость — 3–5 звонящих для ретранслятора, работающего на телефоне (Termux), или 5–10 звонящих на выделенной машине под Linux со стабильным подключением. Ретрансляторы, работающие на мобильных устройствах, сталкиваются с дополнительными ограничениями: мобильные данные добавляют задержку поверх Tor, Android может завершить фоновые процессы Termux для освобождения памяти, а расход батареи увеличивается с каждым подключённым звонящим. Пропускная способность цепей Tor может варьироваться от 50 КБ/с до 500 КБ/с в зависимости от качества пути, и цепи могут деградировать или переключаться во время сеанса. Режим с одним перескоком улучшает пропускную способность, но не устраняет загруженность ретрансляторов Tor. Эти оценки предполагают модель PTT, где только один человек передаёт одновременно — одновременные передачи ухудшили бы производительность ещё сильнее. Звонящим в групповом вызове следует рассмотреть снижение битрейта Opus (Настройки → Кодирование Opus), чтобы уменьшить размер сообщений и снизить нагрузку на ретранслятор.


Конфигурация

Вся конфигурация хранится в .terminalphone/ относительно расположения скрипта:``` .terminalphone/ tor_data/ Tor data directory and hidden service keys audio/ Temporary audio files (cleaned on exit) pids/ Process ID tracking shared_secret Encrypted shared secret file torrc Generated Tor configuration

root@kitploit:~
Параметры звука по умолчанию (определены в начале скрипта):

| Параметр | Значение по умолчанию | Описание |
|---|---|---|
| `LISTEN_PORT` | 7777 | TCP-порт для входящих соединений |
| `TOR_SOCKS_PORT` | 9050 | Порт SOCKS-прокси Tor |
| `OPUS_BITRATE` | 16 | Битрейт кодирования Opus в кбит/с |
| `CIPHER` | aes-256-cbc | Шифр шифрования (настраивается через Settings) |
| `SNOWFLAKE_ENABLED` | 0 | Мост Snowflake для обхода цензуры |
| `AUTO_LISTEN` | 0 | Автоматический приём вызовов при запуске Tor |
| `PTT_KEY` | SPACE | Клавиша PTT (настраивается через Settings) |
| `VOL_PTT` | 0 | Двойное нажатие на громкость для PTT, только Termux (экспериментально) |
| `EXCLUDE_NODES` | (пусто) | Список стран для ExcludeNodes Tor (например `{US},{GB}`) |
| `HMAC_AUTH` | 0 | Подписывать все сообщения протокола HMAC (опционально, обе стороны должны совпадать) |
| `OVERWRITE_DELETE` | 0 | Перезаписывать временные файлы случайными данными перед удалением (по умолчанию выкл) |
| `PTT_CHIME` | выкл | Набор уведомлений PTT (выкл, tone, double, chirp, ding, click, custom) |
| `SINGLE_HOP` | 0 | Одношаговый режим Tor для меньшей задержки (отключает анонимность сервера) |
| `SAMPLE_RATE` | 8000 | Частота дискретизации звука в Гц |
| `CHUNK_DURATION` | 1 | Длительность тестовых аудиофрагментов в секундах |

---

## Устранение неполадок

**Tor не удаётся выполнить начальную загрузку:**
Проверьте журнал Tor по пути `.terminalphone/tor_data/tor.log`. Частые причины: рассинхронизация часов, сетевые ограничения, блокирующие Tor, или другой экземпляр Tor, использующий тот же SOCKS-порт.

**Нет звука на Termux:**
Убедитесь, что приложение Termux:API установлено из F-Droid (не только пакет `termux-api`). Предоставьте разрешения на доступ к микрофону приложению Termux:API в настройках Android. Запустите тест звуковой петли (пункт 5) для проверки.

**Установка ffmpeg на Termux завершается ошибкой:**
Выполните `pkg upgrade` перед установкой зависимостей. Установщик делает это автоматически, но если вы устанавливали пакеты вручную, устаревшие общие библиотеки могут вызывать ошибки линковки.

**Звуковой тест работает, но во время звонков тишина:**
Убедитесь, что обе стороны используют один и тот же общий секрет. Несовпадающие секреты приведут к неудаче расшифровки без сообщения об ошибке — звонок устанавливается, но звука не слышно.

**Мост Snowflake медленно подключается:**
Snowflake направляет трафик через WebRTC-прокси, что добавляет дополнительное время начальной загрузки. Это нормально, когда Tor достигает 100% за 30–60 секунд (или дольше) при включённом Snowflake. Скрипт выведет уведомление о терпении во время загрузки.

**Первая загрузка Tor медленная:**
При первом запуске Tor должен загрузить полный сетевой консенсус с нуля, что может занять минуту или две. Скрипт определяет это и выводит уведомление. Тайм-аут загрузки автоматически увеличивается с 120 до 300 секунд при первом запуске. Последующие запуски используют кэшированные данные консенсуса и выполняются намного быстрее.

**Завершение вызова не возвращает в меню:**
Если скрипт зависает после нажатия Q, нажмите Ctrl+C для принудительной очистки и возврата в оболочку.

**`Cannot install under Rosetta 2 in ARM default prefix` на macOS:**
Это происходит на Apple Silicon, когда терминал работает под Rosetta 2 (процесс `x86_64`), но Homebrew находится в нативном ARM-префиксе (`/opt/homebrew`). Установщик зависимостей (пункт **7**) теперь обнаруживает это и автоматически запускает `brew` с `arch -arm64`. Если вы устанавливаете пакеты вручную, указывайте префикс самостоятельно: `arch -arm64 brew install <pkg>`. Альтернативно, запустите скрипт в нативном режиме с помощью `arch -arm64 bash terminalphone.sh`.

---

[ЗЕРКАЛО V1.0.0](https://bin.disroot.org/?e1356291b098cb75#FMQ4gxFwgdr3rjR1dpGS2csLmDPzDEkQW16fQ5P2Vt4y)

[ЗЕРКАЛО V1.0.1](https://bin.disroot.org/?d3bc0b8976113f58#AuUm4ev4vfeVmPyrh2KjAdhDP6WN4UX6yKQh9ERGD5Qt)

[ЗЕРКАЛО V1.0.2](https://bin.disroot.org/?6bc5b2fd046de1d7#G7TmnytrMeaM5AZYWth6BjjdqUb9RDf3K9erHUExKcGX)

[ЗЕРКАЛО V1.0.3](https://bin.disroot.org/?c5010f039e4693fd#Brp1w7LRQH9d5Ye5npZDPxNVR855SW9QUAk9cJaUuLYX)

[ЗЕРКАЛО V1.0.4](https://bin.disroot.org/?1831f6b78e349142#7zaAMVPNJL3MfbGJzjtm6cCPcvQftf4ULXupdne5dRKw)

[ЗЕРКАЛО V1.0.5](https://bin.disroot.org/?edfcfc844987ed03#56LuBbqbkfNDXfHpydyaB3VcWYhYenX18dtSvNumERY9)

[ЗЕРКАЛО V1.0.6](https://bin.disroot.org/?6c7b4774108b0c1c#GQPst46zjAYidndmNvytforX7MK2LyHanL4d829vVcv4)

[ЗЕРКАЛО V1.0.7](https://bin.disroot.org/?047003637623b4fa#EwmaysciDpiDkht8xV7ce3QcR9oxFXaxSikh4cLheXBB)

[ЗЕРКАЛО V1.0.8](https://bin.disroot.org/?06e38bd64e6fbdad#88MYs3dmq9rSMkmocpW3NYaaG4YfSdRCc9LJnEEzqGYp)

[ЗЕРКАЛО V1.0.9](https://bin.disroot.org/?950218a9a7c71c66#E7Z94VCGBZozrfXYhGwKyAdMeTxuavg92tA1pn2DbrrB)

[ЗЕРКАЛО V1.1.0](https://bin.disroot.org/?0b0da14f31521b3a#B1c23J8xFoZZKErvGG28PgbtfgtMUcDABWmQEoSZfXgh)

[ЗЕРКАЛО V1.1.1](https://bin.disroot.org/?d8e2d4f0300eb5af#9Y1C8CkcH9jAmv1fh4GZs1yYpJmWCG5xG3SvDYdwnJam)

[ЗЕРКАЛО V1.1.2](https://bin.disroot.org/?b1059616f880925f#8ef2oscZXUkPAsJZwGfWvLPQagVAk5GgW4DyssmLvQpG)

[ЗЕРКАЛО V1.1.3](https://bin.disroot.org/?b02658801518aaa7#JE6CsBLWUwAnTdBqeHgeXL7QF5UExgi9rnygcfyMZjCJ)

[ЗЕРКАЛО V1.1.4](https://bin.disroot.org/?d31248fc44c287a0#HQELFWFEMpM9kfTZSGDXTdGFMVKTejox5CajF9Vm4Www)

[ЗЕРКАЛО V1.1.5](https://bin.disroot.org/?284b723ed6aad15f#8VCrrri6yRpdg3uVDSY94wpx7LYkw5uYhm4Vbhka83sM)

[ЗЕРКАЛО V1.1.5.1](https://bin.disroot.org/?26aaef1eff20c271#4GxQQPSDhrszTu1RmERySNVqD2fZW5GZwm3JeL1parpB)

[ЗЕРКАЛО V1.1.6](https://bin.disroot.org/?ae8270578cd9e081#BbcDLU49XqhecvwviHRcdfrZ4vhKdL2AMeKaT5v9oLV1)

[ЗЕРКАЛО V1.1.7](https://bin.disroot.org/?457e4308abe582d8#B9LJG88rmUwrGHHuCof8WpE8CXGmkc2tyrXXicEiJFWk)

---

## Лицензия

MIT
Скачать инструмент
ПакетНазначение
torМаршрутизация через Tor и скрытый сервис
opus-toolsСжатие голоса (кодек Opus)
soxЗапись и воспроизведение аудио (rec, play)
socatДвунаправленный TCP-ретранслятор через SOCKS-прокси Tor
opensslШифрование и дешифрование AES-256-CBC
TОтправить зашифрованное текстовое сообщение.
SОткрыть настройки во время звонка (сменить шифр, настроить качество).
QЗавершить звонок и вернуться в меню.
Громкость вниз ×2Переключение записи с помощью кнопки громкости (требуется включить «Volume PTT» в настройках).
СообщениеОписание
ID:<onion>Идентификатор звонящего — .onion-адрес отправителя
CIPHER:<name>Шифр шифрования отправителя. Передаётся при подключении и при смене.
PTT_STARTОтправитель начал запись
PTT_STOPОтправитель закончил; аудио следует или уже отправлено
AUDIO:<base64>Полное зашифрованное аудиосообщение
MSG:<base64>Зашифрованное текстовое сообщение
HANGUPОтправитель отключается
PINGСигнал поддержания соединения
RELAY:1Приветствие ретранслятора — отправляется ретранслятором при подключении, активирует групповой режим
GROUP:<n>Обновление размера группы — распространяется ретранслятором при присоединении или выходе звонящих
ЗвонящиеИсходящий трафик на сообщениеОжидаемый опыт
2–320–40 КБНадёжно на большинстве соединений
3–540–80 КБХорошо на стабильных цепях, возможны задержки на мобильных данных
5–1080–180 КБНа пределе, заметные задержки между передачами
10+180 КБ+Ненадёжно, значительное накопление и возможная потеря сообщений