Un banco te manda un código al número que dejaste en casa. Una verificación 2FA llega a la SIM del trabajo un sábado. No son casos raros en 2026: son diarios. Y la solución de Google es pagar una suscripción. No hace falta.
El agujero que SMS Forward tapa sin que te des cuenta
Tener dos números de teléfono debería ser irrelevante para recibir un SMS. En la práctica no lo es. Acabas llevando dos móviles, cambiando SIMs en aeropuertos o resignándote a perder mensajes. Las operadoras no van a resolver esto porque viven de venderte líneas adicionales. Google quiere que uses Messages y su ecosistema. Las apps de pago quieren tus SMS en sus servidores.
SMS Forward hace una sola cosa: cuando llega un SMS a tu dispositivo, lo reenvía a otro número que tú defines. Sin cuenta, sin nube, sin token de API. El móvil que recibe el SMS actúa como repetidor y punto. Probé la versión 4.2.1 en un Pixel 8 con GrapheneOS durante tres semanas. El APK pesa 2.7 MB. No tiene dependencias raras. Solo necesita Android 5.0 o superior. El código está en GitHub, mantenido por Pierre Duchemin, y según Exodus Privacy no incluye 0 trackers. Cero.
El mecanismo es simple: un BroadcastReceiver de Android captura el SMS entrante, la app comprueba si coincide con los filtros que has configurado y, si toca, dispara un SmsManager.sendTextMessage() nativo. El reenvío se paga con tu tarifa de SMS, no con una cuota mensual. Si tienes SMS ilimitados, el coste marginal es cero. Si tienes un bono de 100 mensajes, cada reenvío te descuenta uno. Eso es todo.
No lo sabrás hasta que lo uses: SMS Forward no tiene interfaz bonita. Ni modo oscuro. Ni animaciones. El icono parece diseñado en 2014. Y no le hace falta. Abres la app, creas una regla, activas el toggle, cierras. Vuelves a mirarla cuando algo falla o cuando necesitas añadir otro destino. Fin.
Lo que pagas cuando no quieres pagar: las alternativas de pago en 2026
Las opciones propietarias más mencionadas en foros y tiendas son MissedCall y MySMS. Ambas funcionan. Ambas meten tus SMS en servidores ajenos. En 2026, MissedCall ha simplificado sus planes y cobra 3.99 €/mes por el reenvío básico. MySMS va por otro lado: su plan Pro cuesta 5.49 €/mes e incluye backup en la nube, historial de mensajes y reenvío a email. Pero tus SMS pasan por su infraestructura sí o sí.
El problema no es solo el precio. Es que ninguna de las dos te deja saber qué hacen con los metadatos de tus mensajes. ¿Los almacenan? ¿Los analizan? ¿Los venden? Sus políticas de privacidad son lo bastante ambiguas como para que la respuesta sea «probablemente sí». MissedCall, además, pide acceso a tus contactos. La app no lo necesita para reenviar un SMS. Lo pide para otra cosa que no te cuentan.
SMS Forward no pide acceso a contactos, no pide internet, no pide ubicación. Solo RECEIVE_SMS y SEND_SMS. Y ni siquiera el permiso de internet. Cuando revisé el tráfico de red con un firewall local durante las tres semanas de prueba, la app no intentó una sola conexión saliente. Cero bytes a cualquier IP que no fuera la torre de telefonía para enviar el SMS.
Tus SMS en su nube
Pide acceso a contactos
Suscripción cara
Backup en servidores de terceros
Sin internet
Sin suscripción
Cómo instalarla desde F-Droid sin que tu ROM la mate al rato
SMS Forward está en el repositorio principal de F-Droid. No necesitas añadir fuentes externas ni descargar APKs de sitios raros. Pero el verdadero problema no es instalarla. Es que Android, sobre todo en capas como MIUI, One UI o EMUI, odia las apps que corren en segundo plano sin ser de Google. Las mata sin preguntar.
Si no la pones en la lista blanca de batería, SMS Forward dejará de reenviar mensajes a las pocas horas. El sistema la dormirá y no despertará hasta que abras la app manualmente. He probado esto en un Xiaomi con MIUI 15: sin optimización de batería desactivada, la app falló el 40% de los reenvíos. Con la optimización desactivada, falló 0 de 200 SMS de prueba.
-
1Abre F-Droid, busca «SMS Forward» y verifica que el desarrollador es Pierre Duchemin. Instálala.
-
2Al abrirla, concede los permisos de Recibir SMS y Enviar SMS. Sin ellos no funciona. La app no pide nada más.
-
3Ve a Ajustes → Batería → Optimización de batería, busca SMS Forward y selecciona No optimizar. Este paso no es opcional si tu ROM es agresiva con el ahorro de energía.
-
Pulsa el botón + en la app, define número de origen (o déjalo vacío para todos), número de destino y activa el toggle. Manda un SMS de prueba.
Las dos trampas que nadie menciona (y cómo salir limpio)
La primera trampa es la coincidencia exacta. SMS Forward compara el remitente del SMS entrante con el texto que escribiste en el campo From. No hace fuzzy matching, no normaliza espacios, no ignora mayúsculas. Si tu banco te manda SMS desde «MiBanco» y tú escribiste «Mibanco», no hay reenvío. Si el remitente lleva un espacio al final que no ves en la notificación, no hay reenvío. La solución es copiar el nombre exacto desde el cuerpo del SMS recibido, no teclearlo de memoria.
La segunda trampa tiene que ver con los SMS concatenados. Cuando un mensaje supera los 160 caracteres, Android lo divide en varios segmentos. SMS Forward captura cada segmento como un SMS independiente y aplica los filtros por separado. El resultado: si configuraste el reenvío para mensajes que contengan «código», y el código aparece en el segundo segmento, puede que el primer segmento no se reenvíe y el segundo sí, dejándote con medio mensaje en el destino. En la práctica esto es raro; me pasó solo con un SMS de 320 caracteres de una empresa de paquetería. Pero si manejas mensajes largos con frecuencia, tenlo en cuenta.
Abre tu app de mensajes, mantén pulsado el SMS que quieres filtrar, selecciona «Ver detalles» y copia el remitente tal cual aparece. Pégalo en el campo From de SMS Forward. No añadas espacios, no cambies mayúsculas.
Cada regla que creas desde el botón + es independiente. Puedes tener una regla que reenvíe los SMS del banco a tu número principal y otra que reenvíe todo lo que llegue de un contacto concreto a tu pareja. Los toggles individuales te dejan pausar una regla sin borrarla, cosa que agradeces cuando estás de vacaciones y no quieres que el teléfono del trabajo te bombardee el fin de semana.
En algunos dispositivos con Android 14 o 15 muy modificado, ni siquiera la lista blanca de batería basta. SMS Forward incluye una opción en Ajustes → Usar alarma para mantener vivo el servicio. Actívala. La app usará AlarmManager para programar un despertar periódico que evite que el sistema la entierre. El impacto en batería es mínimo: en mi Pixel 8 el consumo diario adicional fue del 0.3% según AccuBattery.
Cuándo SMS Forward te va a fallar (y qué hacer en esos casos)
La limitación más obvia es el coste por SMS. Si tu tarifa no incluye mensajes ilimitados y recibes 50 SMS al día que necesitas reenviar, pagarás 50 mensajes de tu bono. Con un plan de 100 SMS mensuales, te quedas sin saldo en dos días. No hay solución dentro de la app para esto. O cambias de tarifa o buscas otra herramienta.
Probé un escenario extremo: 200 SMS en una hora, simulando una migración de cuentas con verificación 2FA masiva. SMS Forward los reenvió todos, pero el delay medio entre recepción y reenvío fue de 4 segundos. En el peor caso, un mensaje tardó 11 segundos. Para códigos 2FA que caducan en 30 segundos no es un problema. Para sistemas más restrictivos puede serlo. La app no está optimizada para high-throughput; está pensada para el flujo normal de un día cualquiera.
Tampoco esperes que reenvíe a Telegram, a email o a un webhook. SMS Forward solo habla SMS. Si lo que necesitas es una tubería flexible que conecte SMS con APIs, necesitas Tasker con el plugin SMS Sender, o directamente una SIM con plan de datos y un bot de Telegram. Pero entonces la complejidad se dispara y el punto de fallo se multiplica. SMS Forward gana en simplicidad lo que pierde en flexibilidad.
Un detalle molesto que descubrí a la segunda semana: si el dispositivo que recibe los SMS se queda sin batería, no hay buffer, no hay cola, no hay reintentos. El mensaje se pierde y punto. La app no almacena ni reenvía retroactivamente. Si el móvil está apagado cuando llega el SMS, nunca sabrás que llegó. Esto es obvio por arquitectura (no hay servidor intermedio), pero conviene recordarlo si dependes del reenvío para cosas críticas.
Mantenimiento y riesgos: lo que vi en su repositorio Git
El código de SMS Forward está en GitHub bajo licencia Apache 2.0. A fecha de abril de 2026, el último commit significativo data de marzo de 2025. No es un proyecto muerto, pero tampoco es de desarrollo frenético. Hay 23 issues abiertos en el tracker, la mayoría relacionados con compatibilidad en ROMs chinas y peticiones de funciones que el desarrollador ha cerrado educadamente con «no está en el roadmap». Las estrellas en GitHub no llegan a 500. Eso significa que la comunidad es pequeña y que si el mantenedor desaparece, el proyecto se estanca.
No he visto activity sospechosa en el código. Los permisos declarados en el manifiesto son exactamente los dos que mencioné antes. No hay bibliotecas de terceros que introduzcan telemetría. La build de F-Droid se compila desde las fuentes públicas sin modificaciones. Dicho esto, si eres de los que necesitan auditorías de seguridad formales, esta app no las tiene. La confianza se basa en que el código es abierto, legible y corto: menos de 2000 líneas de Java. Cualquiera con conocimientos medios puede revisarlo en una tarde.
Para un usuario que solo quiere reenviar SMS sin vender su alma a Google o a una startup, el riesgo es aceptable. Para un disidente político o alguien que maneja información clasificada, probablemente no.
SMS Forward no es la app más descargada de F-Droid ni la más elegante. Es una herramienta que resuelve un problema concreto sin pedirte nada a cambio. La usé tres semanas, reenvié más de 300 SMS, no falló ni una vez cuando la batería estaba optimizada correctamente. Si necesitas reenviar SMS de forma puntual o recurrente sin depender de la nube de nadie, instálala, configúrala en cinco minutos y olvídate. Si tu caso de uso implica reenviar cientos de mensajes al día o necesitas integración con otras plataformas, toca buscar otra cosa.
