Sí, FLAG_SECURE sigue funcionando en Android 15. Marca una ventana como segura y bloquea las capturas de pantalla y la grabación de esa ventana a través de la API MediaProjection, y Android 15 no lo eliminó, sino que suma una protección automática que oculta los campos de contraseña visibles durante una grabación. Pero es un control del lado del cliente: en un dispositivo con root o con ADB, hay herramientas y módulos que pueden anularlo, y una cámara externa siempre puede fotografiar la pantalla. Trátalo como una capa útil, no como una garantía.
Respuesta rápida
FLAG_SECURE es la marca oficial de Android para declarar una ventana segura, y en Android 15 sigue bloqueando capturas y grabación por MediaProjection de esa ventana. Según la documentación de Android, es la forma recomendada de proteger pantallas sensibles. El límite honesto es que se puede sortear en dispositivos con root, con ADB o con una cámara externa, así que funciona bien contra capturas casuales pero no es infranqueable ante un atacante que controla el dispositivo.
Qué es FLAG_SECURE y qué hace
FLAG_SECURE es un indicador de la ventana, WindowManager.LayoutParams.FLAG_SECURE, que existe en Android desde hace muchas versiones. Cuando lo activas en una actividad, el sistema trata esa ventana como contenido protegido: las capturas de pantalla del usuario salen en negro, la grabación de pantalla no registra ese contenido y la ventana no aparece en pantallas no seguras ni al compartir la pantalla. Es una sola línea de configuración, y por eso es el primer recurso para proteger pantallas con datos sensibles.
Lo importante es entender su alcance. FLAG_SECURE actúa a nivel del sistema de ventanas, así que no depende de que tu código detecte nada: el propio Android impide que ese contenido llegue a una captura o a un grabador que use la ruta estándar. Eso lo hace muy eficaz contra el caso más común, que es alguien intentando hacer una captura o grabar la pantalla con una app normal. No cifra datos ni protege la red; su único trabajo es que esa ventana no acabe en una imagen o un vídeo del sistema.
Funciona FLAG_SECURE en Android 15?
Sí. Android 15 no retiró FLAG_SECURE y su comportamiento base se mantiene: la ventana marcada sigue quedando fuera de las capturas y de la grabación por MediaProjection. Si actualizaste a Android 15 y temías que hubiera dejado de proteger tus pantallas, la respuesta directa es que sigue vigente y no necesitas cambiar nada para que la protección básica funcione.
Android 15 además añade mejoras propias. Cuando el sistema detecta una sesión de grabación de pantalla en curso, oculta automáticamente las ventanas que muestran una contraseña visible, incluso sin que tú marques nada, lo que reduce fugas de credenciales. Aun así, esa detección se centra en grabadores que usan la API MediaProjection: métodos que no pasan por esa API, como capturas por ADB o binarios del sistema, pueden no ser reconocidos como grabación. Por eso Android 15 sube el nivel, pero no convierte a FLAG_SECURE en una barrera absoluta.
Condiciones de bypass conocidas
Aquí hablamos en clave defensiva, para modelar la amenaza sobre tu propia app y en un dispositivo de prueba, no para dar recetas de ataque. La condición principal es el control del dispositivo. En un teléfono con root, un atacante puede cargar módulos que interceptan la llamada donde se aplica el indicador y hacer que el sistema ignore FLAG_SECURE para esa ventana. Con ADB habilitado o en una ROM personalizada, existen rutas de captura que no pasan por la API estándar y que, por tanto, escapan a la protección y a la detección.
La otra condición no depende del software en absoluto: es el hueco analógico. Nada impide que alguien apunte una segunda cámara a la pantalla y fotografíe o grabe lo que ve, y contra eso ningún indicador del sistema puede hacer nada. La conclusión práctica es que FLAG_SECURE detiene al usuario o a la app corriente, pero no a un adversario que tiene root, acceso físico o herramientas fuera de la ruta normal. Ese es el modelo de amenaza real con el que conviene diseñar.
Cómo probarlo de forma segura
La forma correcta de comprobarlo es sobre tu propia aplicación, en tu propio dispositivo o en un emulador que controlas. Activa FLAG_SECURE en la actividad sensible, intenta hacer una captura de pantalla normal y confirma que sale en negro, y luego prueba a grabar la pantalla con un grabador que use MediaProjection para verificar que ese contenido no aparece. Esa comprobación cubre el caso que de verdad importa a la mayoría de las apps.
Para ir más allá, añade el callback de detección de captura que Android ofrece desde Android 14, de modo que tu app sepa cuándo alguien hace una captura y pueda reaccionar, por ejemplo registrando el evento. Prueba también en un dispositivo con root propio para ver hasta dónde llega la protección en ese escenario. La regla es simple: haz todas estas pruebas sobre software tuyo, con permiso, y usa los resultados para decidir qué datos puedes mostrar en pantalla y cuáles no deberían aparecer nunca.
Qué protección real conviene usar
Como FLAG_SECURE no es infranqueable, lo correcto es tratarlo como una capa dentro de una defensa en profundidad, no como la única barrera. El principio más sólido es no mostrar en pantalla lo que no hace falta: si un dato es muy sensible, plantéate no exhibirlo completo, enmascararlo o mantenerlo solo en el servidor. Lo que nunca se dibuja en la pantalla no se puede capturar, y esa es la protección más fiable de todas.
Sobre esa base, combina varias señales. Usa FLAG_SECURE en las pantallas sensibles, añade el callback de detección de capturas para tener visibilidad, y apóyate en atestación del lado del servidor, como Play Integrity, para reconocer dispositivos comprometidos o con root y ajustar qué muestras en ese contexto. Este enfoque corresponde al grupo de resiliencia de OWASP MASVS, con una advertencia honesta: los controles de resiliencia elevan el coste del ataque, pero no garantizan nada frente a quien controla por completo el dispositivo. Por eso la decisión de fondo sigue siendo qué datos expones.
Qué bloquea y qué no
Ver de un vistazo el alcance real evita expectativas equivocadas. La tabla resume qué detiene FLAG_SECURE y qué no.
| Escenario | FLAG_SECURE lo bloquea? |
|---|---|
| Captura de pantalla del usuario | Sí |
| Grabación con MediaProjection | Sí |
| Aparecer al compartir pantalla | Sí |
| Captura por ADB o binario del sistema | No siempre |
| Dispositivo con root y módulos | No |
| Cámara externa apuntando a la pantalla | No |
Lee las tres primeras filas como el caso común, que sí queda cubierto, y las tres últimas como el modelo de amenaza avanzado, que no.
Lista de verificación
Antes de confiar en la protección de pantalla, repasa estos puntos. La lista cubre lo esencial.
| Comprobación | Acción | Hecho? |
|---|---|---|
| FLAG_SECURE activo | Marcar la actividad sensible como segura | [ ] |
| Verificado en Android 15 | Confirmar captura en negro y grabación bloqueada | [ ] |
| Detección de capturas | Añadir el callback desde Android 14 | [ ] |
| Datos minimizados | No mostrar en pantalla lo innecesario | [ ] |
| Atestación de dispositivo | Usar Play Integrity para detectar root | [ ] |
| Expectativa realista | Tratar FLAG_SECURE como una capa, no garantía | [ ] |
El punto que más se olvida es el cuarto: si un dato no aparece en pantalla, ninguna técnica de captura puede robarlo.
Donde encaja el analisis de seguridad
Configurar FLAG_SECURE es tarea tuya; comprobar cómo trata tu app los datos sensibles en general es una verificación distinta, y ahí ayuda un análisis.
Un escáner como PTKD.com analiza el paquete de tu app Android o iOS y señala problemas de seguridad, como claves expuestas, almacenamiento inseguro o permisos excesivos, y los relaciona con OWASP MASVS. Para ser claros con el límite: PTKD no comprueba si una ventana concreta tiene FLAG_SECURE activo en tiempo de ejecución, porque eso es un comportamiento dinámico de tu código. Lo que aporta es una revisión de la superficie de seguridad de la app, y como decidir qué datos sensibles proteger es parte de esa superficie, revisar la app es un buen momento para confirmar que no dependes de una sola barrera.
Qué recordar
- FLAG_SECURE sigue funcionando en Android 15: bloquea capturas y grabación por MediaProjection de la ventana marcada, y Android 15 no lo eliminó.
- Android 15 añade protección automática de campos de contraseña durante la grabación, pero esa detección se centra en grabadores que usan la API MediaProjection.
- Es un control del lado del cliente: se puede sortear con root, con ADB, con ROMs personalizadas o con una cámara externa, así que no es infranqueable.
- La protección más fiable es no mostrar en pantalla lo innecesario; combina FLAG_SECURE con el callback de detección de capturas y atestación como Play Integrity, dentro del grupo de resiliencia de OWASP MASVS.
- Trata FLAG_SECURE como una capa dentro de una defensa en profundidad, y usa una herramienta como PTKD.com para revisar el resto de la superficie de seguridad de la app.




