Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
terminalphone — Comunicação de voz por push-to-talk e texto criptografada através de serviços ocultos Tor com criptografia de ponta a ponta, cifras configuráveis, modo de retransmissão para chamadas em grupo e destruição de dados antiforense. | Kitploit
Ferramentas/GitLabGitLab/here_forawhile/terminalphone
OSINT (Inteligência de Fontes Abertas)Ferramentas de Criptografia/DescriptografiaSegurança de RedePrivacidadeComando e ControleRed Teaming
GitLabhere_forawhile/terminalphone

terminalphone

Comunicação de voz por push-to-talk e texto criptografada através de serviços ocultos Tor com criptografia de ponta a ponta, cifras configuráveis, modo de retransmissão para chamadas em grupo e destruição de dados antiforense.

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
2683763há 1 mêsRevisado pelo Kitploit
# TerminalPhone

Comunicação de voz push-to-talk criptografada através de serviços ocultos Tor.

TerminalPhone é um único script Bash autocontido que fornece comunicação de voz e texto anônima e criptografada de ponta a ponta entre duas ou mais partes através da rede Tor. Funciona como um walkie-talkie: você grava uma mensagem de voz, e ela é comprimida, criptografada e transmitida à parte remota como uma única unidade. Você também pode enviar mensagens de texto criptografadas durante uma chamada. Sem infraestrutura de servidor, sem contas, sem números de telefone. Seu endereço `.onion` do serviço oculto Tor é sua identidade.

---

## Índice

