¿Por qué necesitamos un teléfono rooteado para capturar capturas de pantalla en versiones anteriores de Android?


21

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é esto es tan? ¿Por qué no podemos tener una aplicación de captura de pantalla simple para Android, al igual que tenemos para Windows?


2
Siempre me ha parecido interesante que el iPhone implemente esta característica de forma inmediata, mientras que es un asunto importante habilitar en Android.
shambleh

1
Tenga en cuenta que, desde aproximadamente Android 4.0, es posible tomar una captura de pantalla manteniendo presionados los botones Bajar volumen + Encendido; esta es una funcionalidad lista para
usar

Respuestas:


17

La respuesta es bastante simple, es un problema de permisos.

Android usa lo que se llama un framebuffer para la pantalla de video. El framebuffer está ubicado en / dev / graphics / fb0. Este "archivo", que es básicamente una secuencia en la que el dispositivo escribe cuando se producen cambios en la interfaz de usuario, contiene ~ 2 cuadros de la pantalla.

Los permisos en el archivo framebuffer son rw- rw- ---. Tenga en cuenta que el último "grupo" tiene 3 "-" 's. Básicamente, eso significa que si usted no es el owner(que es root), ni siquiera tiene permiso para leer ese archivo.

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

Leer el framebuffer, para un desarrollador, es realmente simple, si tienen acceso para leerlo.


1
Parece que Google debería actualizar los permisos r--. Esto puede crear un riesgo de seguridad si alguna aplicación puede espiar su pantalla, pero ¿no sería uno de los permisos ( esta aplicación puede monitorear su pantalla ) que tiene que aceptar antes de instalar? O eso, o Google debería agregar una captura de pantalla integrada en el menú desplegable, para que nadie más tenga acceso a ella. Este último puede ser el caso, quiero decir que ahora están agregando vista previa de impresión a Chrome.
JD Isaacks

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

Creo que depende El sistema operativo 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?
Cheok Yan Cheng

No es necesario tomar capturas de pantalla en Windows, hay formas mucho más fáciles de obtener datos de una máquina con Windows. El móvil, creo, es una preocupación mayor. Solo piense en aplicaciones como Square, que procesa tarjetas de crédito. Si escribiera un servicio que escuchó cuando se robó la tarjeta, podría hacer posible una captura de pantalla e información de tracción como el número de tarjeta de crédito, nombre, etc.
Ryan Conrad

7

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

Piense en cuántas de sus aplicaciones pueden hacer cosas como OCR para traducir imágenes a texto, puedo pensar en al menos cuatro aplicaciones en mi teléfono que pueden hacer esto, un buen ejemplo es los títulos de libros de Google Goggles OCRing, y también OCRing y luego traducción de bloques de texto en idiomas extranjeros. Ahora piense en cuántas de sus aplicaciones ponen texto en la pantalla que no desea que vea una aplicación no confiable, tengo una aplicación de base de datos de contraseñas en mi teléfono con una base de datos cifrada de mis contraseñas para varios sistemas, una aplicación de protector de pantalla maliciosa podría esperar hasta que se ejecute la aplicación de contraseña, tome una fotografía de la pantalla con los detalles de inicio de sesión, luego OCR y envíelos. También podría hacer lo mismo para todo en su lista de Contactos, incluso si no le da permiso a la aplicación a su base de datos de Contactos o al historial de su navegador, o registros de chat, etc. Esta es solo una de las formas en que podría abusar del acceso a su pantalla.

Es por eso que para que la captura de pantalla sea universal debe estar en el sistema operativo (en el que ya confía con todos sus datos). Es por eso que en los teléfonos que tienen la función de captura de pantalla incorporada, se ha agregado como parte del sistema, no como una aplicación separada.

Si rooteas tu teléfono y permites que una aplicación tome capturas de pantalla, entonces estás diciendo que confías implícitamente en esa aplicación para poder hacer todo lo que el sistema puede hacer, incluido acceder e interferir con otras aplicaciones y sus datos, y que confía totalmente en no abusar de ese acceso. Eso no es algo que Android permita nunca, excepto el Sistema / Sistema operativo.


6

Respuesta corta: porque 1) las computadoras son complicadas y 2) la funcionalidad de captura de pantalla no es realmente muy simple (para el programador, no para el usuario).

En otras palabras, tomar una captura de pantalla requiere que el proceso de captura de pantalla se enganche bastante en las partes internas del sistema operativo, se meta un poco en ellas y se desenganche nuevamente. Dado que Android intenta tener un modelo de seguridad incorporado (a diferencia de la "idea de último momento" que se ve en Windows), tomar una captura de pantalla en varias barreras de seguridad. Se pueden omitir, pero la única forma práctica en la actualidad (salvo crear agujeros y vulnerabilidades potenciales en el núcleo) es usar la cuenta raíz todopoderosa, que no está sujeta a las limitaciones.


1
No sé mucho sobre los trabajos de hardware de la computadora, pero supongo que la GPU envía una "imagen" a la pantalla. ¿No podría ser interceptada y guardada esa imagen?
JD Isaacks

2
@ John Isaacks, eso es básicamente lo que sucede con el framebuffer. vea mi respuesta de por qué todavía requiere root.
Ryan Conrad
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.