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.
253 lines
12 KiB
Markdown
253 lines
12 KiB
Markdown
# OASIS_MOBILE — rama de desarrollo experimental
|
|
|
|
> ## ⚠ ESTO NO ES OASIS OFICIAL
|
|
>
|
|
> Esta es una **rama de desarrollo experimental** mantenida por el hacklab, **no
|
|
> afiliada** al proyecto original.
|
|
>
|
|
> ### El repositorio oficial de Oasis es el de epsylon: https://github.com/epsylon/oasis
|
|
>
|
|
> Si quieres **usar Oasis de verdad, instala el oficial**. Lo que hay aquí puede
|
|
> romperse, cambiar de forma incompatible o desaparecer sin aviso. No está auditado y
|
|
> no tiene garantía de ninguna clase.
|
|
>
|
|
> **Los fallos de esta rama se reportan aquí, nunca a epsylon.**
|
|
|
|
Si vas a desarrollar, lee antes la [guía de desarrollo](GUIA_DE_DESARROLLO.md). Ahí
|
|
está qué se puede tocar y qué no. En corto: el backend, el middleware, los modelos y
|
|
las traducciones son de epsylon y no se tocan; lo nuestro va en hojas, vistas y rutas
|
|
propias.
|
|
|
|
Versión base: Oasis 1.3.3 · Rama: `PRUEBAS` ·
|
|
[Documentación completa](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki) ·
|
|
[Versión de escritorio](https://gitea.laenre.net/hacklab/OASIS_LINUX)
|
|
|
|

|
|
|
|
[⬇ Descargar la APK](https://gitea.laenre.net/hacklab/OASIS_MOBILE/releases) ·
|
|
Android 7 o superior, 64 bits · se instala junto al Oasis oficial sin pisarlo
|
|
|
|
### Novedades de esta versión
|
|
|
|
- Al día con Oasis 1.3.3: karma en el perfil, salas con directo, fotos selladas en
|
|
chats privados y tribus, visibilidad de menciones y las traducciones nuevas.
|
|
- Arranca en modo acampada: chats, teléfono, salas, pads, foro, wiki, tribus,
|
|
parlamento, votaciones y eventos. El resto se enciende en *Módulos* o en
|
|
*Ajustes → Workflows*.
|
|
- Las llamadas son las de Oasis. Fuera Karvan, el módulo propio de salas: ahora se usan
|
|
el Teléfono y las Salas del dev, con su levantar la mano, grabación y emisión.
|
|
- La APK se monta sobre la oficial: se coge la del dev, se le cambia el backend por el
|
|
de la rama y se le da otro nombre de paquete. Así trae todo lo nativo del dev (el
|
|
puente de audio y cámara, las notificaciones de llamada) y convive con la oficial.
|
|
- Votaciones como en asamblea: al crear una se elige Sí/No, semáforo (verde, amarillo,
|
|
rojo) o termómetro (del 1 al 5). Los resultados salen en barras.
|
|
- Borrar pide confirmación. Antes la X de una tribu la borraba de un toque.
|
|
- Iconos que se entienden en el lanzador y en la barra, en vez de letras del alfabeto
|
|
vai. La barra marca dónde estás y se esconde al escribir.
|
|
- Tribus en filas: doce comisiones caben en tres pantallas, no en diez. Dentro de una
|
|
tribu, las secciones van en una tira de fichas.
|
|
- Módulos con interruptores, agrupados como en el lanzador. Si entras en una sección
|
|
apagada, te lo dice y la enciendes de un toque.
|
|
- Pantallas más aprovechadas: un margen de 14 px en vez de los 74 que se sumaban, una
|
|
sola letra para botones, buscador en una línea y el buzón en pocas líneas por mensaje.
|
|
- Fotos más seguras: si una foto no se puede limpiar de metadatos (ubicación,
|
|
cámara…), no se sube y se avisa.
|
|
- DNS: primero el resolutor del sistema, que respeta la VPN y el DNS privado de
|
|
Android; los públicos quedan de respaldo.
|
|
|
|
---
|
|
|
|
## Lo que añade
|
|
|
|
| | Oasis oficial | Esta rama |
|
|
|---|---|---|
|
|
| Llamadas y salas | Teléfono y Salas, con micrófono y cámara | Los mismos, tal cual |
|
|
| Interfaz de móvil | El menú de escritorio en una pantalla pequeña | Tema Acampada, lanzador con iconos, fichas, barra de cuatro atajos |
|
|
| Primer arranque | Casi sesenta módulos encendidos | Modo acampada: lo justo para organizarse |
|
|
| Votaciones | Seis opciones fijas en una tabla | Sí/No, semáforo o termómetro, con barras |
|
|
| Varias identidades | Una por instalación | Varias en el mismo móvil, con aviso si dos comparten clave |
|
|
| App Android | La del dev | La del dev, con el backend de la rama y paquete propio (`net.laenre.oasis`) |
|
|
| Metadatos de las fotos | Se quitan solo si está `sharp`; en Android nunca | Se quitan siempre: GPS, marca, modelo, número de serie |
|
|
|
|
Los nombres de las categorías, los módulos y el resto de la aplicación son los de
|
|
epsylon, sin tocar. Con el tema OasisMobile se ve el del propio dev.
|
|
|
|
---
|
|
|
|
## Qué es Oasis, en cuatro dibujos
|
|
|
|
Una red social sin servidor: publicas en tu propio equipo y los demás se traen una
|
|
copia. No hay cuenta, no hay contraseña y nadie puede borrarte.
|
|
|
|

|
|
|
|
Los mensajes viajan de vecino en vecino, así que llegan a gente con la que nunca te
|
|
has conectado. Por eso funciona incluso sin internet, entre dos móviles en la misma wifi.
|
|
|
|

|
|
|
|
Un pub es solo un nodo que no se apaga nunca. No es un servidor con tus datos: no
|
|
guarda tu identidad, no decide qué ves y no puede borrarte.
|
|
|
|

|
|
|
|
Todo lo que publicas se encadena y va firmado con tu clave. Nadie puede colar un
|
|
mensaje en tu nombre ni cambiar lo que dijiste.
|
|
|
|

|
|
|
|
> La explicación completa —los saltos, las tribus, el LARP, los módulos— está en
|
|
> [Entender Oasis en diez minutos](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Entender).
|
|
|
|
---
|
|
|
|
## Llamadas y salas
|
|
|
|

|
|
|
|
El Teléfono (llamadas de uno a uno, con buzón de voz) y las Salas (hasta cincuenta
|
|
personas, con vídeo, levantar la mano, grabación y emisión) son de Oasis. En Android
|
|
el sonido y la cámara no los maneja Node: el servidor se conecta a un puente nativo de
|
|
la app (`.audio_bridge`), que graba, reproduce, saca fotogramas de la cámara y emite
|
|
ficheros.
|
|
|
|
Ese puente está en la app Android del dev, que no tiene el código publicado. Por eso la
|
|
APK de esta rama se monta sobre la oficial: se queda con su app tal cual y solo cambia
|
|
lo que corre dentro (el backend con nuestra capa) y el nombre del paquete. Probado en
|
|
el emulador: se entra en una sala y el micrófono graba.
|
|
|
|
En la barra de arriba, junto al avatar, está el botón de *No molestar* del Teléfono.
|
|
|
|
---
|
|
|
|
## La interfaz
|
|
|
|

|
|
|
|
<p align="center">
|
|
<img src="docs/capturas/01-portada.png" width="200">
|
|
<img src="docs/capturas/02-tribus.png" width="200">
|
|
<img src="docs/capturas/03-votacion.png" width="200">
|
|
<img src="docs/capturas/04-modulos.png" width="200">
|
|
</p>
|
|
<p align="center">
|
|
<img src="docs/capturas/05-ajustes.png" width="200">
|
|
<img src="docs/capturas/06-barra.png" width="200">
|
|
<img src="docs/capturas/08-salas.png" width="200">
|
|
<img src="docs/capturas/07-oasismobile.png" width="200">
|
|
</p>
|
|
|
|
Lanzador, tribus, una votación de semáforo, módulos, ajustes, la barra de atajos, las
|
|
salas del dev y el mismo lanzador con el tema OasisMobile del dev.
|
|
|
|
Casi sesenta módulos no caben en la pantalla de un teléfono: la portada los ordena por
|
|
secciones en una rejilla de iconos, como el cajón de apps del móvil. Abajo queda una
|
|
barra de cuatro atajos que eliges tú. Dentro de cada módulo los filtros van en fichas
|
|
pequeñas, para que el contenido se vea sin tener que bajar.
|
|
|
|
Solo aparecen los módulos activos. En *Ajustes → Workflows* se eligen de golpe: el de
|
|
acampada deja lo justo para organizarse. En el móvil un workflow cambia los módulos,
|
|
no el aspecto: el aspecto se elige en *Ajustes → Tema* (Acampada u OasisMobile).
|
|
|
|
---
|
|
|
|
## Cómo está hecha la rama
|
|
|
|

|
|
|
|
Oasis lo desarrolla epsylon y saca versión casi cada día. Para no tener que rehacer la
|
|
rama en cada una, lo nuestro va en ficheros propios: hojas de estilo, unas pocas
|
|
vistas, un router que va delante del suyo y el envoltorio de Android. El backend, el
|
|
middleware, los modelos y las traducciones son suyos y no se tocan. Las normas están
|
|
en la [guía de desarrollo](GUIA_DE_DESARROLLO.md) y las cifras en
|
|
[docs/FRONTERA_UPSTREAM.md](docs/FRONTERA_UPSTREAM.md).
|
|
|
|
---
|
|
|
|
## Empezar desde cero
|
|
|
|

|
|
|
|
| | |
|
|
|---|---|
|
|
| [oasis-project.pub](https://oasis-project.pub) | Directorio de pubs, con invitaciones y estado de cada uno |
|
|
| [0asis.net](https://0asis.net) | El proyecto explicado desde el principio |
|
|
| [wiki.solarnethub.com](https://wiki.solarnethub.com/socialnet/overview) | La documentación oficial, módulo por módulo |
|
|
|
|
---
|
|
|
|
## Instalar
|
|
|
|
La APK no está en ninguna tienda: se descarga de las *releases* de este repositorio
|
|
y se instala a mano, con orígenes desconocidos activado. Se instala junto al Oasis
|
|
oficial sin pisarlo —el identificador es `net.laenre.oasis`—, así que puedes tener
|
|
los dos y comparar.
|
|
|
|
Necesita unos 350 MB libres. El primer arranque tarda entre 15 y 60 segundos porque
|
|
descomprime el servidor.
|
|
|
|
> Verifica la huella de la firma antes de instalar una APK bajada de un servidor
|
|
> propio: `apksigner verify --print-certs`
|
|
|
|
### Compilar
|
|
|
|
La APK se monta sobre la oficial de la misma versión. Hace falta Java 17 o más y las
|
|
build-tools de Android (zipalign y apksigner); apktool se baja solo.
|
|
|
|
```sh
|
|
cd android
|
|
./scripts/sobre_oficial.sh # baja la oficial, le pone el backend de la rama, la firma
|
|
# para publicar, con la clave del hacklab:
|
|
OASIS_KEYSTORE=... OASIS_KEYSTORE_PASS=... OASIS_KEY_ALIAS=... ./scripts/sobre_oficial.sh
|
|
```
|
|
|
|
Sale en `android/build/sobre-oficial/oasis-<versión>-hacklab.apk`. Sin clave se firma
|
|
con la de depuración y queda depurable, para poder inspeccionarla desde
|
|
`chrome://inspect`.
|
|
|
|
El proyecto Gradle propio de `android/` (`release.sh`, Android Studio) sigue ahí, pero
|
|
ya no es el camino: no tiene el puente de audio y en él no hay llamadas.
|
|
|
|

|
|
|
|
---
|
|
|
|
## Documentación
|
|
|
|
Para desarrollar, en el propio repositorio:
|
|
|
|
| | |
|
|
|---|---|
|
|
| [GUIA_DE_DESARROLLO.md](GUIA_DE_DESARROLLO.md) | Qué se toca, qué no y cómo hacer cada cosa |
|
|
| [docs/FRONTERA_UPSTREAM.md](docs/FRONTERA_UPSTREAM.md) | Cuánto cambia el dev en cada versión, medido |
|
|
| [docs/USABILIDAD_PAD.txt](docs/USABILIDAD_PAD.txt) | Pruebas de usabilidad en el móvil |
|
|
|
|
Todo lo de arriba, en detalle, está en la
|
|
[wiki](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki):
|
|
|
|
| | |
|
|
|---|---|
|
|
| [Entender Oasis](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Entender) | La red, el gossip, los saltos, los pubs, las tribus y el LARP |
|
|
| [Empezar desde cero](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Empezar) | Invitación, seguir gente, abrir tu blog o tu tienda |
|
|
| [Llamadas](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Llamadas) | Teléfono y Salas en el móvil |
|
|
| [La interfaz](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Interfaz) | Botón por botón |
|
|
| [Identidades](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Identidades) | Varias cuentas en el mismo móvil |
|
|
| [Compilar la APK](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Compilar) | Y cómo se publica una versión |
|
|
| [Estructura del código](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Estructura) | Dónde vive cada fichero y por qué ahí |
|
|
| [Si algo va mal](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Problemas) | Los fallos que han pasado de verdad |
|
|
| [Qué NO tiene](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Limitaciones) | Lo que falta respecto al oficial, sin adornos |
|
|
|
|
---
|
|
|
|
## El proyecto original
|
|
|
|
Esta rama existe gracias a y por encima de el trabajo de epsylon. El código, la
|
|
arquitectura, los módulos y la red son suyos.
|
|
|
|
- Código: https://github.com/epsylon/oasis
|
|
- Proyecto: https://solarnethub.com
|
|
- Wiki: https://wiki.solarnethub.com/socialnet/overview
|
|
|
|
## Licencia
|
|
|
|
AGPL-3.0, la misma que el proyecto original.
|