Retour aux mises à jour
UpdatedSep 3, 2026

terminalphone — Mis à jour !

Communication vocale et textuelle push-to-talk chiffrée via les services cachés Tor avec chiffrement de bout en bout, chiffrements configurables, mode relais pour les appels de groupe et destruction des données anti-forensique.

Partager

TerminalPhone

Communication vocale push-to-talk chiffrée via des services cachés Tor.

TerminalPhone est un script Bash unique et autonome qui fournit une communication vocale et textuelle anonyme et chiffrée de bout en bout entre deux ou plusieurs parties sur le réseau Tor. Il fonctionne comme un talkie-walkie : vous enregistrez un message vocal, qui est compressé, chiffré et transmis à la partie distante en une seule unité. Vous pouvez également envoyer des messages texte chiffrés pendant un appel. Aucune infrastructure serveur, aucun compte, aucun numéro de téléphone. Votre adresse .onion de service caché Tor est votre identité.


Table des matières


Fonctionnalités

  • Mode talkie-walkie push-to-talk -- Enregistrez un message vocal complet et transmettez-le au relâchement.
  • Chat chiffré en appel -- Envoyez et recevez des messages texte chiffrés pendant un appel. Appuyez sur T pour taper un message.
  • Identification de l'appelant -- Les deux parties échangent automatiquement leurs adresses .onion à la connexion. L'adresse distante est affichée dans l'en-tête de l'appel.
  • Détection automatique de raccrochage -- Lorsqu'une partie raccroche, l'autre est immédiatement notifiée et l'appel se termine automatiquement.
  • Chiffrement configurable -- Choisissez parmi 21 chiffrements sélectionnés, classés par force (256 bits → 128 bits). Inclut les familles AES, ChaCha20, Camellia et ARIA. Les chiffrements faibles (DES, RC4, modes ECB) sont exclus.
  • Négociation de chiffrement en direct -- Les deux parties échangent les informations de chiffrement à la connexion. L'en-tête de l'appel affiche les chiffrements local et distant avec des indicateurs vert (correspondance) ou rouge (non-correspondance), mis à jour en temps réel.
  • Paramètres en cours d'appel -- Appuyez sur S pendant un appel pour accéder aux paramètres. Changez votre chiffrement à la volée ; l'affichage de la partie distante se met à jour automatiquement.
  • Informations sur le pont Snowflake -- Lors de l'utilisation de Snowflake pour contourner la censure, la page d'appel affiche le nom du descripteur de pont, l'empreinte et l'état de connexion du transport, analysés à partir des journaux de Tor.
  • Écoute automatique -- Lorsqu'activée, un écouteur en arrière-plan démarre automatiquement au lancement de Tor. Les appels entrants sont détectés et acceptés depuis le menu principal sans avoir à sélectionner manuellement « Écouter les appels ». Après la fin d'un appel, l'écouteur redémarre.
  • Touche PTT configurable -- Changez la touche push-to-talk de la barre d'espace par défaut vers n'importe quelle touche via le menu Paramètres.
  • Statistiques des messages -- L'écran d'appel affiche la taille de la charge utile chiffrée pour les messages envoyés et reçus, mise à jour sur place.
  • État PTT distant -- L'écran d'appel affiche un indicateur statique de l'état de la partie distante : « Idle » (vert) ou « ● Recording » (rouge). Réinitialisation immédiate à l'arrivée des données audio, avant le début de la lecture.
  • Carillon PTT -- Son de notification optionnel lorsque la partie distante commence à enregistrer. Cinq préréglages intégrés (tone, double, chirp, ding, click) générés avec sox, plus la possibilité d'enregistrer un carillon personnalisé de 2 secondes. Configurable via Paramètres.
  • Animation de connexion -- Lors de l'appel d'une adresse distante, une animation cyclique se joue jusqu'au chargement de l'interface d'appel.
  • Changeur de voix -- Appliquez des effets vocaux à l'audio sortant. Inclut 6 préréglages (deep, high, robot, echo, whisper) et un mode personnalisé entièrement configurable avec pitch shift, overdrive, flanger, echo, filtre passe-haut et trémolo. Les effets sont traités avec sox avant l'encodage Opus.
  • PTT par volume (Termux) -- Mode expérimental permettant de double-taper le bouton Volume Bas pour basculer l'enregistrement, même lorsque Termux est en arrière-plan. Nécessite jq (installé à la demande). Le volume est automatiquement restauré après chaque déclenchement.
  • Service caché Tor -- Chaque instance exécute son propre service caché Tor. Votre adresse .onion sert de point de terminaison permanent et routable. Aucune redirection de port ni IP publique requise.
  • Chiffrement de bout en bout -- Tout l'audio et le texte sont chiffrés à l'aide d'un chiffrement configurable (par défaut : AES-256-CBC) avec dérivation de clé PBKDF2 à partir d'un secret pré-partagé avant d'entrer dans le réseau Tor.
  • Secret protégé par phrase de passe -- Le secret partagé peut être chiffré au repos à l'aide d'une phrase de passe choisie par l'utilisateur (AES-256-CBC, 100 000 itérations PBKDF2). Les secrets en clair existants sont automatiquement détectés avec une offre de migration.
  • Faible bande passante -- Codec Opus à 16 kbps, 8 kHz mono. Un message vocal typique de 10 secondes fait moins de 20 Ko, bien dans les capacités de Tor.
  • Partage par QR code -- L'option 3 peut afficher votre adresse .onion sous forme de QR code scannable dans le terminal. Si qrencode n'est pas installé, il vous est proposé de l'installer. Le QR code s'affiche sur le tampon d'écran alternatif et est détruit à sa fermeture. Une note avertit que certains scanners QR ajoutent automatiquement http:// ; ce préfixe est automatiquement supprimé lors de la composition.
  • Fichiers temporaires opaques -- Tous les fichiers temporaires utilisent des extensions génériques .tmp et des identifiants hexadécimaux aléatoires. Aucun type de fichier ni métadonnée temporelle n'est divulgué au système de fichiers.
  • Affichage des sauts de circuit -- Affichage optionnel de votre chemin de circuit Tor pendant les appels, montrant les noms des relais et les noms complets des pays. Actualisation automatique toutes les 60 secondes. Configurable via Paramètres → Paramètres Tor.
  • Exclure des pays -- Excluez des pays spécifiques de vos circuits Tor. Préréglages pour les alliances Five Eyes, Nine Eyes et Fourteen Eyes, ou saisissez des codes de pays personnalisés. Utilise ExcludeNodes avec StrictNodes dans le torrc.
  • Authentification du protocole par HMAC -- Signature HMAC-SHA256 optionnelle de tous les messages du protocole (voix, texte, signaux de contrôle) à l'aide du secret partagé. Un nonce aléatoire est inclus par message, et les nonces déjà vus sont suivis pour rejeter les rejeux. Les messages non signés, falsifiés ou rejoués sont silencieusement abandonnés. L'état HMAC est figé au début de l'appel pour éviter toute désynchronisation en cours d'appel. Configurable via Paramètres → Sécurité.
  • Écrasement avant suppression -- Option dans Paramètres → Sécurité qui écrase chaque fichier temporaire avec des données aléatoires provenant de /dev/urandom avant suppression. La taille du fichier est lue, autant d'octets de données aléatoires sont écrits par-dessus le fichier avec dd en utilisant conv=notrunc, l'écriture est vidée vers le périphérique de stockage avec sync, puis le fichier est supprimé avec rm. Couvre tous les fichiers d'exécution sensibles : enregistrements PCM bruts, audio encodé en Opus, charges utiles chiffrées, audio et chat entrants déchiffrés, intermédiaires d'effets vocaux, matériel de clé de chiffrement et HMAC, journaux de nonces, indicateurs de session, fichiers PID, tubes nommés, clés de service caché Tor lors de la rotation, et données de session de relais. Pour les répertoires, tous les fichiers à l'intérieur sont écrasés récursivement. Une option de test intégrée crée un fichier exemple, affiche le contenu original en clair et en hexadécimal, l'écrase, et affiche l'hexadécimal écrasé afin que l'utilisateur puisse confirmer visuellement que les données sont détruites. Désactivé par défaut — pour la plupart des utilisateurs, un rm standard est parfaitement suffisant. Les fichiers temporaires de TerminalPhone sont petits et de courte durée, et l'espace disque est généralement réutilisé rapidement par l'activité normale du système. Cette fonctionnalité est destinée aux utilisateurs qui souhaitent une couche de protection supplémentaire contre la récupération forensique. Remarque : sur les SSD et le stockage flash, l'usure uniforme signifie que l'écrasement peut atterrir sur différentes cellules NAND physiques — le chiffrement intégral du disque est la seule défense fiable sur les supports flash. Sur les HDD traditionnels, l'écrasement remplace les données au même emplacement physique et est efficace contre toute récupération logicielle.
  • Mode relais (pont de groupe) -- Exécutez un relais à connaissance nulle qui relie N appelants anonymes. Le relais transmet l'audio et le chat chiffrés sans les déchiffrer, ne nécessite aucun secret partagé ni matériel audio. Les clients détectent automatiquement le mode relais via la poignée de main RELAY:1 et affichent le nombre d'appelants du groupe en direct. Le départ d'un appelant ne déconnecte pas les autres. Le tableau de bord de l'opérateur affiche le nombre d'appelants, la durée de fonctionnement et le débit de données.
  • Mode Tor à saut unique -- Mode à latence réduite optionnel pour les opérateurs de relais. Utilise 1 saut Tor au lieu de 3 pour le service caché, sacrifiant l'anonymat du serveur pour une latence plus faible. Idéal pour les opérateurs de relais qui n'ont pas besoin de masquer leur propre IP.
  • Configuration des ports -- Configurez le port d'écoute et le port SOCKS ensemble via Paramètres → Paramètres Tor. Permet d'exécuter plusieurs instances sur le même appareil avec des processus Tor séparés. Principalement utile pour les opérateurs de relais qui souhaitent également rejoindre leur propre appel de groupe — exécutez le relais sur une instance, changez le port SOCKS sur une seconde instance, et connectez-vous en tant qu'appelant.
  • Multiplateforme -- Fonctionne sur les distributions Linux standard, macOS et Android via Termux. Les backends audio spécifiques à la plateforme sont gérés de manière transparente.
  • Aucun accès root requis -- L'entrée PTT utilise le mode brut du terminal. Aucune permission spéciale ni module noyau nécessaire.
  • Script unique -- Un seul fichier Bash. Aucun système de build, aucun runtime, aucun framework.

