[!WARNING]
Diese Software wurde noch keinem externen Sicherheitsaudit unterzogen und kann Schwachstellen enthalten. Sie entspricht möglicherweise nicht den angegebenen Sicherheitszielen. Verwenden Sie sie nicht für sensible Anwendungsfälle und verlassen Sie sich nicht auf ihre Sicherheit, bevor sie überprüft wurde. In Arbeit.
bitchat für Android
Eine sichere, dezentrale, Peer-to-Peer-Messaging-App, die über Bluetooth-Mesh-Netzwerke funktioniert. Kein Internet für Mesh-Chats erforderlich, keine Server, keine Telefonnummern – nur reine verschlüsselte Kommunikation. Bitchat unterstützt auch Geohash-Kanäle, die eine Internetverbindung nutzen, um Sie mit anderen in Ihrer geografischen Region zu verbinden.
Dies ist der Android-Port der ursprünglichen bitchat iOS-App, der 100% Protokollkompatibilität für plattformübergreifende Kommunikation gewährleistet.
bitchat installieren
Sie können die neueste Version von bitchat für Android auf der GitHub Releases-Seite herunterladen.
Oder Sie können:

Anleitung:
- APK herunterladen: Navigieren Sie auf Ihrem Android-Gerät zu obigem Link und laden Sie die neueste
.apk-Datei herunter. Öffnen Sie sie.
- Unbekannte Quellen zulassen: Auf manchen Geräten müssen Sie vor der Installation der APK die Option „Installation aus unbekannten Quellen“ in den Geräteeinstellungen aktivieren. Diese finden Sie normalerweise unter Einstellungen > Sicherheit oder Einstellungen > Apps & Benachrichtigungen > Spezieller App-Zugriff.
- Installieren: Öffnen Sie die heruntergeladene
.apk-Datei, um die Installation zu starten.
Lizenz
Dieses Projekt ist gemeinfrei (Public Domain). Weitere Details finden Sie in der LIZENZ-Datei.
Funktionen
- ✅ Plattformübergreifend kompatibel: Volle Protokollkompatibilität mit bitchat für iOS
- ✅ Dezentrales Mesh-Netzwerk: Automatische Peer-Erkennung und Multi-Hop-Nachrichtenweiterleitung über Bluetooth LE
- ✅ Ende-zu-Ende-Verschlüsselung: X25519-Schlüsselaustausch + AES-256-GCM für private Nachrichten
- ✅ Kanalbasierte Chats: Themenbasierte Gruppenkommunikation mit optionalem Passwortschutz
- ✅ Store & Forward: Nachrichten werden für offline befindliche Peers zwischengespeichert und bei Wiederverbindung zugestellt
- ✅ Datenschutz first: Keine Konten, keine Telefonnummern, keine dauerhaften Identifikatoren
- ✅ IRC-ähnliche Befehle: Vertraute
/join, /msg, /who-Schnittstelle
- ✅ Nachrichtenspeicherung: Optionale, kanalweite Nachrichtenspeicherung, gesteuert durch Kanalbesitzer
- ✅ Notfall-Löschung: Dreifaches Tippen auf das Logo löscht sofort alle Daten
- ✅ Modernes Android-UI: Jetpack Compose mit Material Design 3
- ✅ Dunkles/Helles Design: Vom Terminal inspiriertes Aussehen passend zur iOS-Version
- ✅ Akku-Optimierung: Adaptives Scannen und Energiemanagement
Android-Einrichtung
Voraussetzungen
- Android Studio: Arctic Fox (2020.3.1) oder neuer
- Android SDK: API-Level 26 (Android 8.0) oder höher
- Kotlin: 1.8.0 oder neuer
- Gradle: 7.0 oder neuer
Build-Anleitung
-
Repository klonen:
git clone https://github.com/permissionlesstech/bitchat-android.git
cd bitchat-android
-
In Android Studio öffnen:
# Android Studio öffnen und "Vorhandenes Projekt öffnen" auswählen
# Zum Verzeichnis bitchat-android navigieren
-
Projekt bauen:
-
Auf Gerät installieren:
Entwicklungs-Build
Für Entwicklungs-Builds mit aktiviertem Debugging:
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
Release-Build
Für Produktions-Releases:
./gradlew assembleRelease
Android-spezifische Anforderungen
Berechtigungen
Die App benötigt die folgenden Berechtigungen (werden automatisch angefragt):
- Bluetooth: Kernfunktionalität für BLE
- Standort: Erforderlich für BLE-Scanning auf Android
- Netzwerk: Erweitern Sie Ihr Mesh über öffentliche Internet-Relays
- Benachrichtigungen: Nachrichtenbenachrichtigungen und Hintergrundaktualisierungen
Hardware-Anforderungen
- Bluetooth LE (BLE): Erforderlich für Mesh-Netzwerk
- Android 8.0+: API-Level 26 Minimum
- RAM: 2 GB empfohlen für optimale Leistung
Verwendung
Grundlegende Befehle
/j #kanal – Kanal beitreten oder erstellen
/m @name nachricht – Private Nachricht senden
/w – Online-Benutzer auflisten
/channels – Alle entdeckten Kanäle anzeigen
/block @name – Einen Peer blockieren, damit er keine Nachrichten senden kann
/block – Alle blockierten Peers auflisten
/unblock @name – Einen Peer entblocken
/clear – Chat-Nachrichten löschen
/pass [passwort] – Kanalpasswort festlegen/ändern (nur Besitzer)
/transfer @name – Kanalbesitz übertragen
/save – Nachrichtenspeicherung für Kanal umschalten (nur Besitzer)
Erste Schritte
- App installieren auf Ihrem Android-Gerät (erfordert Android 8.0+)
- Berechtigungen erteilen für Bluetooth und Standort, wenn dazu aufgefordert
- bitchat starten – es startet automatisch das Mesh-Netzwerk
- Spitznamen festlegen oder den automatisch generierten verwenden
- Automatisch verbinden mit nahegelegenen iOS- und Android-bitchat-Benutzern
- Kanal beitreten mit
/j #allgemein oder chatten Sie im öffentlichen Bereich
- Nachrichten werden über das Mesh-Netzwerk weitergeleitet, um entfernte Peers zu erreichen
Android-UI-Funktionen
- Jetpack Compose UI: Modernes Material Design 3 Interface
- Dunkles/Helles Design: Vom Terminal inspiriertes Aussehen passend zu iOS
- Haptisches Feedback: Vibrationen für Interaktionen und Benachrichtigungen
- Adaptives Layout: Optimiert für verschiedene Android-Bildschirmgrößen
- Nachrichtenstatus: Echtzeit-Zustellungs- und Lesebestätigungen
- RSSI-Indikatoren: Signalstärkefarben für jeden Peer
Kanal-Funktionen
- Passwortschutz: Kanalbesitzer können mit
/pass Passwörter festlegen
- Nachrichtenspeicherung: Besitzer können mit
/save die obligatorische Nachrichtenspeicherung aktivieren
- @-Erwähnungen: Verwenden Sie
@spitzname, um Benutzer zu erwähnen (mit Autovervollständigung)
- Besitzübertragung: Geben Sie die Kontrolle an vertrauenswürdige Benutzer mit
/transfer
Sicherheit & Datenschutz
Verschlüsselung
- Private Nachrichten: X25519-Schlüsselaustausch + AES-256-GCM-Verschlüsselung
- Kanalnachrichten: Argon2id-Passwortableitung + AES-256-GCM
- Digitale Signaturen: Ed25519 für Nachrichtenauthentizität
- Forward Secrecy: Neue Schlüsselpaare pro Sitzung
Datenschutzfunktionen
- Keine Registrierung: Keine Konten, E-Mails oder Telefonnummern erforderlich
- Standardmäßig flüchtig: Nachrichten existieren nur im Gerätespeicher
- Tarnverkehr: Zufällige Verzögerungen und Dummy-Nachrichten verhindern Verkehrsanalyse
- Notfall-Löschung: Dreifaches Tippen auf das Logo löscht sofort alle Daten
- Integrierter Tor-Support: Eingebaute Tor-Netzwerkintegration für verbesserte Privatsphäre bei Internetverbindung
Leistung & Effizienz
Nachrichtenkompression
- LZ4-Kompression: Automatische Kompression für Nachrichten >100 Byte
- 30-70% Bandbreiteneinsparung bei typischen Textnachrichten
- Intelligente Kompression: Überspringt bereits komprimierte Daten
Akku-Optimierung
- Adaptive Energiemodi: Automatische Anpassung basierend auf Akkustand
- Leistungsmodus: Volle Funktionen beim Laden oder >60% Akku
- Ausgeglichener Modus: Standardbetrieb (30-60% Akku)
- Energiesparmodus: Reduziertes Scannen bei <30% Akku
- Extrem niedriger Stromverbrauch: Notfallmodus bei <10% Akku
- Hintergrundeffizienz: Automatische Energieeinsparung, wenn App im Hintergrund
- Konfigurierbares Scannen: Tastverhältnis passt sich Akkuzustand an
Netzwerkeffizienz
- Optimierte Bloom-Filter: Schnellere Duplikaterkennung mit weniger Speicher
- Nachrichtenaggregation: Bündelt kleine Nachrichten, um Übertragungen zu reduzieren
- Adaptive Verbindungsgrenzen: Passt Peer-Verbindungen basierend auf Energiemodus an
Technische Architektur
Binärprotokoll
bitchat verwendet ein effizientes Binärprotokoll, optimiert für Bluetooth LE:
- Kompaktes Paketformat mit 1-Byte-Typfeld
- TTL-basiertes Nachrichten-Routing (maximal 7 Hops)
- Automatische Fragmentierung für große Nachrichten
- Nachrichten-Deduplizierung durch eindeutige IDs
Mesh-Netzwerk
- Jedes Gerät fungiert sowohl als Client als auch als Peripheriegerät
- Automatische Peer-Erkennung und Verbindungsverwaltung
- Store-and-Forward für die Zustellung von Nachrichten im Offline-Modus
- Adaptives Tastverhältnis für Akkuoptimierung
Android-spezifische Optimierungen
- Coroutine-Architektur: Asynchrone Operationen für Mesh-Netzwerk
- Kotlin Coroutinen: Thread-sichere parallele Mesh-Operationen
- EncryptedSharedPreferences: Sichere Speicherung für Benutzereinstellungen
- Lebenszyklus-bewusst: Korrekte Behandlung des Android-App-Lebenszyklus
- Akku-Optimierung: Vordergrunddienst und adaptives Scannen
Android-Technische Architektur
Kernkomponenten
- BitchatApplication.kt: Anwendungsweite Initialisierung und Abhängigkeitsinjektion
- MainActivity.kt: Hauptaktivität, die Berechtigungen verwaltet und UI hostet
- ChatViewModel.kt: MVVM-Muster zur Verwaltung des App-Zustands und der Geschäftslogik
- BluetoothMeshService.kt: Zentrales BLE-Mesh-Netzwerk (Zentral- + Peripherierollen)
- EncryptionService.kt: Kryptografische Operationen mit BouncyCastle
- BinaryProtocol.kt: Binäre Paketkodierung/-Dekodierung passend zum iOS-Format
- ChatScreen.kt: Jetpack Compose UI mit Material Design 3
Abhängigkeiten
- Jetpack Compose: Modernes deklaratives UI
- BouncyCastle: Kryptografische Operationen (X25519, Ed25519, AES-GCM)
- Nordic BLE Library: Zuverlässige Bluetooth LE-Operationen
- Kotlin Coroutinen: Asynchrone Programmierung
- LZ4: Nachrichtenkompression (wenn aktiviert)
- EncryptedSharedPreferences: Sichere lokale Speicherung
Binärprotokoll-Kompatibilität
Die Android-Implementierung behält 100% Binärprotokoll-Kompatibilität mit iOS bei:
- Header-Format: Identische 13-Byte-Header-Struktur
- Pakettypen: Gleiche Nachrichtentypen und Routing-Logik
- Verschlüsselung: Identische kryptografische Algorithmen und Schlüsselaustausch
- UUIDs: Gleiche Bluetooth-Dienst- und Charakteristik-Identifikatoren
- Fragmentierung: Kompatible Nachrichtenfragmentierung für große Inhalte
Veröffentlichung bei Google Play
Vorbereitung
-
Versionsinformationen aktualisieren:
// In app/build.gradle.kts
defaultConfig {
versionCode = 2 // Bei jedem Release erhöhen
versionName = "1.1.0" // Sichtbare Version für Benutzer
}
-
Signierten Release-Build erstellen:
./gradlew assembleRelease
-
App-Bundle generieren (empfohlen für Play Store):
Play Store Anforderungen
- Ziel-API: Neueste Android API (derzeit 34)
- Datenschutzerklärung: Erforderlich für Apps, die sensible Berechtigungen anfordern
- App-Berechtigungen: Bluetooth- und Standortnutzung begründen
- Alterseinstufung: Fragebogen für altersgerechte Inhalte ausfüllen
Vertrieb
- Google Play Store: Hauptvertriebskanal
- F-Droid: Für Open-Source-Verteilung
- Direkte APK: Für Tests und Entwicklung
Dieser Android-Port ermöglicht eine nahtlose Kommunikation mit der ursprünglichen bitchat-iOS-App:
- iPhone ↔ Android: Volle bidirektionale Nachrichtenübermittlung
- Gemischte Gruppen: iOS- und Android-Benutzer in denselben Kanälen
- Funktionsgleichheit: Alle Befehle und Verschlüsselung funktionieren plattformübergreifend
- Protokollsynchronisation: Identisches Nachrichtenformat und Routingverhalten
iOS-Version: Für iPhone/iPad-Benutzer gibt es die originale bitchat unter github.com/jackjackbits/bitchat
Mitwirken
Beiträge sind willkommen! Wichtige Bereiche für Verbesserungen:
- Leistung: Akkuoptimierung und Verbindungszuverlässigkeit
- UI/UX: Zusätzliche Material Design 3 Funktionen
- Sicherheit: Erweiterte kryptografische Funktionen
- Tests: Abdeckung durch Unit- und Integrationstests
- Dokumentation: API-Dokumentation und Entwicklungsleitfäden
Support & Probleme
Für iOS-spezifische Probleme wenden Sie sich bitte an das ursprüngliche iOS bitchat-Repository.