¿Por qué necesitamos un teléfono enraizado para capturar capturas de pantalla en versiones anteriores de Android? -- screenshots camp android Relacionados El problema

Why do we need a rooted phone to capture screenshots on older versions of Android?


21
vote

problema

Español

Me doy cuenta de capturar capturas de pantalla de mi teléfono, todas las aplicaciones de captura de pantalla requieren que tengo un teléfono enraizado. ¿Por qué esto es tan? ¿Por qué no podemos tener una solicitud de captura de pantalla simple para Android, al igual que tenemos para Windows?

Original en ingles

I realize in order to capture screenshots of my phone, all screenshot applications require I have a rooted phone. Why is this so? Why can't we have a simple screenshot application for Android, just like we have for Windows?

  
   
   

Lista de respuestas

17
 
vote
vote
La mejor respuesta
 

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

Android usa lo que se llama una FrameBuffer para la pantalla de video. El FrameBuffer se encuentra en / dev / gráficos / FB0. Este "archivo", que es básicamente una corriente de que el dispositivo escribe cuando se producen cambios en la interfaz de usuario, contiene ~ 2 fotogramas de la pantalla.

Los permisos en el archivo Framebuffer son ABCDEFGHIJKLMNABCDEFGHIJKLMN0 . Tenga en cuenta que el último "grupo" tiene 3 "-" 's. Eso básicamente significa que si usted no es el ABCDEFGHIJKLMNABCDEFGHIJKLMN1 (que es root), no tiene permiso para leer incluso de ese archivo.

Si hubo una aplicación instalada en el sistema, que podría tomar capturas de pantalla, tendría permiso para leer desde el Framebuffer. Lo que, 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.

Leyendo el frameBuffer, para un desarrollador, es realmente simple, si tienen acceso para leerlo.

 

The answer is rather simple, it's a permissions issue.

Android uses what is called a framebuffer for the video display. The framebuffer is located at /dev/graphics/fb0. this "file", which is basically a stream that the device writes to when changes in the user interface occur, contains ~2 frames of the screen display.

The permissions on the framebuffer file is rw- rw- ---. Note that the last "group" has 3 "-"'s. That basically means that if you are not the owner (which is root) you do not have permission to even read from that file.

If there was a system installed application, that could take screenshots, it would have permission to read from the framebuffer. Which, I believe, is how the Motorola Xoom is able to take screenshots. It has an application installed on the device, as a system app.

Reading the framebuffer, for a developer, is actually simple, if they have access to read it.

 
 
       
       
7
 
vote

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

Piensa en cuántos de sus aplicaciones son capaces de hacer cosas como OCR para traducir imágenes al texto, puedo pensar en al menos cuatro aplicaciones en mi teléfono que puede hacer esto, el primer ejemplo es Google Goggles Ocring Titles Libres, y también Ocring y luego traduciendo bloques de texto en idiomas extranjeros. Ahora piense en cuántas de sus aplicaciones ponen texto en la pantalla que no querrás que una aplicación de confianza no deseara ver, 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 malicioso podría esperar Hasta que la aplicación de la contraseña se ejecute, tome una imagen de la pantalla con los detalles de inicio de sesión, y luego los OCR y envíelos. También podría hacer lo mismo por todo en su lista de contactos, incluso si no le da el permiso de la aplicación a su base de datos de contactos, o su historial de navegadores, o registros de chat, etc. Esta es solo una forma en que podría abusar de acceso a su pantalla.

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

Si rodea su teléfono y permite que una aplicación tome las capturas de pantalla, entonces está diciendo efectivamente que confía en la que la aplicación pueda hacer todo lo que puede hacer el sistema, incluido el acceso e interfiriendo con otras aplicaciones y sus datos, Y que confíes totalmente en que no abuse de ese acceso. Eso no es algo que Android va a permitir cualquier cosa, excepto el sistema / SO que hará.

 

Due to Android's security focus on separating all apps from each others' data, to prevent malicious apps from stealing or altering data in apps that you trust, they can't allow an app to take screenshots of other apps.

Think about how many of your apps are able to do things like OCR to translate pictures into text, I can think of at least four apps on my phone that can do this, prime example is Google Goggles OCRing book titles, and also OCRing and then translating blocks of text in foreign languages. Now think about how many of your apps put text on screen that you wouldn't want an untrustworthy app to see, I have a password database app on my phone with an encrypted database of my passwords for various systems, a malicious screensaver app could wait until that password app's running, take a picture of the screen with the login details on it, then OCR them and send them off. It could also do the same for everything in your Contacts list, even if you don't give the app permission to your Contacts database, or your browser history, or chat logs and so on. This is only one way that it could abuse access to your screen.

This is why for screenshotting to be universal it needs to be in the OS (which you already trust with all your data). This is why on phones that do have the screen shot function built-in it's been added as part of the system, not as a separate app.

If you root your phone and allow an app to take screenshots, then you are effectively saying that you implicitly trust that app to be able to do everything that the system can do, including accessing and interfering with other apps and their data, and that you totally trust it not to abuse that access. That's not something that Android's ever going to allow anything except the System/OS to do.

 
 
6
 
vote

Respuesta corta: Debido a que 1) las computadoras son complicadas y 2), la funcionalidad de captura de pantalla en realidad no es 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 conecte con bastante profundidad en los internos del sistema operativo, líder con ellos por un poco, y desenganche nuevamente. Dado que Android intenta tener un modelo de seguridad incorporado (a diferencia de la "Perspegración de Perspego atornillada" vista en Windows), tomando un viaje de captura de pantalla en varias barreras de seguridad. Esos pueden omitir , pero la forma actualmente práctica (a corto de crear agujeros y vulnerabilidades potenciales, en el kernel) es utilizar la cuenta raíz todopoderosa, que no está sujeta a las limitaciones.

 

