[!WARNING]
Este software no ha recibido una revisión de seguridad externa y puede contener vulnerabilidades; no cumple necesariamente con sus objetivos de seguridad declarados. No lo utilices para casos de uso sensibles ni confíes en su seguridad hasta que haya sido revisado. Trabajo en progreso.
bitchat para Android
Una aplicación de mensajería segura, descentralizada y peer-to-peer que funciona sobre redes de malla Bluetooth. No necesita internet para chats en malla, no hay servidores, no hay números de teléfono, solo comunicación cifrada pura. Bitchat también admite canales geohash, que utilizan una conexión a internet para conectarte con otros en tu área geográfica.
Esta es la versión para Android de la aplicación original bitchat para iOS, manteniendo un 100% de compatibilidad de protocolo para comunicación multiplataforma.
Instalar bitchat
Puedes descargar la última versión de bitchat para Android desde la página de lanzamientos de GitHub.
O también puedes:

Instrucciones:
- Descargar el APK: En tu dispositivo Android, navega al enlace de arriba y descarga el archivo
.apk más reciente. Ábrelo.
- Permitir orígenes desconocidos: En algunos dispositivos, antes de poder instalar el APK, es posible que necesites habilitar "Instalar desde orígenes desconocidos" en la configuración de tu dispositivo. Normalmente se encuentra en Configuración > Seguridad o Configuración > Aplicaciones y notificaciones > Acceso especial de aplicaciones.
- Instalar: Abre el archivo
.apk descargado para comenzar la instalación.
Licencia
Este proyecto se libera al dominio público. Consulta el archivo LICENSE para más detalles.
Características
- ✅ Compatible multiplataforma: Compatibilidad total de protocolo con bitchat iOS
- ✅ Red de malla descentralizada: Descubrimiento automático de pares y retransmisión de mensajes multi-salto mediante Bluetooth LE
- ✅ Cifrado de extremo a extremo: Intercambio de claves X25519 + AES-256-GCM para mensajes privados
- ✅ Chats basados en canales: Mensajería grupal por temas con protección opcional por contraseña
- ✅ Almacenar y reenviar: Mensajes almacenados en caché para pares desconectados y entregados cuando se reconectan
- ✅ Privacidad primero: Sin cuentas, sin números de teléfono, sin identificadores persistentes
- ✅ Comandos estilo IRC: Interfaz familiar con
/join, /msg, /who
- ✅ Retención de mensajes: Guardado opcional de mensajes a nivel de canal controlado por los propietarios del canal
- ✅ Borrado de emergencia: Toca tres veces el logotipo para borrar instantáneamente todos los datos
- ✅ Interfaz moderna de Android: Jetpack Compose con Material Design 3
- ✅ Temas oscuro/claro: Estética inspirada en terminal que coincide con la versión iOS
- ✅ Optimización de batería: Escaneo adaptativo y administración de energía
Configuración de Android
Requisitos previos
- Android Studio: Arctic Fox (2020.3.1) o más reciente
- Android SDK: API nivel 26 (Android 8.0) o superior
- Kotlin: 1.8.0 o más reciente
- Gradle: 7.0 o más reciente
Instrucciones de compilación
-
Clonar el repositorio:
git clone https://github.com/permissionlesstech/bitchat-android.git
cd bitchat-android
-
Abrir en Android Studio:
# Abre Android Studio y selecciona "Abrir un proyecto existente"
# Navega al directorio bitchat-android
-
Compilar el proyecto:
./gradlew build
-
Instalar en el dispositivo:
./gradlew installDebug
Compilación de desarrollo
Para compilaciones de desarrollo con depuración habilitada:
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
Compilación de lanzamiento
Para lanzamientos de producción:
./gradlew assembleRelease
Requisitos específicos de Android
Permisos
La aplicación requiere los siguientes permisos (solicitados automáticamente):
- Bluetooth: Funcionalidad BLE principal
- Ubicación: Requerido para el escaneo BLE en Android
- Red: Expande tu malla a través de repetidores públicos de internet
- Notificaciones: Alertas de mensajes y actualizaciones en segundo plano
Requisitos de hardware
- Bluetooth LE (BLE): Necesario para la red de malla
- Android 8.0+: API nivel 26 mínimo
- RAM: Se recomiendan 2 GB para un rendimiento óptimo
Uso
Comandos básicos
/j #canal - Unirse o crear un canal
/m @nombre mensaje - Enviar un mensaje privado
/w - Listar usuarios en línea
/channels - Mostrar todos los canales descubiertos
/block @nombre - Bloquear a un par para que no te envíe mensajes
/block - Listar todos los pares bloqueados
/unblock @nombre - Desbloquear a un par
/clear - Limpiar los mensajes del chat
/pass [contraseña] - Establecer/cambiar la contraseña del canal (solo propietario)
/transfer @nombre - Transferir la propiedad del canal
/save - Activar/desactivar la retención de mensajes para el canal (solo propietario)
Primeros pasos
- Instala la aplicación en tu dispositivo Android (requiere Android 8.0+)
- Concede permisos de Bluetooth y ubicación cuando se te solicite
- Inicia bitchat - iniciará automáticamente la red de malla
- Establece tu apodo o usa el generado automáticamente
- Conéctate automáticamente a usuarios cercanos de bitchat iOS y Android
- Únete a un canal con
/j #general o comienza a chatear en público
- Los mensajes se retransmiten a través de la red de malla para llegar a pares distantes
Funciones de la interfaz de Android
- Interfaz Jetpack Compose: Interfaz moderna de Material Design 3
- Temas oscuro/claro: Estética inspirada en terminal que coincide con iOS
- Retroalimentación háptica: Vibraciones para interacciones y notificaciones
- Diseño adaptativo: Optimizado para varios tamaños de pantalla Android
- Estado de mensajes: Confirmaciones de entrega y lectura en tiempo real
- Indicadores RSSI: Colores de intensidad de señal para cada par
Funciones de los canales
- Protección por contraseña: Los propietarios del canal pueden establecer contraseñas con
/pass
- Retención de mensajes: Los propietarios pueden habilitar el guardado obligatorio de mensajes con
/save
- Menciones @: Usa
@apodo para mencionar usuarios (con autocompletado)
- Transferencia de propiedad: Pasa el control a usuarios de confianza con
/transfer
Seguridad y privacidad
Cifrado
- Mensajes privados: Intercambio de claves X25519 + cifrado AES-256-GCM
- Mensajes de canal: Derivación de contraseña Argon2id + AES-256-GCM
- Firmas digitales: Ed25519 para autenticidad de mensajes
- Secreto perfecto hacia adelante: Nuevos pares de claves generados en cada sesión