- [Recursos](#recursos)
- [Instalação](#instalação)
  - [Linux](#linux)
  - [macOS](#macos)
  - [Termux (Android)](#termux-android)
- [Início Rápido](#início-rápido)
- [Uso](#uso)
  - [Opções do Menu](#opções-do-menu)
  - [Controles Durante a Chamada](#controles-durante-a-chamada)
  - [Modo CLI](#modo-cli)
- [Como Funciona](#como-funciona)
- [Modelo de Segurança](#modelo-de-segurança)
- [Configuração](#configuração)
- [Solução de Problemas](#solução-de-problemas)
- [Licença](#licença)

---

## Recursos

- **Modo Walkie-Talkie Push-to-Talk** -- Grave uma mensagem de voz completa e transmita-a ao soltar.
- **Chat Criptografado Durante a Chamada** -- Envie e receba mensagens de texto criptografadas durante uma chamada. Pressione `T` para digitar uma mensagem.
- **Identificação de Chamada** -- Ambas as partes trocam automaticamente endereços `.onion` ao conectar. O endereço remoto é exibido no cabeçalho da chamada.
- **Detecção Automática de Desligamento** -- Quando uma parte desliga, a outra é notificada imediatamente e a chamada termina automaticamente.
- **Cifra Configurável** -- Escolha entre 21 cifras selecionadas, classificadas por força (256 bits → 128 bits). Inclui as famílias AES, ChaCha20, Camellia e ARIA. Cifras fracas (DES, RC4, modos ECB) são excluídas.
- **Negociação de Cifra em Tempo Real** -- Ambas as partes trocam informações de cifra ao conectar. O cabeçalho da chamada mostra as cifras local e remota com indicadores verde (correspondência) ou vermelho (incompatibilidade), atualizados em tempo real.
- **Configurações Durante a Chamada** -- Pressione `S` durante uma chamada para acessar as configurações. Altere sua cifra em tempo real; a exibição da parte remota é atualizada automaticamente.
- **Informações da Bridge Snowflake** -- Ao usar Snowflake para contornar censura, a página da chamada exibe o nome do descritor da bridge, a impressão digital e o status da conexão de transporte extraídos dos logs do Tor.
- **Auto-Escuta** -- Quando habilitado, um ouvinte em segundo plano inicia automaticamente quando o Tor é inicializado. Chamadas recebidas são detectadas e aceitas a partir do menu principal sem precisar selecionar manualmente "Ouvir chamadas". Após uma chamada terminar, o ouvinte reinicia.
- **Tecla PTT Configurável** -- Altere a tecla push-to-talk da barra de espaço padrão para qualquer tecla através do menu Configurações.
- **Estatísticas de Mensagens** -- A tela de chamada exibe o tamanho do payload criptografado para mensagens enviadas e recebidas, atualizado no local.
- **Status PTT Remoto** -- A tela de chamada mostra um indicador estático para o estado da parte remota: "Idle" (verde) ou "● Recording" (vermelho). Reinicia imediatamente quando dados de áudio chegam, antes do início da reprodução.
- **Chime PTT** -- Som de notificação opcional quando a parte remota começa a gravar. Cinco presets integrados (tone, double, chirp, ding, click) gerados com sox, além da capacidade de gravar um chime personalizado de 2 segundos. Configurável via Configurações.
- **Animação de Conexão** -- Ao chamar um endereço remoto, uma animação cíclica é reproduzida até que a interface de chamada carregue.
- **Modificador de Voz** -- Aplique efeitos de voz ao áudio de saída. Inclui 6 presets (deep, high, robot, echo, whisper) e um modo personalizado totalmente configurável com pitch shift, overdrive, flanger, echo, filtro highpass e tremolo. Os efeitos são processados usando sox antes da codificação Opus.
- **PTT por Volume (Termux)** -- Modo experimental que permite tocar duas vezes no botão Volume Down para alternar a gravação, mesmo quando o Termux está em segundo plano. Requer `jq` (instalado sob demanda). O volume é restaurado automaticamente após cada acionamento.
- **Serviço Oculto Tor** -- Cada instância executa seu próprio serviço oculto Tor. Seu endereço `.onion` serve como um endpoint permanente e roteável. Sem necessidade de encaminhamento de portas ou IP público.
- **Criptografia de Ponta a Ponta** -- Todo o áudio e texto é criptografado usando uma cifra configurável (padrão: AES-256-CBC) com derivação de chave PBKDF2 a partir de um segredo pré-compartilhado antes de entrar na rede Tor.
- **Segredo Protegido por Passphrase** -- O segredo compartilhado pode ser criptografado em repouso usando uma passphrase escolhida pelo usuário (AES-256-CBC, 100.000 iterações PBKDF2). Segredos em texto simples existentes são detectados automaticamente com uma oferta de migração.
- **Baixa Largura de Banda** -- Codec Opus a 16kbps, 8kHz mono. Uma mensagem de voz típica de 10 segundos tem menos de 20KB, bem dentro da capacidade do Tor.
- **Compartilhamento por QR Code** -- A opção 3 pode exibir seu endereço `.onion` como um QR code escaneável no terminal. Se `qrencode` não estiver instalado, você será solicitado a instalá-lo. O QR code é renderizado no buffer de tela alternativo e é destruído quando descartado. Uma nota avisa que alguns scanners de QR code adicionam automaticamente `http://`; este prefixo é removido automaticamente ao discar.
- **Arquivos Temporários Opacos** -- Todos os arquivos temporários usam extensões genéricas `.tmp` e identificadores hexadecimais aleatórios. Nenhum tipo de arquivo ou metadado de temporização é vazado para o sistema de arquivos.
- **Exibição de Saltos do Circuito** -- Exibição opcional do caminho do seu circuito Tor durante as chamadas, mostrando nomes de relays e nomes completos de países. Atualiza automaticamente a cada 60 segundos. Configurável via Configurações → Configurações do Tor.
- **Excluir Países** -- Exclua países específicos dos seus circuitos Tor. Presets para as alianças Five Eyes, Nine Eyes e Fourteen Eyes, ou insira códigos de país personalizados. Usa `ExcludeNodes` com `StrictNodes` no torrc.
- **Autenticação de Protocolo HMAC** -- Assinatura HMAC-SHA256 opcional de todas as mensagens de protocolo (voz, texto, sinais de controle) usando o segredo compartilhado. Um nonce aleatório é incluído por mensagem, e nonces vistos são rastreados para rejeitar repetições. Mensagens não assinadas, forjadas ou repetidas são descartadas silenciosamente. O estado HMAC é congelado no início da chamada para evitar dessincronização durante a chamada. Configurável via Configurações → Segurança.
- **Sobrescrever Antes de Excluir** -- Alternância opcional em Configurações → Segurança que sobrescreve cada arquivo temporário com dados aleatórios de `/dev/urandom` antes da exclusão. O tamanho do arquivo é lido, essa quantidade de bytes de dados aleatórios é escrita sobre o arquivo com `dd` usando `conv=notrunc`, a escrita é sincronizada com o dispositivo de armazenamento com `sync`, e então o arquivo é removido com `rm`. Cobre todos os arquivos sensíveis em tempo de execução: gravações PCM brutas, áudio codificado em Opus, payloads criptografados, áudio e chat de entrada descriptografados, intermediários de efeitos de voz, material de chave de cifra e HMAC, logs de nonce, flags de sessão, arquivos PID, named pipes, chaves de serviço oculto Tor em rotação e dados de sessão de relay. Para diretórios, todos os arquivos dentro são sobrescritos recursivamente. Uma opção de teste integrada cria um arquivo de amostra, mostra o conteúdo original em texto simples e hexadecimal, sobrescreve-o e exibe o hexadecimal sobrescrito para que o usuário possa confirmar visualmente que os dados foram destruídos. Desativado por padrão — para a maioria dos usuários, o `rm` padrão é perfeitamente adequado. Os arquivos temporários do TerminalPhone são pequenos e de curta duração, e o espaço em disco é normalmente reutilizado rapidamente pela atividade normal do sistema. Este recurso é para usuários que desejam uma camada extra de proteção contra recuperação forense. Nota: em SSDs e armazenamento flash, o wear leveling significa que a sobrescrita pode atingir células NAND físicas diferentes — a criptografia de disco completo é a única defesa confiável em mídia flash. Em HDDs tradicionais, a sobrescrita substitui os dados no mesmo local físico e é eficaz contra toda recuperação baseada em software.
- **Modo Relay (Bridge de Grupo)** -- Execute um relay zero-knowledge que faz a ponte entre N chamadores anônimos. O relay encaminha áudio e chat criptografados sem descriptografar, não requer segredo compartilhado nem hardware de áudio. Os clientes detectam automaticamente o modo relay via handshake `RELAY:1` e exibem a contagem de chamadores do grupo em tempo real. A saída de um chamador não desconecta os outros. O painel do operador mostra a contagem de chamadores, tempo de atividade e throughput de dados.
- **Modo Tor de Salto Único** -- Modo opcional de latência reduzida para operadores de relay. Usa 1 salto Tor em vez de 3 para o serviço oculto, sacrificando o anonimato do servidor por menor latência. Ideal para operadores de relay que não precisam ocultar seu próprio IP.
- **Configuração de Portas** -- Configure a porta de escuta e a porta SOCKS juntas via Configurações → Configurações do Tor. Permite executar múltiplas instâncias no mesmo dispositivo com processos Tor separados. Principalmente útil para operadores de relay que também desejam participar da própria chamada de grupo -- execute o relay em uma instância, altere a porta SOCKS em uma segunda instância e disque como chamador.
- **Multiplataforma** -- Funciona em distribuições Linux padrão, macOS e Android via Termux. Backends de áudio específicos da plataforma são tratados de forma transparente.
- **Sem Necessidade de Root** -- A entrada PTT usa o modo raw do terminal. Nenhuma permissão especial ou módulo de kernel é necessário.
- **Script Único** -- Um arquivo Bash. Sem sistema de build, sem runtime, sem framework.

---

## Instalação

### Linux

**Distribuições suportadas:** Debian/Ubuntu (apt), Fedora/RHEL (dnf), Arch (pacman).``` bash

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

```
Selecione a opção **7** no menu para instalar todas as dependências automaticamente. Os seguintes pacotes serão instalados:

| Pacote | Finalidade |
|---|---|
| `tor` | Roteamento onion e serviço oculto |
| `opus-tools` | Compressão de voz (codec Opus) |
| `sox` | Utilitários de processamento de áudio |
| `socat` | Relay TCP bidirecional através do proxy SOCKS do Tor |
| `openssl` | Criptografia e descriptografia AES-256-CBC |
| `alsa-utils` | Gravação e reprodução de áudio (`arecord`, `aplay`) |

### macOS``` bash

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

```
Selecione a opção **7** para instalar todas as dependências automaticamente. Se o [Homebrew](https://brew.sh) não estiver instalado, o script irá instalá-lo primeiro e, em seguida, instalar os seguintes pacotes:

| Pacote | Finalidade |
|---|---|
| `tor` | Roteamento onion e serviço oculto |
| `opus-tools` | Compressão de voz (codec Opus) |
| `sox` | Gravação e reprodução de áudio (`rec`, `play`) |
| `socat` | Relay TCP bidirecional através do proxy SOCKS do Tor |
| `openssl` | Criptografia e descriptografia AES-256-CBC |

**Nota:** O macOS usa `sox` tanto para gravação (`rec`) quanto para reprodução (`play`) em vez do ALSA. Nenhum pacote de áudio adicional é necessário.

**Apple Silicon (M1/M2/M3+):** Se o seu terminal estiver sendo executado sob o Rosetta 2 (um processo `x86_64`) enquanto o Homebrew está instalado no prefixo ARM nativo (`/opt/homebrew`), o `brew install` normalmente falha com `Cannot install under Rosetta 2 in ARM default prefix`. O instalador de dependências agora detecta isso e reexecuta automaticamente o Homebrew sob `arch -arm64`, então a opção **7** funciona independentemente de como o script foi iniciado.

### Termux (Android)

O TerminalPhone suporta dispositivos Android através do Termux. Devido à arquitetura de áudio em sandbox do Android, dois componentes adicionais são necessários.

**Passo 1: Instalar o Termux**

Instale o [Termux](https://f-droid.org/en/packages/com.termux/) a partir do F-Droid. Não use a versão da Play Store, pois está desatualizada e não recebe mais atualizações.

**Passo 2: Instalar o aplicativo Termux:API**

Instale o [Termux:API](https://f-droid.org/en/packages/com.termux.api/) a partir do F-Droid. Este é um aplicativo Android separado (não um pacote do Termux) que fornece uma ponte entre o Termux e as APIs do sistema Android. O TerminalPhone requer ele para acessar o microfone do dispositivo e a reprodução de mídia.

Sem o aplicativo Termux:API instalado no dispositivo, os comandos `termux-microphone-record` e `termux-media-player` não funcionarão, e a gravação e reprodução de áudio falharão silenciosamente.

Após instalar o aplicativo Termux:API, conceda a ele permissões de microfone quando solicitado.

**Passo 3: Instalar o pacote Termux:API dentro do Termux**```bash
pkg install termux-api
```
Isso instala os utilitários de linha de comando que se comunicam com o aplicativo Termux:API.

**Passo 4: Executar o TerminalPhone**```bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh
```
Selecione a opção **7** para instalar todas as dependências restantes. O instalador executará `pkg upgrade` primeiro para resolver quaisquer problemas de vinculação de pacotes, depois instalará `tor`, `opus-tools`, `sox`, `socat`, `openssl-tool`, `ffmpeg` e `termux-api`.

**Dependências específicas do Termux:**

| Pacote | Finalidade |
|---|---|
| `termux-api` | Ponte CLI para o microfone e reprodutor de mídia do Android |
| `ffmpeg` | Converte as gravações M4A do Android para PCM bruto para codificação Opus |

---

## Início Rápido```
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)
```
Ambas as partes devem ter o Tor em execução e o mesmo segredo compartilhado configurado antes de iniciar uma chamada.

---

## Uso

### Opções do Menu```
 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
```
### Controles Durante a Chamada

**Modo Full Duplex (WebSockets):**

| Tecla | Ação |
|---|---|
| M | Silenciar / Reativar microfone. |
| T | Enviar uma mensagem de texto criptografada durante a chamada. |
| Q | Desligar e retornar ao menu. |

**Modo Push-to-Talk (Linux / macOS):**

| Tecla | Ação |
|---|---|
| Segurar SPACE | Gravar mensagem de voz. Envia automaticamente ao soltar. |
| T | Enviar uma mensagem de texto criptografada. |
| S | Abrir configurações durante a chamada (alterar cifra, ajustar qualidade). |
| Q | Desligar e retornar ao menu. |

**Modo Push-to-Talk (Termux):**

O teclado virtual do Android envia eventos de tecla ao soltar, não ao pressionar. O TerminalPhone se adapta usando o modo de alternância no Termux.

| Tecla | Ação |
|---|---|
| Tocar SPACE | Iniciar gravação. Tocar novamente para parar e enviar. |
| T | Enviar uma mensagem de texto criptografada. |
| S | Abrir configurações durante a chamada (alterar cifra, ajustar qualidade). |
| Q | Desligar e retornar ao menu. |
| Vol Down ×2 | Alternar gravação pelo botão de volume (requer Volume PTT habilitado nas configurações). |

### Modo 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)
```
## Como Funciona

O TerminalPhone usa um modelo de gravar e enviar. Quando você ativa o PTT, o microfone grava continuamente até você soltar. A gravação completa é então processada através do seguinte pipeline:```
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
```
O protocolo de rede é texto baseado em linhas sobre uma conexão TCP:

| Mensagem | Descrição |
|---|---|
| `ID:<onion>` | Identificação do chamador -- endereço `.onion` do remetente |
| `CIPHER:<name>` | Cifra de criptografia do remetente. Trocada na conexão e na alteração. |
| `PTT_START` | O remetente começou a gravar |
| `PTT_STOP` | O remetente terminou; o áudio segue ou já foi enviado |
| `AUDIO:<base64>` | Mensagem de áudio criptografada completa |
| `MSG:<base64>` | Mensagem de texto criptografada |
| `HANGUP` | O remetente está se desconectando |
| `PING` | Sinal de keepalive |
| `RELAY:1` | Saudação do relay -- enviada pelo relay na conexão, ativa o modo de grupo |
| `GROUP:<n>` | Atualização do tamanho do grupo -- transmitida pelo relay quando chamadores entram ou saem |

No Termux, uma etapa adicional de conversão lida com o formato de gravação M4A nativo do Android, usando `ffmpeg` para converter para PCM bruto antes da codificação Opus.

---

## Modelo de Segurança

**Criptografia:** Todo o áudio é criptografado com uma cifra configurável pelo usuário (padrão: AES-256-CBC) antes da transmissão. 21 cifras curadas estão disponíveis, classificadas da mais forte (256 bits) à adequada (128 bits). A chave é derivada de um segredo pré-compartilhado usando PBKDF2 com 10.000 iterações. A criptografia é aplicada na camada de aplicação, independente da criptografia de transporte do Tor. Os segredos são passados ao OpenSSL via descritores de arquivo (`-pass fd:3`), não como argumentos de linha de comando, de modo que nunca são expostos na tabela de processos.

**Negociação de cifra:** Ambas as partes trocam os nomes das cifras na conexão e sempre que uma cifra é alterada durante a chamada. Os nomes das cifras não são secretos (princípio de Kerckhoffs). Se as cifras local e remota não coincidirem, ambas as partes veem indicadores vermelhos no cabeçalho da chamada.

**Transporte:** Todos os dados são roteados através de circuitos de serviço oculto Tor. O endereço IP de nenhuma das partes é exposto. Não há tráfego clearnet. A conexão não pode ser atribuída a nenhuma das partes por um observador de rede.

**Resistência à análise de tráfego:** O modelo de gravar-e-enviar produz padrões de transmissão irregulares (mensagens de comprimento variável em intervalos irregulares), que são mais difíceis de identificar do que streaming contínuo.

**Autenticação:** O segredo compartilhado serve como autenticação implícita. Se ambas as partes não tiverem o mesmo segredo, a descriptografia falha e nenhum áudio é reproduzido. Na conexão, ambas as partes trocam endereços `.onion` para identificação do chamador. O segredo pode opcionalmente ser criptografado em repouso com uma passphrase; na inicialização, o script solicita a passphrase para desbloqueá-lo.

**Assinatura do protocolo HMAC (opcional):** Quando ativada, cada mensagem do protocolo de rede -- incluindo sinais de controle como HANGUP, PTT_START e PING -- é assinada com HMAC-SHA256 derivado do segredo compartilhado. Um nonce aleatório é incluído por mensagem para que comandos idênticos produzam assinaturas únicas. Nonces vistos são rastreados por chamada e duplicatas são rejeitadas, prevenindo ataques de replay. A configuração de HMAC é congelada no início da chamada através de um arquivo de runtime para que os caminhos de envio e recebimento sempre concordem, mesmo se a configuração for alternada durante a chamada (as alterações entram em vigor na próxima chamada). No lado receptor, qualquer mensagem com assinatura inválida, ausente ou repetida é silenciosamente descartada. Isso impede que um atacante que comprometa o circuito Tor (mas não possui o segredo compartilhado) injete ou reproduza comandos. Ambas as partes devem ativar o HMAC para que as chamadas funcionem. Não compatível com versões anteriores à 1.1.3.

**Limitações:**

- O segredo compartilhado deve ser trocado fora de banda através de um canal seguro (pessoalmente, mensagens criptografadas, etc.).
- Não há sigilo direto (forward secrecy). Se o segredo compartilhado for comprometido, todas as comunicações passadas e futuras usando esse segredo podem ser descriptografadas.
- O protocolo não protege contra um endpoint comprometido. Se qualquer um dos dispositivos for comprometido, o atacante tem acesso ao áudio em texto claro.

**Segurança do modo relay:** O relay é arquiteturalmente zero-knowledge. Ele nunca possui o segredo compartilhado e não pode descriptografar nenhum conteúdo. Os dados de áudio fluem através de buffers de pipe do kernel (FIFOs) que existem apenas na memória -- nada é escrito em disco. Quando o relay para, todos os arquivos temporários são excluídos. O operador do relay não pode determinar o que foi dito, quem são os chamadores ou ler quaisquer mensagens. O relay filtra todos os sinais de controle (HANGUP, ID:, CIPHER:, PTT_START, PTT_STOP) e encaminha apenas AUDIO:, MSG: e PING. Um adversário passivo global poderia realizar análise de correlação de tráfego para associar chamadores ao relay, mas o conteúdo das mensagens permanece opaco.

**Capacidade do relay:** O principal gargalo é a largura de banda do Tor. A taxa de transferência do serviço oculto Tor é altamente variável e depende da qualidade do circuito, congestionamento do relay e distância geográfica. Uma mensagem de voz típica de 10 segundos tem ~20KB criptografados, e cada transmissão se ramifica para N-1 ouvintes.

| Chamadores | Saída por mensagem | Experiência esperada |
|---|---|---|
| 2--3 | 20--40KB | Confiável na maioria das conexões |
| 3--5 | 40--80KB | Bom em circuitos estáveis, atrasos possíveis em dados móveis |
| 5--10 | 80--180KB | No limite, atrasos perceptíveis entre transmissões |
| 10+ | 180KB+ | Não confiável, enfileiramento significativo e possível perda de mensagens |

A capacidade realista é de **3--5 chamadores** para um relay rodando em um telefone (Termux), ou **5--10 chamadores** em uma máquina Linux dedicada com uma conexão estável. Relays rodando em dispositivos móveis enfrentam restrições adicionais: dados móveis adicionam latência sobre o Tor, o Android pode encerrar processos Termux em segundo plano para recuperar memória, e o consumo de bateria aumenta com cada chamador conectado. A largura de banda do circuito Tor pode variar de 50KB/s a 500KB/s dependendo da qualidade do caminho, e os circuitos podem degradar ou rotacionar no meio da sessão. O modo de salto único melhora a taxa de transferência, mas não elimina o congestionamento do relay Tor. Essas estimativas assumem o modelo PTT onde apenas uma pessoa transmite por vez -- transmissões simultâneas degradariam ainda mais o desempenho. Chamadores em uma chamada em grupo devem considerar reduzir seu bitrate Opus (Configurações → Codificação Opus) para reduzir os tamanhos das mensagens e aliviar a carga no relay.

---

## Configuração

Toda a configuração é armazenada em `.terminalphone/` relativo à localização do script:```
.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
```
Parâmetros de áudio padrão (definidos no topo do script):

| Parâmetro | Padrão | Descrição |
|---|---|---|
| `LISTEN_PORT` | 7777 | Porta TCP para conexões de entrada |
| `TOR_SOCKS_PORT` | 9050 | Porta do proxy SOCKS do Tor |
| `OPUS_BITRATE` | 16 | Taxa de bits da codificação Opus em kbps |
| `CIPHER` | aes-256-cbc | Cifra de criptografia (configurável via Configurações) |
| `SNOWFLAKE_ENABLED` | 0 | Ponte Snowflake para contornar censura |
| `AUTO_LISTEN` | 0 | Escuta automática de chamadas quando o Tor inicia |
| `PTT_KEY` | SPACE | Tecla push-to-talk (configurável via Configurações) |
| `VOL_PTT` | 0 | PTT por toque duplo no volume, apenas Termux (experimental) |
| `EXCLUDE_NODES` | (vazio) | Lista de países para ExcludeNodes do Tor (ex.: `{US},{GB}`) |
| `HMAC_AUTH` | 0 | Assina com HMAC todas as mensagens do protocolo (opcional, ambos os lados devem corresponder) |
| `OVERWRITE_DELETE` | 0 | Sobrescreve arquivos temporários com dados aleatórios antes da exclusão (desativado por padrão) |
| `PTT_CHIME` | off | Predefinição do som de notificação PTT (off, tone, double, chirp, ding, click, custom) |
| `SINGLE_HOP` | 0 | Modo Tor de salto único para menor latência (desativa o anonimato do servidor) |
| `SAMPLE_RATE` | 8000 | Taxa de amostragem de áudio em Hz |
| `CHUNK_DURATION` | 1 | Duração dos blocos de teste de áudio em segundos |

---

## Solução de problemas

**O Tor falha ao inicializar:**
Verifique o log do Tor em `.terminalphone/tor_data/tor.log`. Causas comuns incluem desvio de relógio, restrições de rede que bloqueiam o Tor ou outra instância do Tor usando a mesma porta SOCKS.

**Sem áudio no Termux:**
Verifique se o aplicativo Termux:API está instalado a partir do F-Droid (não apenas o pacote `termux-api`). Conceda permissões de microfone ao aplicativo Termux:API nas configurações do Android. Execute o teste de loopback de áudio (opção 5) para verificar.

**A instalação do ffmpeg falha no Termux:**
Execute `pkg upgrade` antes de instalar as dependências. O instalador faz isso automaticamente, mas se você instalou pacotes manualmente, bibliotecas compartilhadas desatualizadas podem causar erros de vinculação.

**O teste de áudio funciona, mas as chamadas ficam silenciosas:**
Confirme que ambas as partes estão usando o mesmo segredo compartilhado. Segredos incompatíveis resultarão em falha de descriptografia sem mensagem de erro -- a chamada conecta, mas nenhum áudio é ouvido.

**A ponte Snowflake demora para conectar:**
O Snowflake roteia o tráfego através de proxies WebRTC, o que adiciona tempo extra de inicialização. É normal que o Tor leve 30--60 segundos (ou mais) para atingir 100% quando o Snowflake está ativado. O script exibirá um aviso de paciência durante a inicialização.

**A primeira inicialização do Tor é lenta:**
Na primeira execução, o Tor precisa baixar o consenso completo da rede do zero, o que pode levar um ou dois minutos. O script detecta isso e exibe um aviso. O tempo limite de inicialização é estendido automaticamente de 120 para 300 segundos na primeira execução. As execuções subsequentes usam dados de consenso em cache e são muito mais rápidas.

**Desligar não retorna ao menu:**
Se o script travar após pressionar Q, pressione Ctrl+C para forçar a limpeza e retornar ao shell.

**`Cannot install under Rosetta 2 in ARM default prefix` no macOS:**
Isso acontece em Apple Silicon quando o terminal está sendo executado sob Rosetta 2 (um processo `x86_64`), mas o Homebrew está no prefixo ARM nativo (`/opt/homebrew`). O instalador de dependências (opção **7**) agora detecta isso e executa novamente o `brew` automaticamente sob `arch -arm64`. Se você estiver instalando pacotes manualmente, prefixe-os você mesmo: `arch -arm64 brew install <pkg>`. Como alternativa, inicie o script nativamente com `arch -arm64 bash terminalphone.sh`.

---

[MIRROR V1.0.0](https://bin.disroot.org/?e1356291b098cb75#FMQ4gxFwgdr3rjR1dpGS2csLmDPzDEkQW16fQ5P2Vt4y)

[MIRROR V1.0.1](https://bin.disroot.org/?d3bc0b8976113f58#AuUm4ev4vfeVmPyrh2KjAdhDP6WN4UX6yKQh9ERGD5Qt)

[MIRROR V1.0.2](https://bin.disroot.org/?6bc5b2fd046de1d7#G7TmnytrMeaM5AZYWth6BjjdqUb9RDf3K9erHUExKcGX)

[MIRROR V1.0.3](https://bin.disroot.org/?c5010f039e4693fd#Brp1w7LRQH9d5Ye5npZDPxNVR855SW9QUAk9cJaUuLYX)

[MIRROR V1.0.4](https://bin.disroot.org/?1831f6b78e349142#7zaAMVPNJL3MfbGJzjtm6cCPcvQftf4ULXupdne5dRKw)

[MIRROR V1.0.5](https://bin.disroot.org/?edfcfc844987ed03#56LuBbqbkfNDXfHpydyaB3VcWYhYenX18dtSvNumERY9)

[MIRROR V1.0.6](https://bin.disroot.org/?6c7b4774108b0c1c#GQPst46zjAYidndmNvytforX7MK2LyHanL4d829vVcv4)

[MIRROR V1.0.7](https://bin.disroot.org/?047003637623b4fa#EwmaysciDpiDkht8xV7ce3QcR9oxFXaxSikh4cLheXBB)

[MIRROR V1.0.8](https://bin.disroot.org/?06e38bd64e6fbdad#88MYs3dmq9rSMkmocpW3NYaaG4YfSdRCc9LJnEEzqGYp)

[MIRROR V1.0.9](https://bin.disroot.org/?950218a9a7c71c66#E7Z94VCGBZozrfXYhGwKyAdMeTxuavg92tA1pn2DbrrB)

[MIRROR V1.1.0](https://bin.disroot.org/?0b0da14f31521b3a#B1c23J8xFoZZKErvGG28PgbtfgtMUcDABWmQEoSZfXgh)

[MIRROR V1.1.1](https://bin.disroot.org/?d8e2d4f0300eb5af#9Y1C8CkcH9jAmv1fh4GZs1yYpJmWCG5xG3SvDYdwnJam)

[MIRROR V1.1.2](https://bin.disroot.org/?b1059616f880925f#8ef2oscZXUkPAsJZwGfWvLPQagVAk5GgW4DyssmLvQpG)

[MIRROR V1.1.3](https://bin.disroot.org/?b02658801518aaa7#JE6CsBLWUwAnTdBqeHgeXL7QF5UExgi9rnygcfyMZjCJ)

[MIRROR V1.1.4](https://bin.disroot.org/?d31248fc44c287a0#HQELFWFEMpM9kfTZSGDXTdGFMVKTejox5CajF9Vm4Www)

[MIRROR V1.1.5](https://bin.disroot.org/?284b723ed6aad15f#8VCrrri6yRpdg3uVDSY94wpx7LYkw5uYhm4Vbhka83sM)

[MIRROR V1.1.5.1](https://bin.disroot.org/?26aaef1eff20c271#4GxQQPSDhrszTu1RmERySNVqD2fZW5GZwm3JeL1parpB)

[MIRROR V1.1.6](https://bin.disroot.org/?ae8270578cd9e081#BbcDLU49XqhecvwviHRcdfrZ4vhKdL2AMeKaT5v9oLV1)

[MIRROR V1.1.7](https://bin.disroot.org/?457e4308abe582d8#B9LJG88rmUwrGHHuCof8WpE8CXGmkc2tyrXXicEiJFWk)


---

## Licença

MIT
Baixar ferramenta