Torna agli aggiornamenti
New releaseAug 12, 2026

bitchat-android v2.0.1

App di messaggistica decentralizzata, crittografata, peer-to-peer su reti Bluetooth mesh. Nessuna connessione internet, server o numeri telefonici richiesti. Include crittografia X25519 + AES-256-GCM, comandi in stile IRC e compatibilità multipiattaforma con iOS.

Condividi

Logo di Bitchat Android

[!WARNING] Questo software non ha ricevuto una revisione di sicurezza esterna e potrebbe contenere vulnerabilità e potrebbe non soddisfare i propri obiettivi di sicurezza dichiarati. Non utilizzarlo per casi d'uso sensibili e non fare affidamento sulla sua sicurezza finché non sarà stato revisionato. Lavori in corso.

bitchat per Android

Un'app di messaggistica sicura, decentralizzata e da pari a pari che funziona su reti mesh Bluetooth. Nessuna connessione Internet necessaria per le chat mesh, nessun server, nessun numero di telefono: solo comunicazione crittografata pura. Bitchat supporta anche canali geohash, che utilizzano una connessione Internet per metterti in contatto con altri nella tua area geografica.

Questo è il porting Android dell'originale app bitchat per iOS, mantenendo la compatibilità al 100% del protocollo per la comunicazione multipiattaforma.

Installa bitchat

Puoi scaricare l'ultima versione di bitchat per Android dalla pagina delle Release su GitHub.

Oppure puoi:

Scarica da Google Play

Istruzioni:

  1. Scarica l'APK: Sul tuo dispositivo Android, vai al link sopra e scarica l'ultimo file .apk. Aprilo.
  2. Consenti origini sconosciute: Su alcuni dispositivi, prima di poter installare l'APK, potresti dover abilitare "Installa da origini sconosciute" nelle impostazioni del dispositivo. Di solito si trova in Impostazioni > Sicurezza o Impostazioni > App e notifiche > Accesso speciale alle app.
  3. Installa: Apri il file .apk scaricato per iniziare l'installazione.

Licenza

Questo progetto è rilasciato nel pubblico dominio. Vedi il file LICENSE per i dettagli.

Funzionalità

  • ✅ Compatibile multipiattaforma: Piena compatibilità del protocollo con bitchat iOS
  • ✅ Rete mesh decentralizzata: Scoperta automatica dei peer e inoltro di messaggi multi-hop tramite Bluetooth LE
  • ✅ Crittografia end-to-end: Scambio di chiavi X25519 + AES-256-GCM per messaggi privati
  • ✅ Chat basate su canali: Messaggistica di gruppo basata su argomenti con protezione opzionale tramite password
  • ✅ Memorizza e inoltra: Messaggi memorizzati nella cache per i peer offline e consegnati quando si riconnettono
  • ✅ Privacy prima di tutto: Nessun account, nessun numero di telefono, nessun identificatore persistente
  • ✅ Comandi stile IRC: Interfaccia familiare /join, /msg, /who
  • ✅ Conservazione dei messaggi: Salvataggio opzionale dei messaggi a livello di canale controllato dai proprietari del canale
  • ✅ Pulizia di emergenza: Triplo tocco sul logo per cancellare istantaneamente tutti i dati
  • ✅ Interfaccia Android moderna: Jetpack Compose con Material Design 3
  • ✅ Temi scuro/chiaro: Estetica ispirata al terminale che corrisponde alla versione iOS
  • ✅ Ottimizzazione della batteria: Scansione adattiva e gestione dell'alimentazione

Configurazione Android

Prerequisiti

  • Android Studio: Arctic Fox (2020.3.1) o successivo
  • Android SDK: API livello 26 (Android 8.0) o superiore
  • Kotlin: 1.8.0 o successivo
  • Gradle: 7.0 o successivo

Istruzioni di compilazione

  1. Clona il repository:

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

    # Apri Android Studio e seleziona "Open an Existing Project"
    # Vai alla directory bitchat-android
    
  3. Compila il progetto:

    ./gradlew build
    
  4. Installa sul dispositivo:

    ./gradlew installDebug
    

Build di sviluppo

Per build di sviluppo con debug abilitato:

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

Build di rilascio

Per versioni di produzione:

./gradlew assembleRelease

Requisiti specifici per Android

Autorizzazioni

L'app richiede le seguenti autorizzazioni (richieste automaticamente):

  • Bluetooth: Funzionalità BLE principali
  • Posizione: Necessaria per la scansione BLE su Android
  • Rete: Espandi la tua mesh attraverso relay Internet pubblici
  • Notifiche: Avvisi di messaggi e aggiornamenti in background

