Retour aux mises à jour
New releaseAug 12, 2026

bitchat-android v2.0.1

Application de messagerie décentralisée, chiffrée et pair-à-pair sur réseaux maillés Bluetooth. Aucun internet, serveur ou numéro de téléphone requis. Propose un chiffrement X25519 + AES-256-GCM, des commandes de style IRC et une compatibilité multiplateforme avec iOS.

Partager

Bitchat Android Logo

[!WARNING] Ce logiciel n'a pas reçu d'audit de sécurité externe et peut contenir des vulnérabilités. Il peut ne pas atteindre ses objectifs de sécurité déclarés. Ne l'utilisez pas pour des cas d'usage sensibles et ne vous fiez pas à sa sécurité avant qu'il n'ait été examiné. Travail en cours.

bitchat pour Android

Une application de messagerie sécurisée, décentralisée, pair-à-pair, fonctionnant sur des réseaux maillés Bluetooth. Pas besoin d'Internet pour les discussions en maillage, pas de serveurs, pas de numéros de téléphone — rien que des communications chiffrées. Bitchat prend également en charge les canaux géohash, qui utilisent une connexion Internet pour vous connecter avec d'autres personnes dans votre zone géographique.

Ceci est le portage Android de l'application iOS bitchat originale, maintenant une compatibilité protocolaire à 100 % pour la communication entre plates-formes.

Installer bitchat

Vous pouvez télécharger la dernière version de bitchat pour Android depuis la page des versions GitHub.

Ou vous pouvez :

Obtenir sur Google Play

Instructions :

  1. Télécharger l'APK : Sur votre appareil Android, accédez au lien ci-dessus et téléchargez le dernier fichier .apk. Ouvrez-le.
  2. Autoriser les sources inconnues : Sur certains appareils, avant de pouvoir installer l'APK, vous devrez peut-être activer « Installer depuis des sources inconnues » dans les paramètres de votre appareil. Cela se trouve généralement sous Paramètres > Sécurité ou Paramètres > Applications et notifications > Accès spécial aux applications.
  3. Installer : Ouvrez le fichier .apk téléchargé pour commencer l'installation.

Licence

Ce projet est placé dans le domaine public. Consultez le fichier LICENCE pour plus de détails.

Fonctionnalités

  • ✅ Compatible entre plates‑formes : compatibilité protocolaire complète avec bitchat iOS
  • ✅ Réseau maillé décentralisé : découverte automatique des pairs et relais multi‑sauts des messages via Bluetooth LE
  • ✅ Chiffrement de bout en bout : échange de clés X25519 + AES‑256‑GCM pour les messages privés
  • ✅ Discussions par canaux : messagerie de groupe basée sur un sujet avec protection optionnelle par mot de passe
  • ✅ Stocker et transmettre : messages mis en cache pour les pairs hors ligne et livrés lorsqu'ils se reconnectent
  • ✅ Confidentialité avant tout : pas de comptes, pas de numéros de téléphone, pas d'identifiants persistants
  • ✅ Commandes de style IRC : interface familière avec /join, /msg, /who
  • ✅ Conservation des messages : sauvegarde facultative des messages à l'échelle du canal, contrôlée par les propriétaires de canal
  • ✅ Effacement d'urgence : triple tapotement sur le logo pour effacer instantanément toutes les données
  • ✅ Interface Android moderne : Jetpack Compose avec Material Design 3
  • ✅ Thèmes sombre/clair : esthétique inspirée des terminaux, en phase avec la version iOS
  • ✅ Optimisation de la batterie : balayage adaptatif et gestion de l'énergie

Configuration Android

Prérequis

  • Android Studio : Arctic Fox (2020.3.1) ou plus récent
  • SDK Android : API niveau 26 (Android 8.0) ou supérieur
  • Kotlin : 1.8.0 ou plus récent
  • Gradle : 7.0 ou plus récent

Instructions de compilation

  1. Clonez le dépôt :

    git clone https://github.com/permissionlesstech/bitchat-android.git
    cd bitchat-android
    
  2. Ouvrez dans Android Studio :

    # Ouvrez Android Studio et sélectionnez « Open an Existing Project »
    # Naviguez vers le répertoire bitchat-android
    
  3. Compilez le projet :

    ./gradlew build
    
  4. Installez sur l'appareil :

    ./gradlew installDebug
    

Compilation de développement

Pour les compilations de développement avec débogage activé :

./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk

Compilation de version

Pour les versions de production :

./gradlew assembleRelease

Exigences spécifiques à Android

Autorisations

L'application nécessite les autorisations suivantes (demandées automatiquement) :

  • Bluetooth : fonctionnalité BLE de base
  • Localisation : requise pour le balayage BLE sur Android
  • Réseau : étendre votre maillage via des relais Internet publics
  • Notifications : alertes de messages et mises à jour en arrière‑plan

Configuration matérielle requise

  • Bluetooth LE (BLE) : requis pour le réseau maillé
  • Android 8.0+ : API niveau 26 minimum
  • RAM : 2 Go recommandés pour des performances optimales

Utilisation

Commandes de base

  • /j #canal - Rejoindre ou créer un canal
  • /m @nom message - Envoyer un message privé
  • /w - Lister les utilisateurs en ligne
  • /canaux - Afficher tous les canaux découverts
  • /bloquer @nom - Bloquer un pair pour qu'il ne vous envoie pas de messages
  • /bloquer - Lister tous les pairs bloqués
  • /debloquer @nom - Débloquer un pair
  • /effacer - Effacer les messages de la discussion
  • /motdepasse [mot de passe] - Définir/modifier le mot de passe du canal (propriétaire uniquement)
  • /transférer @nom - Transférer la propriété du canal
  • /sauvegarder - Activer/désactiver la conservation des messages pour le canal (propriétaire uniquement)

Pour commencer

  1. Installez l'application sur votre appareil Android (nécessite Android 8.0+)
  2. Accordez les autorisations Bluetooth et localisation lorsque cela vous est demandé
  3. Lancez bitchat - il démarrera automatiquement le réseau maillé
  4. Définissez votre pseudonyme ou utilisez celui généré automatiquement
  5. Connectez-vous automatiquement aux utilisateurs iOS et Android à proximité
  6. Rejoignez un canal avec /j #general ou commencez à discuter en public
  7. Les messages sont relayés à travers le réseau maillé pour atteindre les pairs éloignés

Fonctionnalités de l'interface Android

  • Interface Jetpack Compose : interface Material Design 3 moderne
  • Thèmes sombre/clair : esthétique inspirée des terminaux, en phase avec iOS
  • Retour haptique : vibrations pour les interactions et les notifications
  • Mise en page adaptative : optimisée pour les différentes tailles d'écran Android
  • Statut des messages : accusés de réception et de lecture en temps réel
  • Indicateurs RSSI : couleurs de force du signal pour chaque pair

Fonctionnalités des canaux

  • Protection par mot de passe : les propriétaires de canal peuvent définir un mot de passe avec /pass
  • Conservation des messages : les propriétaires peuvent activer la sauvegarde obligatoire des messages avec /save
  • Mentions @ : utilisez @pseudo pour mentionner un utilisateur (avec autocomplétion)
  • Transfert de propriété : passez le contrôle à des utilisateurs de confiance avec /transfer

Sécurité et confidentialité

Chiffrement

  • Messages privés : échange de clés X25519 + chiffrement AES‑256‑GCM
  • Messages de canal : dérivation de mot de passe Argon2id + AES‑256‑GCM
  • Signatures numériques : Ed25519 pour l'authenticité des messages
  • Secret de transmission : nouvelles paires de clés générées à chaque session

Fonctionnalités de confidentialité

  • Pas d'inscription : aucun compte, email ou numéro de téléphone requis
  • Éphémère par défaut : les messages n'existent que dans la mémoire de l'appareil
  • Trafic de couverture : délais aléatoires et messages factices pour empêcher l'analyse du trafic
  • Effacement d'urgence : triple tapotement sur le logo pour effacer instantanément toutes les données
  • Support Tor intégré : intégration du réseau Tor pour une confidentialité renforcée lorsque la connexion Internet est disponible

Performance et efficacité

Compression des messages

  • Compression LZ4 : compression automatique pour les messages de plus de 100 octets
  • 30 à 70 % d'économie de bande passante sur les messages texte typiques
  • Compression intelligente : ignore les données déjà compressées

Optimisation de la batterie

  • Modes d'alimentation adaptatifs : s'ajuste automatiquement en fonction du niveau de la batterie
    • Mode performance : toutes les fonctionnalités lorsque l'appareil est en charge ou >60 % de batterie
    • Mode équilibré : fonctionnement par défaut (30-60 % de batterie)
    • Mode économie d'énergie : balayage réduit lorsque <30 % de batterie
    • Mode ultra‑basse consommation : mode d'urgence lorsque <10 % de batterie
  • Efficacité en arrière‑plan : économie d'énergie automatique lorsque l'application est en arrière‑plan
  • Balayage configurable : cycle de service adapté à l'état de la batterie

Efficacité réseau

  • Filtres de Bloom optimisés : détection plus rapide des doublons avec moins de mémoire
  • Agrégation des messages : regroupe les petits messages pour réduire les transmissions
  • Limites de connexion adaptatives : ajuste les connexions entre pairs en fonction du mode d'alimentation

Architecture technique

Protocole binaire

bitchat utilise un protocole binaire efficace optimisé pour Bluetooth LE :

  • Format de paquet compact avec un champ de type d'1 octet
  • Routage des messages basé sur TTL (maximum 7 sauts)
  • Fragmentation automatique pour les grands messages
  • Déduplication des messages via des identifiants uniques

