22 votos

¿Por qué necesitamos un teléfono con root para capturar imágenes de pantalla?

Me doy cuenta de que para capturar capturas de pantalla de mi teléfono, todas las aplicaciones de captura de pantalla requieren que tenga un teléfono rooteado. ¿Por qué es así? ¿Por qué no podemos tener una simple aplicación de captura de pantalla para Android, como la que tenemos para Windows?

2 votos

Siempre me ha parecido interesante que el iPhone implemente esta función desde el principio, mientras que en Android es un asunto importante para habilitarla.

1 votos

Tenga en cuenta que desde aproximadamente Android 4.0, es posible tomar una captura de pantalla manteniendo los botones de bajar el volumen y encender; esta es una funcionalidad que viene de fábrica, no se requiere ninguna aplicación (anotado aquí para la posteridad y los motores de búsqueda)

17voto

mercutio Puntos 5828

La respuesta es bastante simple, es una cuestión de permisos.

Android utiliza lo que se llama framebuffer para la pantalla de vídeo. El "framebuffer" se encuentra en /dev/graphics/fb0. este "archivo", que es básicamente un flujo al que el dispositivo escribe cuando se producen cambios en la interfaz de usuario, contiene ~2 cuadros de la pantalla de visualización.

Los permisos del archivo framebuffer son rw- rw- --- . Observe que el último "grupo" tiene 3 "-". Eso significa básicamente que si no eres el owner (que es Root) no tienes permiso ni siquiera para leer de ese archivo.

Si hubiera una aplicación instalada en el sistema, que pudiera hacer capturas de pantalla, tendría permiso para leer desde el framebuffer. Lo cual, creo, es la forma en que el Motorola Xoom es capaz de tomar capturas de pantalla. Tiene una aplicación instalada en el dispositivo, como una aplicación de sistema.

La lectura del framebuffer, para un desarrollador, es en realidad simple, si tienen acceso a leerlo.

1 votos

Parece que Google debería actualizar los permisos en r-- . Esto puede crear un riesgo de seguridad si cualquier aplicación puede espiar su pantalla, pero no sería sólo uno de los permisos ( Esta aplicación puede controlar tu pantalla ) que tiene que aceptar antes de la instalación? O eso o Google debería añadir una captura de pantalla integrada en el menú desplegable, y así nadie más tendría acceso a ella. Esto último podría ser perfectamente el caso, quiero decir que acaban de añadir la vista previa de impresión a Chrome.

3 votos

Creo que el mod de o+r sería un problema de seguridad si cualquier aplicación del mercado pudiera leer la pantalla.

0 votos

Creo que depende. El sistema operativo de Windows no impide que las aplicaciones tomen su captura de pantalla. Hasta ahora, ¿hemos escuchado algún problema de seguridad causado por la captura de pantalla?

7voto

Joe Shaw Puntos 6386

Debido al enfoque de seguridad de Android, que se centra en separar todas las aplicaciones de los datos de las demás, para evitar que las aplicaciones maliciosas roben o alteren los datos de las aplicaciones en las que confías, no pueden permitir que una aplicación tome capturas de pantalla de otras aplicaciones.

Piensa en cuántas de tus aplicaciones son capaces de hacer cosas como el OCR para traducir imágenes a texto, puedo pensar en al menos cuatro aplicaciones en mi teléfono que pueden hacer esto, el ejemplo principal es Google Goggles OCRing títulos de libros, y también OCRing y luego la traducción de bloques de texto en idiomas extranjeros. Tengo una aplicación de base de datos de contraseñas en mi teléfono con una base de datos encriptada de mis contraseñas para varios sistemas. Una aplicación de salvapantallas maliciosa podría esperar hasta que la aplicación de contraseñas se esté ejecutando, tomar una foto de la pantalla con los datos de acceso, luego hacer un OCR y enviarla. También podría hacer lo mismo para todo lo que está en tu lista de contactos, incluso si no le das permiso a la aplicación para la base de datos de contactos, o el historial de tu navegador, o los registros de chat y así sucesivamente. Esta es sólo una forma en la que podría abusar del acceso a tu pantalla.

Por eso, para que la captura de pantalla sea universal, debe estar en el sistema operativo (al que ya se le confían todos los datos). Por eso en los teléfonos que tienen la función de captura de pantalla incorporada se ha añadido como parte del sistema, no como una aplicación separada.

Si se roba el teléfono y se permite que una aplicación tome capturas de pantalla, se está diciendo que se confía implícitamente en esa aplicación para que pueda hacer todo lo que el sistema puede hacer, incluido el acceso e interferencia con otras aplicaciones y sus datos, y que se confía plenamente en que no se abusará de ese acceso. Eso es algo que Android nunca va a permitir que haga nada excepto el sistema/OS.

6voto

Piskvor Puntos 320

Respuesta corta: Porque 1) los ordenadores son complicados y 2) la funcionalidad de la captura de pantalla no es realmente muy sencilla (para el programador, no para el usuario).

En otras palabras, hacer una captura de pantalla requiere que el proceso de captura de pantalla se enganche muy profundamente en el interior del sistema operativo, se enrede un poco con ellos y se desenganche de nuevo. Como Android intenta tener un modelo de seguridad incorporado (en contraposición al "atornillado" que se ve en Windows), al hacer una captura de pantalla se tropieza con varias barreras de seguridad. Esos puede se pasen por alto, pero la única forma actualmente práctica (aparte de crear agujeros - y vulnerabilidades potenciales - en el núcleo) es utilizar la todopoderosa cuenta root, que no está sujeta a las limitaciones.

1 votos

No sé mucho sobre el funcionamiento del hardware de los ordenadores, pero supongo que la GPU envía una "imagen" a la pantalla. ¿No se podría interceptar esa imagen y guardarla?

2 votos

@John Isaacks, eso es básicamente lo que sucede con el framebuffer. ver mi respuesta en cuanto a por qué todavía requiere Root.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X