Requisiti hardware

  • Bluetooth LE (BLE): Necessario per la rete mesh
  • Android 8.0+: API livello 26 minimo
  • RAM: 2 GB consigliati per prestazioni ottimali

Utilizzo

Comandi di base

  • /j #canale - Unisciti o crea un canale
  • /m @nome messaggio - Invia un messaggio privato
  • /w - Elenca utenti online
  • /channels - Mostra tutti i canali scoperti
  • /block @nome - Blocca un peer dal mandarti messaggi
  • /block - Elenca tutti i peer bloccati
  • /unblock @nome - Sblocca un peer
  • /clear - Cancella i messaggi della chat
  • /pass [password] - Imposta/cambia la password del canale (solo proprietario)
  • /transfer @nome - Trasferisci la proprietà del canale
  • /save - Attiva/disattiva la conservazione dei messaggi per il canale (solo proprietario)

Per iniziare

  1. Installa l'app sul tuo dispositivo Android (richiede Android 8.0+)
  2. Concedi le autorizzazioni per Bluetooth e posizione quando richiesto
  3. Avvia bitchat - avvierà automaticamente il networking mesh
  4. Imposta il tuo nickname o usa quello generato automaticamente
  5. Connettiti automaticamente agli utenti bitchat iOS e Android nelle vicinanze
  6. Unisciti a un canale con /j #generale o inizia a chattare in pubblico
  7. I messaggi vengono inoltrati attraverso la rete mesh per raggiungere peer lontani

Funzionalità dell'interfaccia Android

  • Interfaccia Jetpack Compose: Moderna interfaccia Material Design 3
  • Temi scuro/chiaro: Estetica ispirata al terminale che corrisponde a iOS
  • Feedback aptico: Vibrazioni per interazioni e notifiche
  • Layout adattivo: Ottimizzato per varie dimensioni dello schermo Android
  • Stato dei messaggi: Ricevute di consegna e lettura in tempo reale
  • Indicatori RSSI: Colori dell'intensità del segnale per ogni peer

Funzionalità dei canali

  • Protezione tramite password: I proprietari del canale possono impostare password con /pass
  • Conservazione dei messaggi: I proprietari possono abilitare il salvataggio obbligatorio dei messaggi con /save
  • Menzioni @: Usa @nickname per menzionare utenti (con completamento automatico)
  • Trasferimento di proprietà: Passa il controllo a utenti fidati con /transfer

Sicurezza e privacy

Crittografia

  • Messaggi privati: Scambio di chiavi X25519 + crittografia AES-256-GCM
  • Messaggi di canale: Derivazione password Argon2id + AES-256-GCM
  • Firme digitali: Ed25519 per l'autenticità dei messaggi
  • Segretezza perfetta in avanti: Nuove coppie di chiavi generate ogni sessione

Funzionalità di privacy

  • Nessuna registrazione: Nessun account, email o numero di telefono richiesto
  • Effimero per impostazione predefinita: I messaggi esistono solo nella memoria del dispositivo
  • Traffico di copertura: Ritardi casuali e messaggi fittizi impediscono l'analisi del traffico
  • Pulizia di emergenza: Triplo tocco sul logo per cancellare istantaneamente tutti i dati
  • Supporto Tor integrato: Integrazione della rete Tor integrata per una maggiore privacy quando la connettività Internet è disponibile

Prestazioni ed efficienza

Compressione dei messaggi

  • Compressione LZ4: Compressione automatica per messaggi > 100 byte
  • Risparmio di larghezza di banda del 30-70% su messaggi di testo tipici
  • Compressione intelligente: Salta i dati già compressi

Ottimizzazione della batteria

  • Modalità di alimentazione adattiva: Si adatta automaticamente in base al livello della batteria
    • Modalità prestazioni: Funzionalità complete durante la ricarica o batteria > 60%
    • Modalità bilanciata: Funzionamento predefinito (30-60% batteria)
    • Risparmio energetico: Scansione ridotta quando batteria < 30%
    • Potenza ultra-bassa: Modalità di emergenza quando batteria < 10%
  • Efficienza in background: Risparmio energetico automatico quando l'app è in background
  • Scansione configurabile: Ciclo di lavoro adattato allo stato della batteria

Efficienza di rete

  • Filtri Bloom ottimizzati: Rilevamento più rapido dei duplicati con meno memoria
  • Aggregazione dei messaggi: Raggruppa messaggi piccoli per ridurre le trasmissioni
  • Limiti di connessione adattivi: Regola le connessioni peer in base alla modalità di alimentazione

Architettura tecnica

Protocollo binario

bitchat utilizza un efficiente protocollo binario ottimizzato per Bluetooth LE:

  • Formato pacchetto compatto con campo tipo di 1 byte
  • Routing dei messaggi basato su TTL (massimo 7 hop)
  • Frammentazione automatica per messaggi grandi
  • Deduplicazione dei messaggi tramite ID univoci