Short answer: Because 1) computers are Complicated and 2) the screenshot functionality is actually not very simple (for the programmer, not for the user).

In other words, taking a screenshot requires the screenshotting process to hook pretty deep into the OS internals, mess with them for a bit, and unhook again. Since Android tries to have a built-in security model (as opposed to the "bolted-on afterthought" seen in Windows), taking a screenshot trips on several security barriers. Those can be bypassed, but the only currently practical way (short of creating holes - and potential vulnerabilities - in the kernel) is to use the all-powerful root account, which is not subject to the limitations.

 
 
   
   

Relacionados problema

4  Cambiar la ubicación de almacenamiento predeterminada de las capturas de pantalla  ( Change default storage location of screenshots ) 
He podido cambiar las opciones de almacenamiento para la cámara (por ejemplo, del almacenamiento interno a SD externo). Sin embargo, no tengo idea de cómo cam...

15  Mi pantalla se rompió, ¿cómo ver en la computadora lo que estoy haciendo en mi dispositivo?  ( My screen got broken how to see on the computer what im doing in my device ) 
La pantalla de dispositivo Android se rompió y no puedo ver lo que estoy haciendo. Esa es la única cosa incorrecta con mi dispositivo, el resto aparentemente ...

5  Error lanzando ddms.bat: "Error al obtener la versión de ADB: no se puede ejecutar el programa" ADB ": CreateProcess Error = 2, el sistema no puede encontrar el archivo especificado"  ( Error launching ddms bat failed to get the adb version cannot run program ad ) 
He estado siguiendo estas instrucciones detalladas para Tome una captura de pantalla en mi Motorola Flipside . Cuando llego al paso # 10, donde lanza ABCDEF...

6  ¿Cómo tomar una captura de pantalla y enviarla a través de MMS?  ( How to take a screen shot and send it via mms ) 
¿Puedo tomar una captura de pantalla de un enchufe de google en un easy way y luego envíelo a través de MMS? HTC Desire en 2.1 (no enraizado) ...

1  ¿Cómo puedo tomar una captura de pantalla del desplegamiento de la barra de notificación?  ( How can i take a screenshot of the notification bar dropdown ) 
A veces recibo una notificación en la barra de notificaciones, lo saco, y luego quiero tomar una captura de pantalla. Presiono el botón de encendido para hace...

4  ¿Cómo imprimir la pantalla Mi aplicación en el teléfono Android? [duplicar]  ( How to print screen my application in android phone ) 
Esta pregunta ya tiene respuestas aquí : cerrado 8 años . posible duplicado: ¿Cómo tomar u...

0  Las capturas de pantalla a menudo salen corrompidas  ( Screenshots often come out corrupted ) 
Tengo una primera generación MOTO G (XT1033) con Android 5.0. A menudo, cuando se toma capturas de pantalla, se atasca en el mensaje se está guardando , en...

154  ¿Cómo tomar una captura de pantalla con un dispositivo Android?  ( How to take a screenshot with an android device ) 
¿Hay una manera de tomar una captura de pantalla de un dispositivo Android y guardarlo como un archivo de imagen? ...

10  ¿Cómo capturar la captura de pantalla de la página web completa en el navegador de Android?  ( How to capture screenshot of entire webpage in android browser ) 
¿Cómo capturar la captura de pantalla de toda la página web en el navegador de Android como puedo tomar en mi escritorio con la ayuda de Firefox Addon llamado...

1  "No se puede escribir archivo en la tarjeta SD" cuando tome una captura de pantalla  ( Cannot write file in sd card when taking a screenshot ) 
Tengo un negro optimus. Cuando intento tomar una captura de pantalla, hace un ruido. Luego, dice cannot write file in SD card . ¿Cómo puedo arreglar eso?...

13  ¿Puedo capturar mi leyenda de HTC sin arraigarlo?  ( Can i screenshot my htc legend without rooting it ) 
Me han dicho que el enraizamiento es que sea todo y termine todo, pero en este momento, quiero ver qué tan lejos puedo extender mi dispositivo sin rootearlo. ...

4  ¿Cómo puedo tomar una captura de pantalla en un Kindle Fire HD?  ( How can i take a screenshot on a kindle fire hd ) 
Pensé que ICS, que es la versión subyacente del sistema operativo para un Kindle Fire HD, admitió una forma estándar de tomar capturas de pantalla al mantener...

4  ¿Cómo tomar una captura de pantalla de mis mensajes de texto?  ( How to take a screen shot of my text messges ) 
Sé cómo tomar capturas de pantalla en mi cargo de droide, pero cada vez que voy a tomar una foto de un mensaje de texto, siempre va a la página antes y toma l...

9  Galaxy S sigue tomando accidentalmente la captura de pantalla  ( Galaxy s keeps accidentally taking screenshot ) 
Galaxy S en 2.2 Soporta tomar capturas de pantalla sosteniendo el botón Atrás y tocando el botón de inicio simultáneamente. Sin embargo, encuentro mi teléfono...

4  ¿Una mejor manera de tomar la captura de pantalla en Galaxy S 2.2?  ( A better way to take screenshot in galaxy s 2 2 ) 
En Galaxy S con Froyo instalado, puede tomar una captura de pantalla de su teléfono sosteniendo el botón Atrás y tocando el botón de inicio. Sin embargo, esto...




© 2021 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos