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?
screenshots
Cheok Yan Cheng
fuente
fuente
Respuestas:
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 elowner
(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.
fuente
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.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.
fuente
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.
fuente