android: la APK se monta sobre la oficial del dev

La app Android de epsylon trae desde la 1.3.x un puente nativo de audio y
camara (.audio_bridge) para el Telefono y las Salas, y no tiene el codigo
publicado. android/scripts/sobre_oficial.sh coge su APK de la misma version,
le cambia el backend por el de la rama (con su node_modules), le pone el
paquete net.laenre.oasis (y los authorities, el permiso propio y las acciones
de llamada) para que conviva con la oficial, y la monta y firma. apktool va
con version y huella fijas.

Probado en el emulador: el Telefono ofrece llamadas y en una sala el
microfono graba y se corta al salir. README, guia, android/README y los
esquemas lo cuentan; el proyecto Gradle propio queda sin uso.
This commit is contained in:
hacklab 2026-10-19 14:12:18 +02:00
parent 34265c2ed0
commit 6bacafea64
9 changed files with 182 additions and 36 deletions

View file

@ -55,10 +55,11 @@ Ahora mismo hay enganches en `main_views.js`, `tribes_view.js`, `vote_view.js`,
La rama tuvo un módulo de salas y llamadas propio (Karvan). Se quitó el 19/10/2026
porque el dev ya trae Teléfono y Salas. En Android el sonido y la cámara pasan por un
puente nativo de la app (`.audio_bridge`, ficheros `src/server/phone_*_android.js`,
que son del dev). La APK oficial lo trae; nuestra app Android todavía no, y es lo
que falta para que las llamadas suenen. Si falta algo en las llamadas, se arregla en
ese puente o se le pide al dev, no se monta otro módulo.
puente nativo de la app del dev (`.audio_bridge`; los ficheros
`src/server/phone_*_android.js` también son suyos). Por eso la APK se monta sobre la
oficial con `android/scripts/sobre_oficial.sh`: su app tal cual, nuestro backend
dentro y paquete propio. Si falta algo en las llamadas, se le pide al dev, no se monta
otro módulo.
Ojo al comparar con el dev: para el móvil la referencia es el `nodejs-project` de su
APK oficial, no su repositorio git. Hay ficheros, como `SSB_server.js` o
@ -89,7 +90,8 @@ Aquí se puede hacer lo que haga falta.
- `src/models/fork_workflows.js`: nuestros workflows.
- `src/client/assets/translations/i18n_fork.js`: nuestros textos.
- `src/client/assets/images/ux-*.svg`: nuestras imágenes.
- `android/`.
- `android/scripts/sobre_oficial.sh`: monta la APK sobre la oficial del dev. El resto
de `android/` (el proyecto Gradle propio) queda como estaba, sin uso.
## Cómo hacer cada cosa
@ -160,8 +162,8 @@ nombre es el de la ruta: `/tribes` es `tribes`.
3. Se repite la medición de `docs/FRONTERA_UPSTREAM.md`: qué ha tocado y si ha
desaparecido alguna clase que usen nuestras hojas.
4. Se repasan a 412 px las pantallas de la lista de arriba.
5. Se compila la APK con la oficial de esa misma versión como base
(`android/scripts/release.sh` con `OASIS_APK_BASE`).
5. Se monta la APK sobre la oficial de esa misma versión:
`OASIS_VERSION=x.y.z android/scripts/sobre_oficial.sh`.
## Probar en local