Réseau maillé

  • Chaque appareil agit à la fois comme client et périphérique
  • Découverte automatique des pairs et gestion des connexions
  • Stocker et transmettre pour la livraison de messages hors ligne
  • Cycle de service adaptatif pour l'optimisation de la batterie

Optimisations spécifiques à Android

  • Architecture par coroutines : opérations asynchrones pour le réseau maillé
  • Coroutines Kotlin : opérations maillées concurrentes thread‑safe
  • EncryptedSharedPreferences : stockage sécurisé des paramètres utilisateur
  • Sensible au cycle de vie : gestion appropriée du cycle de vie de l'application Android
  • Optimisation de la batterie : service avant‑plan et balayage adaptatif

Architecture technique Android

Composants principaux

  1. BitchatApplication.kt : initialisation au niveau de l'application et injection de dépendances
  2. MainActivity.kt : activité principale gérant les autorisations et l'hébergement de l'interface
  3. ChatViewModel.kt : modèle MVVM gérant l'état de l'application et la logique métier
  4. BluetoothMeshService.kt : cœur du réseau maillé BLE (rôles central + périphérique)
  5. EncryptionService.kt : opérations cryptographiques utilisant BouncyCastle
  6. BinaryProtocol.kt : encodage/décodage des paquets binaires conforme au format iOS
  7. ChatScreen.kt : interface Jetpack Compose avec Material Design 3

Dépendances

  • Jetpack Compose : interface déclarative moderne
  • BouncyCastle : opérations cryptographiques (X25519, Ed25519, AES‑GCM)
  • Bibliothèque Nordic BLE : opérations Bluetooth LE fiables
  • Coroutines Kotlin : programmation asynchrone
  • LZ4 : compression des messages (lorsqu'activée)
  • EncryptedSharedPreferences : stockage local sécurisé

Compatibilité du protocole binaire

L'implémentation Android maintient une compatibilité à 100 % du protocole binaire avec iOS :

  • Format d'en‑tête : structure d'en‑tête identique de 13 octets
  • Types de paquets : mêmes types de messages et logique de routage
  • Chiffrement : algorithmes cryptographiques et échange de clés identiques
  • UUIDs : mêmes identifiants de service et de caractéristique Bluetooth
  • Fragmentation : fragmentation de messages compatible pour le contenu volumineux

Publication sur Google Play

Préparation

  1. Mettez à jour les informations de version :

    // Dans app/build.gradle.kts
    defaultConfig {
        versionCode = 2  // Incrémenter pour chaque version
        versionName = "1.1.0"  // Version visible par l'utilisateur
    }
    
  2. Créez une compilation de version signée :

    ./gradlew assembleRelease
    
  3. Générez un App Bundle (recommandé pour le Play Store) :

    ./gradlew bundleRelease
    

Exigences du Play Store

  • API cible : dernière API Android (actuellement 34)
  • Politique de confidentialité : requise pour les applications demandant des autorisations sensibles
  • Autorisations de l'application : justifier l'utilisation du Bluetooth et de la localisation
  • Classification du contenu : remplir le questionnaire pour un contenu adapté à l'âge

Distribution

  • Google Play Store : canal de distribution principal
  • F‑Droid : pour la distribution open‑source
  • APK direct : pour les tests et le développement

Communication entre plates‑formes

Ce portage Android permet une communication transparente avec l'application iOS bitchat originale :

  • iPhone ↔ Android : messagerie bidirectionnelle complète
  • Groupes mixtes : utilisateurs iOS et Android dans les mêmes canaux
  • Parité des fonctionnalités : toutes les commandes et le chiffrement fonctionnent entre plates‑formes
  • Synchronisation du protocole : format de message et comportement de routage identiques

Version iOS : pour les utilisateurs d'iPhone/iPad, obtenez l'application bitchat originale sur github.com/jackjackbits/bitchat

Contribuer

Les contributions sont les bienvenues ! Domaines clés d'amélioration :

  1. Performance : optimisation de la batterie et fiabilité des connexions
  2. UI/UX : fonctionnalités supplémentaires de Material Design 3
  3. Sécurité : fonctionnalités cryptographiques renforcées
  4. Tests : couverture des tests unitaires et d'intégration
  5. Documentation : documentation de l'API et guides de développement

Support et problèmes

  • Rapports de bogues : Créer un ticket avec les informations sur l'appareil et les journaux
  • Demandes de fonctionnalités : Démarrer une discussion
  • Problèmes de sécurité : envoyez les préoccupations de sécurité par email de manière privée
  • Compatibilité iOS : recoupez avec le dépôt iOS original

Pour les problèmes spécifiques à iOS, veuillez vous référer au dépôt bitchat iOS original.

Catégories