# Caudal para Android **Estado: en pruebas.** Se construye (0.3.0) y la parte de Python se ha probado en un ordenador tal como la arranca la aplicación; falta probarla en un teléfono de verdad. ## Qué es La misma aplicación que en un ordenador, sin reescribir nada: el programa de Python (`programa/cartera`) va dentro de la aplicación gracias a [Chaquopy](https://chaquo.com/chaquopy/), atiende solo en el propio teléfono (`127.0.0.1`) y se enseña en una ventana web. Los datos viven en la carpeta privada de la aplicación. - `app/build.gradle.kts`: versiones, dependencias de Python y la copia del programa (sin la carpeta de entidades concretas) antes de empaquetar. - `app/src/main/python/caudal_android.py`: arranca el servidor de Caudal. - `app/src/main/java/com/huveme/caudal/MainActivity.kt`: pide la huella o el PIN, enseña la página, elige ficheros para ella y guarda los que descarga. ## En qué se diferencia de las otras versiones - **Se entra con la huella o el PIN del teléfono**, cada vez que la aplicación vuelve a primer plano. - **No hay «copia cifrada en tu servidor git»**: usa los programas `gpg` y `git`, que en Android no existen. Quedan la copia de seguridad cifrada con contraseña y sincronizar con otro Caudal. - **Un nodo con dirección `.onion`** necesita Orbot en el teléfono. - Las copias automáticas del sistema (nube del fabricante, traspaso a otro teléfono) están desactivadas: las copias las hace Caudal, cifradas. ## Enlazar con tu Caudal del servidor En «Sincronizar con otro Caudal», el botón «Leer el QR del servidor con la cámara» rellena la dirección y el código (lector ZXing, sin servicios de Google; pide permiso de cámara la primera vez). Si el servidor usa su propia autoridad (StartOS), elige su certificado raíz como fichero: se guarda junto a los datos de la aplicación. ## Pendiente - Probarlo en un teléfono: arranque, ficheros, descargas, bloqueo, giro de pantalla, QR y enlace con StartOS por la red de casa y por `.onion` (Orbot). - Icono adaptable. ## Construir Hace falta el SDK de Android (plataforma 35), Java 17 y, para Chaquopy, un `python3.12` en el PATH del equipo que construye. ``` cd empaquetado/android gradle wrapper # una vez, crea ./gradlew ./gradlew assembleDebug # la de pruebas: app/build/outputs/apk/debug/ ``` Para una versión firmada, crea `firma.properties` junto a este fichero (no se versiona) y `./gradlew assembleRelease`: ``` storeFile=/ruta/a/tu/almacen.jks storePassword=… keyAlias=caudal keyPassword=… ``` La clave de firma de Android es para siempre: quien instale una versión solo podrá actualizar a otra firmada con la misma. Guárdala como la clave PGP. El APK se publica además con su manifiesto y firma PGP (`empaquetado/firmar-version.sh`, ver `VERIFICAR.md`).