Fase 0 — cerrada

Informe técnico de viabilidad

Solo APIs oficiales y capacidades disponibles para una aplicación normal. Sin root, sin jailbreak, sin exploits, sin APIs privadas, sin permisos privilegiados y sin saltarse a los operadores.
PROTOTIPO WEB / ESPECIFICACIÓN

Respuesta directa

Conecta es construible con confirmaciones del sistema, no con automatización total. El objetivo de cero interacción física se cumple; el de cero toques no, y la razón es una política de Android y de iOS, no una decisión de diseño.

1. Viabilidad general

  • NO VIABLE Ninguna aplicación de terceros puede encender el tethering con Internet. Android lo protege con TETHER_PRIVILEGED (firma, sistema, dueño del dispositivo o privilegios de operador); iOS no expone ninguna API del Hotspot Personal. Es el muro duro y no tiene rodeo legítimo.
  • CONFIRMACIÓN DEL USUARIO Sí se puede abrir con un toque el panel de Ajustes y guiar a quien ayuda, en su propio teléfono.
  • CONFIRMACIÓN DEL USUARIO Sí se puede unir el solicitante sin teclear ni escuchar la contraseña: WifiNetworkSpecifier / WifiNetworkSuggestion en Android, NEHotspotConfiguration en iOS. Un aviso del sistema, en su propio teléfono.
  • AUTOMÁTICO Todo lo demás —descubrimiento, solicitud, aceptación, negociación de MB, tiempo y consentimiento, transporte cifrado de la credencial, estado de sesión, finalización y registro local— es automatizable con APIs públicas.
  • NO VIABLE El teléfono sin Internet no puede hablar con el servidor hasta conectarse. Se resuelve con arquitectura local primero y sincronización posterior.

2. Cero interacción física entre usuarios

Requisito innegociable: dos desconocidos no deben conocerse, hablarse, verse, intercambiar teléfonos ni dictarse contraseñas. "Cercano" significa solo proximidad de radio.

Punto crítico descubierto: la app no puede leer el nombre ni la contraseña del hotspot del sistema (getWifiApConfiguration es privilegiada en Android; en iOS no existe equivalente). Para no obligar a dictar contraseñas ni a mostrar un QR en la pantalla ajena —ambas cosas rompen el principio—, el mecanismo propuesto es que quien ayuda registre una sola vez su red en Conecta, cifrada en su propio dispositivo (Keystore o Keychain), y que Conecta la transmita cifrada y de un solo uso por el canal entre teléfonos. Wi-Fi Easy Connect (DPP) queda como plan B en Android moderno.

HIPÓTESIS TÉCNICA — REQUIERE VALIDACIÓN EN HARDWARE

3. Android → Android

  • Descubrimiento: anuncio y escaneo BLE, más Wi-Fi Direct o Wi-Fi Aware; en segundo plano con un servicio en primer plano.
  • Negociación por canal cifrado entre los dos teléfonos.
  • Quien ayuda activa el hotspot en Ajustes; quien pide confirma el diálogo de WifiNetworkSpecifier. Dos toques en total, uno en cada teléfono.

Veredicto: viable con confirmación. Es la mejor combinación.

4. iPhone → iPhone

  • MultipeerConnectivity y CoreBluetooth son fiables en primer plano; anunciar "estoy disponible" en segundo plano es limitado y poco predecible.
  • Quien ayuda debe activar el Hotspot Personal en Ajustes, sin enlace directo garantizado desde la app.
  • Quien pide se une con NEHotspotConfiguration.

Veredicto: viable con fricción.

5. Android pide → iPhone ayuda

Solo BLE sirve entre plataformas (MultipeerConnectivity no interopera). El iPhone que ayuda debe estar prácticamente en primer plano y activar el Hotspot Personal a mano. Android se une con WifiNetworkSpecifier. Veredicto: viable con fricción.

6. iPhone pide → Android ayuda

El ayudante Android puede anunciar en segundo plano y abrir el panel de Ajustes; el iPhone se une con NEHotspotConfiguration. Veredicto: viable con confirmación.

Lo determinante es quién ayuda: un ayudante Android da buena experiencia; un ayudante iPhone añade fricción.

7. Hotspot y tethering