Installation

Linux

Distributions prises en charge : Debian/Ubuntu (apt), Fedora/RHEL (dnf), Arch (pacman).``` bash

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

Sélectionnez l'option **7** dans le menu pour installer automatiquement toutes les dépendances. Les paquets suivants seront installés :

| Paquet | Objectif |
|---|---|
| `tor` | Routage en oignon et service caché |
| `opus-tools` | Compression vocale (codec Opus) |
| `sox` | Utilitaires de traitement audio |
| `socat` | Relais TCP bidirectionnel via le proxy SOCKS de Tor |
| `openssl` | Chiffrement et déchiffrement AES-256-CBC |
| `alsa-utils` | Enregistrement et lecture audio (`arecord`, `aplay`) |

### macOS``` bash

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

Sélectionnez l'option 7 pour installer toutes les dépendances automatiquement. Si Homebrew n'est pas installé, le script l'installera d'abord, puis installera les paquets suivants :

PaquetObjectif
torRoutage en oignon et service caché
opus-toolsCompression vocale (codec Opus)
soxEnregistrement et lecture audio (rec, play)
socatRelais TCP bidirectionnel via le proxy SOCKS de Tor
opensslChiffrement et déchiffrement AES-256-CBC

Remarque : macOS utilise sox à la fois pour l'enregistrement (rec) et la lecture (play) au lieu d'ALSA. Aucun paquet audio supplémentaire n'est nécessaire.

