Volver a actualizaciones
Nuevo releaseAug 12, 2026

bitchat-android v2.0.1

Aplicación de mensajería peer-to-peer descentralizada y cifrada a través de redes Bluetooth mesh. No requiere internet, servidores ni números de teléfono. Incluye cifrado X25519 + AES-256-GCM, comandos estilo IRC y compatibilidad multiplataforma con iOS.

Compartir

Logo de Bitchat Android

[!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:

Consíguelo en Google Play

Instrucciones:

  1. Descargar el APK: En tu dispositivo Android, navega al enlace de arriba y descarga el archivo .apk más reciente. Ábrelo.
  2. 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.
  3. 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

  1. Clonar el repositorio:

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

    # Abre Android Studio y selecciona "Abrir un proyecto existente"
    # Navega al directorio bitchat-android
    
  3. Compilar el proyecto:

    ./gradlew build
    
  4. 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

  1. Instala la aplicación en tu dispositivo Android (requiere Android 8.0+)
  2. Concede permisos de Bluetooth y ubicación cuando se te solicite
  3. Inicia bitchat - iniciará automáticamente la red de malla
  4. Establece tu apodo o usa el generado automáticamente
  5. Conéctate automáticamente a usuarios cercanos de bitchat iOS y Android
  6. Únete a un canal con /j #general o comienza a chatear en público
  7. 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

Funciones de privacidad

  • Sin registro: No se requieren cuentas, correos electrónicos ni números de teléfono
  • Efímero por defecto: Los mensajes existen solo en la memoria del dispositivo
  • Tráfico de cobertura: Retrasos aleatorios y mensajes ficticios para evitar el análisis de tráfico
  • Borrado de emergencia: Toca tres veces el logotipo para borrar instantáneamente todos los datos
  • Soporte Tor incluido: Integración de red Tor incorporada para mayor privacidad cuando hay conectividad a internet

Rendimiento y eficiencia

Compresión de mensajes

  • Compresión LZ4: Compresión automática para mensajes >100 bytes
  • Ahorro del 30-70% de ancho de banda en mensajes de texto típicos
  • Compresión inteligente: Omite datos ya comprimidos

Optimización de batería

  • Modos de energía adaptativos: Se ajusta automáticamente según el nivel de batería
    • Modo rendimiento: Funciones completas mientras se carga o batería >60%
    • Modo equilibrado: Funcionamiento por defecto (30-60% de batería)
    • Ahorro de energía: Escaneo reducido cuando batería <30%
    • Batería ultra baja: Modo de emergencia cuando batería <10%
  • Eficiencia en segundo plano: Ahorro de energía automático cuando la aplicación está en segundo plano
  • Escaneo configurable: Ciclo de trabajo adaptado al estado de la batería

Eficiencia de red

  • Filtros Bloom optimizados: Detección de duplicados más rápida con menos memoria
  • Agregación de mensajes: Agrupa mensajes pequeños para reducir transmisiones
  • Límites de conexión adaptativos: Ajusta las conexiones de pares según el modo de energía

Arquitectura técnica

Protocolo binario

bitchat utiliza un protocolo binario eficiente optimizado para Bluetooth LE:

  • Formato de paquete compacto con campo de tipo de 1 byte
  • Enrutamiento de mensajes basado en TTL (máximo 7 saltos)
  • Fragmentación automática para mensajes grandes
  • Deduplicación de mensajes mediante ID únicos

Red de malla

  • Cada dispositivo actúa como cliente y periférico
  • Descubrimiento automático de pares y gestión de conexiones
  • Almacenar y reenviar para entrega de mensajes sin conexión
  • Ciclo de trabajo adaptativo para optimización de batería

Optimizaciones específicas de Android

  • Arquitectura de corrutinas: Operaciones asíncronas para la red de malla
  • Corrutinas de Kotlin: Operaciones de malla concurrentes seguras para hilos
  • EncryptedSharedPreferences: Almacenamiento seguro para configuraciones de usuario
  • Consciente del ciclo de vida: Manejo adecuado del ciclo de vida de la aplicación Android
  • Optimización de batería: Servicio en primer plano y escaneo adaptativo

Arquitectura técnica de Android

Componentes principales

  1. BitchatApplication.kt: Inicialización a nivel de aplicación e inyección de dependencias
  2. MainActivity.kt: Actividad principal que maneja permisos y aloja la interfaz de usuario
  3. ChatViewModel.kt: Patrón MVVM que gestiona el estado de la aplicación y la lógica de negocio
  4. BluetoothMeshService.kt: Red de malla BLE central (roles central + periférico)
  5. EncryptionService.kt: Operaciones criptográficas usando BouncyCastle
  6. BinaryProtocol.kt: Codificación/decodificación de paquetes binarios que coincide con el formato iOS
  7. ChatScreen.kt: Interfaz Jetpack Compose con Material Design 3

Dependencias

  • Jetpack Compose: Interfaz de usuario declarativa moderna
  • BouncyCastle: Operaciones criptográficas (X25519, Ed25519, AES-GCM)
  • Biblioteca Nordic BLE: Operaciones Bluetooth LE confiables
  • Corrutinas de Kotlin: Programación asíncrona
  • LZ4: Compresión de mensajes (cuando está habilitada)
  • EncryptedSharedPreferences: Almacenamiento local seguro

Compatibilidad del protocolo binario

La implementación de Android mantiene un 100% de compatibilidad de protocolo binario con iOS:

  • Formato de cabecera: Estructura de cabecera idéntica de 13 bytes
  • Tipos de paquete: Mismos tipos de mensaje y lógica de enrutamiento
  • Cifrado: Algoritmos criptográficos y de intercambio de claves idénticos
  • UUIDs: Mismos identificadores de servicio y característica Bluetooth
  • Fragmentación: Fragmentación de mensajes compatible para contenido grande

Publicación en Google Play

Preparación

  1. Actualizar información de versión:

    // En app/build.gradle.kts
    defaultConfig {
        versionCode = 2  // Incrementar para cada lanzamiento
        versionName = "1.1.0"  // Versión visible para el usuario
    }
    
  2. Crear una compilación de lanzamiento firmada:

    ./gradlew assembleRelease
    
  3. Generar paquete de aplicación (recomendado para Play Store):

    ./gradlew bundleRelease
    

Requisitos de Play Store

  • API objetivo: Última API de Android (actualmente 34)
  • Política de privacidad: Requerida para aplicaciones que solicitan permisos sensibles
  • Permisos de la aplicación: Justificar el uso de Bluetooth y ubicación
  • Clasificación de contenido: Completar cuestionario para contenido apropiado para la edad

Distribución

  • Google Play Store: Canal de distribución principal
  • F-Droid: Para distribución de código abierto
  • APK directo: Para pruebas y desarrollo

Comunicación multiplataforma

Esta versión para Android permite una comunicación fluida con la aplicación original de bitchat para iOS:

  • iPhone ↔ Android: Mensajería bidireccional completa
  • Grupos mixtos: Usuarios de iOS y Android en los mismos canales
  • Paridad de funciones: Todos los comandos y el cifrado funcionan en ambas plataformas
  • Sincronización de protocolo: Formato de mensaje y comportamiento de enrutamiento idénticos

Versión iOS: Para usuarios de iPhone/iPad, obtén la aplicación original de bitchat en github.com/jackjackbits/bitchat

Contribuir

¡Las contribuciones son bienvenidas! Áreas clave para mejorar:

  1. Rendimiento: Optimización de batería y confiabilidad de conexión
  2. UI/UX: Características adicionales de Material Design 3
  3. Seguridad: Funciones criptográficas mejoradas
  4. Pruebas: Cobertura de pruebas unitarias y de integración
  5. Documentación: Documentación de API y guías de desarrollo

Soporte e incidencias

Para problemas específicos de iOS, consulta el repositorio original de bitchat para iOS.

Categorías