Rete mesh

  • Ogni dispositivo agisce sia come client che come periferica
  • Scoperta automatica dei peer e gestione delle connessioni
  • Memorizza e inoltra per la consegna di messaggi offline
  • Ciclo di lavoro adattivo per l'ottimizzazione della batteria

Ottimizzazioni specifiche per Android

  • Architettura a coroutine: Operazioni asincrone per il networking mesh
  • Coroutine Kotlin: Operazioni mesh concorrenti thread-safe
  • EncryptedSharedPreferences: Archiviazione sicura per le impostazioni utente
  • Lifecycle-aware: Gestione corretta del ciclo di vita dell'app Android
  • Ottimizzazione della batteria: Servizio in primo piano e scansione adattiva

Architettura tecnica Android

Componenti principali

  1. BitchatApplication.kt: Inizializzazione a livello di applicazione e dependency injection
  2. MainActivity.kt: Attività principale che gestisce le autorizzazioni e l'hosting dell'interfaccia
  3. ChatViewModel.kt: Pattern MVVM che gestisce lo stato dell'app e la logica di business
  4. BluetoothMeshService.kt: Networking mesh BLE principale (ruoli central + periferica)
  5. EncryptionService.kt: Operazioni crittografiche utilizzando BouncyCastle
  6. BinaryProtocol.kt: Codifica/decodifica di pacchetti binari che corrispondono al formato iOS
  7. ChatScreen.kt: Interfaccia Jetpack Compose con Material Design 3

Dipendenze

  • Jetpack Compose: Interfaccia dichiarativa moderna
  • BouncyCastle: Operazioni crittografiche (X25519, Ed25519, AES-GCM)
  • Libreria BLE Nordic: Operazioni Bluetooth LE affidabili
  • Coroutine Kotlin: Programmazione asincrona
  • LZ4: Compressione dei messaggi (quando abilitata)
  • EncryptedSharedPreferences: Archiviazione locale sicura

Compatibilità del protocollo binario

L'implementazione Android mantiene la compatibilità al 100% del protocollo binario con iOS:

  • Formato dell'intestazione: Struttura dell'intestazione identica a 13 byte
  • Tipi di pacchetto: Stessi tipi di messaggio e logica di routing
  • Crittografia: Algoritmi crittografici e scambio di chiavi identici
  • UUID: Identificatori di servizio e caratteristica Bluetooth identici
  • Frammentazione: Frammentazione dei messaggi compatibile per contenuti grandi

Pubblicazione su Google Play

Preparazione

  1. Aggiorna le informazioni sulla versione:

    // In app/build.gradle.kts
    defaultConfig {
        versionCode = 2  // Incrementa per ogni rilascio
        versionName = "1.1.0"  // Versione visibile all'utente
    }
    
  2. Crea una build di rilascio firmata:

    ./gradlew assembleRelease
    
  3. Genera il bundle dell'app (consigliato per Play Store):

    ./gradlew bundleRelease
    

Requisiti del Play Store

  • API target: Ultima API Android (attualmente 34)
  • Informativa sulla privacy: Richiesta per app che richiedono autorizzazioni sensibili
  • Autorizzazioni dell'app: Giustifica l'uso di Bluetooth e posizione
  • Classificazione dei contenuti: Compila il questionario per contenuti adatti all'età

Distribuzione

  • Google Play Store: Canale di distribuzione principale
  • F-Droid: Per la distribuzione open-source
  • APK diretto: Per test e sviluppo

Comunicazione multipiattaforma

Questo porting Android consente una comunicazione senza soluzione di continuità con l'app bitchat originale per iOS:

  • iPhone ↔ Android: Messaggistica bidirezionale completa
  • Gruppi misti: Utenti iOS e Android negli stessi canali
  • Parità di funzionalità: Tutti i comandi e la crittografia funzionano su entrambe le piattaforme
  • Sincronizzazione del protocollo: Formato del messaggio e comportamento di routing identici

Versione iOS: Per utenti iPhone/iPad, ottieni l'originale bitchat su github.com/jackjackbits/bitchat

Contribuire

I contributi sono benvenuti! Aree chiave per miglioramenti:

  1. Prestazioni: Ottimizzazione della batteria e affidabilità della connessione
  2. UI/UX: Funzionalità aggiuntive di Material Design 3
  3. Sicurezza: Funzionalità crittografiche potenziate
  4. Test: Copertura dei test unitari e di integrazione
  5. Documentazione: Documentazione API e guide di sviluppo

Supporto e problemi

Per problemi specifici di iOS, fai riferimento al repository originale bitchat per iOS.

Categorie