Apple Silicon (M1/M2/M3+) : Si votre terminal s'exécute sous Rosetta 2 (un processus x86_64) alors que Homebrew est installé dans le préfixe ARM natif (/opt/homebrew), brew install échoue normalement avec Cannot install under Rosetta 2 in ARM default prefix. L'installateur de dépendances détecte désormais ce cas et relance automatiquement Homebrew sous arch -arm64, de sorte que l'option 7 fonctionne quelle que soit la manière dont le script a été lancé.

Termux (Android)

TerminalPhone prend en charge les appareils Android via Termux. En raison de l'architecture audio isolée d'Android, deux composants supplémentaires sont nécessaires.

Étape 1 : Installer Termux

Installez Termux depuis F-Droid. N'utilisez pas la version du Play Store, car elle est obsolète et ne reçoit plus de mises à jour.

Étape 2 : Installer l'application Termux:API

Installez Termux:API depuis F-Droid. Il s'agit d'une application Android distincte (et non d'un paquet Termux) qui fournit un pont entre Termux et les API système d'Android. TerminalPhone en a besoin pour accéder au microphone de l'appareil et à la lecture multimédia.

Sans l'application Termux:API installée sur l'appareil, les commandes termux-microphone-record et termux-media-player ne fonctionneront pas, et l'enregistrement et la lecture audio échoueront silencieusement.

Après avoir installé l'application Termux:API, accordez-lui les autorisations de microphone lorsqu'elles vous sont demandées.

Étape 3 : Installer le paquet Termux:API dans Termux```bash pkg install termux-api

Cela installe les utilitaires en ligne de commande qui communiquent avec l'application Termux:API.

**Étape 4 : Exécuter TerminalPhone**```bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh

Sélectionnez l'option 7 pour installer toutes les dépendances restantes. L'installateur exécutera d'abord pkg upgrade pour résoudre les éventuels problèmes de liaison de paquets, puis installera tor, opus-tools, sox, socat, openssl-tool, ffmpeg et termux-api.

Dépendances spécifiques à Termux :

PaquetObjectif
termux-apiPasserelle CLI vers le microphone et le lecteur multimédia Android
ffmpegConvertit les enregistrements M4A d'Android en PCM brut pour l'encodage Opus

Démarrage rapide```

  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)

Les deux parties doivent avoir Tor en cours d'exécution et le même secret partagé configuré avant de lancer un appel.

---

## Utilisation

### Options du 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

Contrôles en appel

Mode Full Duplex (WebSockets) :

ToucheAction
MActiver / désactiver le microphone.
TEnvoyer un message texte chiffré en appel.
QRaccrocher et revenir au menu.

Mode Push-to-Talk (Linux / macOS) :

ToucheAction
Maintenir ESPACEEnregistrer un message vocal. Envoi automatique au relâchement.
TEnvoyer un message texte chiffré.
SOuvrir les paramètres en cours d'appel (changer le chiffrement, ajuster la qualité).
QRaccrocher et revenir au menu.

Mode Push-to-Talk (Termux) :

Le clavier logiciel d'Android envoie les événements de touche au relâchement, pas à l'appui. TerminalPhone s'adapte en utilisant le mode bascule sur Termux.

ToucheAction
Appuyer sur ESPACEDémarrer l'enregistrement. Appuyer à nouveau pour arrêter et envoyer.
TEnvoyer un message texte chiffré.
SOuvrir les paramètres en cours d'appel (changer le chiffrement, ajuster la qualité).
QRaccrocher et revenir au menu.
Vol Bas ×2Basculer l'enregistrement via le bouton de volume (nécessite l'activation de Volume PTT dans les paramètres).

Mode 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)

---

## Fonctionnement

TerminalPhone utilise un modèle d'enregistrement puis d'envoi. Lorsque vous activez le PTT, le microphone enregistre en continu jusqu'à ce que vous relâchiez. L'enregistrement complet est ensuite traité via le pipeline suivant :```
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

Le protocole filaire est un texte basé sur des lignes sur une connexion TCP :

MessageDescription
ID:<onion>Identification de l'appelant -- adresse .onion de l'expéditeur
CIPHER:<name>Chiffrement de l'expéditeur. Échangé à la connexion et lors d'un changement.
PTT_STARTL'expéditeur a commencé l'enregistrement
PTT_STOPL'expéditeur a terminé ; l'audio suit ou a été envoyé
AUDIO:<base64>Message audio chiffré complet
MSG:<base64>Message texte chiffré
HANGUPL'expéditeur se déconnecte
PINGSignal de maintien de connexion
RELAY:1Salutation du relais -- envoyé par le relais à la connexion, déclenche le mode groupe
GROUP:<n>Mise à jour de la taille du groupe -- diffusée par le relais lorsque des appelants rejoignent ou quittent

Sur Termux, une étape de conversion supplémentaire gère le format d'enregistrement natif M4A d'Android, en utilisant ffmpeg pour convertir en PCM brut avant l'encodage Opus.


Modèle de sécurité

Chiffrement : Tout l'audio est chiffré avec un chiffrement configurable par l'utilisateur (par défaut : AES-256-CBC) avant transmission. 21 chiffrements sélectionnés sont disponibles, classés du plus fort (256 bits) à adéquat (128 bits). La clé est dérivée d'un secret pré-partagé en utilisant PBKDF2 avec 10 000 itérations. Le chiffrement est appliqué au niveau de la couche applicative, indépendamment du chiffrement de transport de Tor. Les secrets sont transmis à OpenSSL via des descripteurs de fichiers (-pass fd:3), et non par des arguments de ligne de commande, afin qu'ils ne soient jamais exposés dans la table des processus.

Négociation de chiffrement : Les deux parties échangent les noms de chiffrement à la connexion et chaque fois qu'un chiffrement est modifié en cours d'appel. Les noms de chiffrement ne sont pas secrets (principe de Kerckhoffs). Si les chiffrements local et distant ne correspondent pas, les deux parties voient des indicateurs rouges dans l'en-tête d'appel.

Transport : Toutes les données sont acheminées via des circuits de service caché Tor. L'adresse IP d'aucune des parties n'est exposée. Il n'y a pas de trafic clearnet. La connexion ne peut être attribuée à aucune des parties par un observateur du réseau.

Résistance à l'analyse de trafic : Le modèle enregistrer-puis-envoyer produit des schémas de transmission irréguliers (messages de longueur variable à intervalles irréguliers), qui sont plus difficiles à identifier que la diffusion continue.

Authentification : Le secret partagé sert d'authentification implicite. Si les deux parties n'ont pas le même secret, le déchiffrement échoue et aucun audio n'est lu. À la connexion, les deux parties échangent les adresses .onion pour l'identification de l'appelant. Le secret peut éventuellement être chiffré au repos avec une phrase de passe ; au lancement, le script demande la phrase de passe pour le déverrouiller.

Signature du protocole HMAC (optionnelle) : Lorsqu'elle est activée, chaque message du protocole filaire -- y compris les signaux de contrôle comme HANGUP, PTT_START et PING -- est signé avec HMAC-SHA256 dérivé du secret partagé. Un nonce aléatoire est inclus par message afin que des commandes identiques produisent des signatures uniques. Les nonces vus sont suivis par appel et les doublons sont rejetés, empêchant les attaques par rejeu. Le paramètre HMAC est figé au début de l'appel via un fichier d'exécution afin que les chemins d'envoi et de réception soient toujours d'accord, même si le paramètre est basculé en cours d'appel (les changements prennent effet au prochain appel). À la réception, tout message avec une signature invalide, manquante ou rejouée est silencieusement ignoré. Cela empêche un attaquant qui compromet le circuit Tor (mais ne possède pas le secret partagé) d'injecter ou de rejouer des commandes. Les deux parties doivent activer HMAC pour que les appels fonctionnent. Non compatible avec les versions antérieures à 1.1.3.

Limitations :

  • Le secret partagé doit être échangé hors bande via un canal sécurisé (en personne, messagerie chiffrée, etc.).
  • Il n'y a pas de confidentialité persistante. Si le secret partagé est compromis, toutes les communications passées et futures utilisant ce secret peuvent être déchiffrées.
  • Le protocole ne protège pas contre un point de terminaison compromis. Si l'un des appareils est compromis, l'attaquant a accès à l'audio en clair.

Sécurité du mode relais : Le relais est architecturalement à connaissance nulle. Il ne possède jamais le secret partagé et ne peut déchiffrer aucun contenu. Les données audio circulent à travers des tampons de pipe du noyau (FIFOs) qui n'existent qu'en mémoire -- rien n'est écrit sur le disque. Lorsque le relais s'arrête, tous les fichiers temporaires sont supprimés. L'opérateur du relais ne peut pas déterminer ce qui a été dit, qui sont les appelants, ni lire aucun message. Le relais filtre tous les signaux de contrôle (HANGUP, ID:, CIPHER:, PTT_START, PTT_STOP) et ne transmet que AUDIO:, MSG: et PING. Un adversaire passif global pourrait effectuer une analyse de corrélation de trafic pour associer les appelants au relais, mais le contenu des messages reste opaque.

Capacité du relais : Le principal goulot d'étranglement est la bande passante Tor. Le débit du service caché Tor est très variable et dépend de la qualité du circuit, de la congestion du relais et de la distance géographique. Un message vocal typique de 10 secondes fait ~20 Ko chiffrés, et chaque transmission se diffuse vers N-1 auditeurs.

AppelantsSortant par messageExpérience attendue
2--320--40 KoFiable sur la plupart des connexions
3--540--80 KoBon sur circuits stables, délais possibles sur données mobiles
5--1080--180 KoLimites atteintes, délais notables entre les transmissions
10+180 Ko+Non fiable, mise en file d'attente importante et perte de messages potentielle

La capacité réaliste est de 3--5 appelants pour un relais fonctionnant sur un téléphone (Termux), ou 5--10 appelants sur une machine Linux dédiée avec une connexion stable. Les relais fonctionnant sur des appareils mobiles font face à des contraintes supplémentaires : les données mobiles ajoutent de la latence par-dessus Tor, Android peut tuer les processus Termux en arrière-plan pour récupérer de la mémoire, et la consommation de batterie augmente avec chaque appelant connecté. La bande passante du circuit Tor peut varier de 50 Ko/s à 500 Ko/s selon la qualité du chemin, et les circuits peuvent se dégrader ou tourner en cours de session. Le mode à saut unique améliore le débit mais n'élimine pas la congestion des relais Tor. Ces estimations supposent le modèle PTT où une seule personne transmet à la fois -- des transmissions simultanées dégraderaient davantage les performances. Les appelants dans un appel de groupe devraient envisager de réduire leur débit Opus (Paramètres → Encodage Opus) pour réduire la taille des messages et alléger la charge sur le relais.


Configuration

Toute la configuration est stockée dans .terminalphone/ relatif à l'emplacement du 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

Paramètres audio par défaut (définis en haut du script) :

| Paramètre | Valeur par défaut | Description |
|---|---|---|
| `LISTEN_PORT` | 7777 | Port TCP pour les connexions entrantes |
| `TOR_SOCKS_PORT` | 9050 | Port du proxy SOCKS Tor |
| `OPUS_BITRATE` | 16 | Débit d'encodage Opus en kbps |
| `CIPHER` | aes-256-cbc | Chiffrement utilisé (configurable via Settings) |
| `SNOWFLAKE_ENABLED` | 0 | Pont Snowflake pour contourner la censure |
| `AUTO_LISTEN` | 0 | Écoute automatique des appels au démarrage de Tor |
| `PTT_KEY` | SPACE | Touche push-to-talk (configurable via Settings) |
| `VOL_PTT` | 0 | PTT par double-tap sur volume bas, Termux uniquement (expérimental) |
| `EXCLUDE_NODES` | (vide) | Liste de pays Tor ExcludeNodes (par ex. `{US},{GB}`) |
| `HMAC_AUTH` | 0 | Signer par HMAC tous les messages du protocole (optionnel, les deux côtés doivent correspondre) |
| `OVERWRITE_DELETE` | 0 | Écraser les fichiers temporaires avec des données aléatoires avant suppression (désactivé par défaut) |
| `PTT_CHIME` | off | Préréglage du son de notification PTT (off, tone, double, chirp, ding, click, custom) |
| `SINGLE_HOP` | 0 | Mode Tor à saut unique pour une latence réduite (désactive l'anonymat du serveur) |
| `SAMPLE_RATE` | 8000 | Fréquence d'échantillonnage audio en Hz |
| `CHUNK_DURATION` | 1 | Durée des segments de test audio en secondes |

---

## Dépannage

**Tor ne parvient pas à s'initialiser :**
Consultez le journal Tor dans `.terminalphone/tor_data/tor.log`. Les causes courantes incluent un décalage d'horloge, des restrictions réseau bloquant Tor, ou une autre instance Tor utilisant le même port SOCKS.

**Aucun son sur Termux :**
Vérifiez que l'application Termux:API est installée depuis F-Droid (pas seulement le paquet `termux-api`). Accordez les permissions de microphone à l'application Termux:API dans les paramètres Android. Lancez le test de boucle audio (option 5) pour vérifier.

**L'installation de ffmpeg échoue sur Termux :**
Exécutez `pkg upgrade` avant d'installer les dépendances. L'installateur le fait automatiquement, mais si vous avez installé les paquets manuellement, des bibliothèques partagées obsolètes peuvent provoquer des erreurs de liaison.

**Le test audio fonctionne mais les appels sont silencieux :**
Confirmez que les deux parties utilisent le même secret partagé. Des secrets différents entraîneront un échec de déchiffrement sans message d'erreur -- l'appel se connecte mais aucun son n'est entendu.

**Le pont Snowflake est lent à se connecter :**
Snowflake achemine le trafic via des proxys WebRTC, ce qui ajoute du temps d'initialisation supplémentaire. Il est normal que Tor prenne 30 à 60 secondes (ou plus) pour atteindre 100 % lorsque Snowflake est activé. Le script affichera un message de patience pendant l'initialisation.

**La première initialisation de Tor est lente :**
Au premier lancement, Tor doit télécharger l'intégralité du consensus réseau à partir de zéro, ce qui peut prendre une minute ou deux. Le script détecte cela et affiche un message. Le délai d'expiration de l'initialisation est automatiquement étendu de 120 à 300 secondes au premier lancement. Les lancements suivants utilisent les données de consensus en cache et sont beaucoup plus rapides.

**Raccrocher ne revient pas au menu :**
Si le script se bloque après avoir appuyé sur Q, appuyez sur Ctrl+C pour forcer le nettoyage et revenir au shell.

**`Cannot install under Rosetta 2 in ARM default prefix` sur macOS :**
Cela se produit sur Apple Silicon lorsque le terminal s'exécute sous Rosetta 2 (un processus `x86_64`) mais que Homebrew se trouve dans le préfixe ARM natif (`/opt/homebrew`). L'installateur de dépendances (option **7**) détecte désormais cela et relance automatiquement `brew` sous `arch -arm64`. Si vous installez les paquets manuellement, préfixez-les vous-même : `arch -arm64 brew install <pkg>`. Vous pouvez également lancer le script nativement avec `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)


---

## Licence

MIT

Catégories