CapacidadAndroidiOS
Encender el tethering con Internet desde la appNO VIABLENO VIABLE
Abrir el panel de Ajustes correspondienteCONFIRMACIÓN DEL USUARIOVIABLE CON FRICCIÓN
Leer nombre y clave del hotspot del sistemaNO VIABLENO VIABLE
Compartir Internet por Wi-Fi Direct o startLocalOnlyHotspotNO VIABLENO VIABLE
Cortar el tráfico del invitado al llegar al límiteNO VIABLENO VIABLE

Consecuencia de producto: el límite de MB es acordado y aproximado, no impuesto. La app avisa, muestra el estimado y facilita terminar la sesión.

8. Credenciales y conexión

  • Android: WifiNetworkSpecifier (conexión puntual con diálogo del sistema), WifiNetworkSuggestion (sugerencia persistente) y Wi-Fi Easy Connect/DPP.
  • iOS: NEHotspotConfiguration del framework NetworkExtension, con su entitlement.
  • La credencial es de un solo uso y se borra al terminar la sesión.
HIPÓTESIS TÉCNICA — REQUIERE VALIDACIÓN EN HARDWARE

9. Descubrimiento local

TecnologíaPlataformaSirve sin InternetNota
Bluetooth Low Energy (GATT)Android e iOSÚnica vía interoperable entre plataformas
Wi-Fi DirectAndroidNo transporta Internet del ayudante
Wi-Fi Aware (NAN)Android 8+Depende del hardware del teléfono
Nearby ConnectionsAndroidRequiere servicios de Google
MultipeerConnectivityiOSNo interopera con Android

10. Seguridad

Identidades y claves efímeras por sesión, autenticación mutua, acuerdo de clave X25519, derivación HKDF, cifrado autenticado AES-GCM, nonces con ventana antirrepetición, caducidad, identificador de sesión y borrado de secretos al cerrar. Nada de esto necesita servidor. Ver seguridad y privacidad.

11. Privacidad

Alias efímeros, distancia en rangos, reputación agregada y ningún dato personal. Nunca teléfono, correo, nombre completo, dirección ni coordenadas.

12. Política de uso justo y prevención de abuso

  • Límite de tiempo y de MB por sesión, fijados por quien ayuda y visibles antes de aceptar.
  • Límite de frecuencia por ventana temporal: modelado, todavía no aplicado.
  • Historial de ayudas dadas y recibidas como base de la futura detección de patrones.
  • Se distingue el uso frecuente legítimo de la dependencia sistemática. Nunca hay bloqueo automático por pedir ayuda varias veces.
  • Las emergencias tienen prioridad conceptual y nunca quedan bloqueadas por esta política.
  • Quien ayuda elige, acepta o rechaza sin penalización y termina al instante.
  • Sin economía de dependencia: la reputación genera confianza, no recompensas por recibir datos.

“Conecta es para ayuda puntual, no para sustituir tu servicio de datos.”

En uso frecuente: “Has utilizado varias ayudas recientemente. Conecta está diseñado para situaciones puntuales, no como sustituto de un servicio de datos. Si necesitas conexión con frecuencia, considera contratar un servicio de datos adecuado.”

13. Restricciones de operadores

El operador o el plan pueden bloquear o tarifar el tethering, y ninguna app puede sortearlo ni consultarlo de forma fiable. Conecta lo presenta como estado externo: “El operador o plan de datos puede impedir compartir Internet.”

14. Restricciones de los sistemas operativos

  • Android: permisos de Bluetooth y de dispositivos cercanos en tiempo de ejecución, servicio en primer plano para anunciar, y restricciones agresivas de batería en Samsung, Xiaomi y Huawei.
  • iOS: segundo plano muy limitado para BLE y MultipeerConnectivity, sin API de Hotspot Personal, sin enlace directo garantizado a ese ajuste, y revisión de App Store estricta con NetworkExtension.
  • Ambos: prompt del sistema obligatorio para unirse a una red propuesta por una app.

15. MVP recomendado

Orden recomendado: Android→Android, luego iPhone pide con ayudante Android, luego iPhone→iPhone, y por último Android pide con ayudante iPhone. Detalle en el prototipo Android y el prototipo iPhone.

16. Plan de pruebas con dispositivos físicos

Nada se declara validado sin registro de prueba física. El plan completo A–S, con estados PASS, FAIL, BLOCKED y NOT TESTED, está en el plan de pruebas.