¿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

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...

3  Software de Android o Dispositivo para presentar la solicitud en la pantalla  ( Android software or device to present application on screen ) 
Bueno, esto es algo que me vino a mi mente, ¿alguien sabe si hay un dispositivo o un cable que puedo enchufar a un Datos de datos, por lo que es posible prese...

7  ¿Por qué mi botón de encendido toma capturas de pantalla?  ( Why does my power button take screenshots ) 
No he instalado ninguna aplicación de captura de pantalla, de hecho, mi teléfono fue limpiado recientemente al actualizar a Gingerbread. Tengo pan de jengibre...

13  Mi Evo 3D es narcisista y no dejará de tomar fotos de sí mismo  ( My evo 3d is narcissistic and wont stop taking pictures of itself ) 
Mi tarjeta SD se llena con tapas de pantalla. Quiero decir, no es un gran problema que sea gravando mi almacenamiento. Aún así, Con toda la actividad en mis ...

2  ¿Sensación HTC envió captura de pantalla a Google+ Subir instantánea?  ( Htc sensation sent screenshot to google instant upload ) 
Tengo una notificación en Google+ esta mañana mostrando una captura de pantalla de la pantalla de inicio de mi HTC Sensation. Revisé mi teléfono, y en el ál...

11  ¿Cómo tomar una captura de pantalla en un fuego de Kindle?  ( How to take a screenshot on a kindle fire ) 
Corrí a través de esta pregunta Posado en Twitter por Anil Dash : ¿No hay forma de tomar una captura de pantalla en un fuego de Kindle? Eh. Sé que es...

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...

3  ¿Cómo puedo tomar una captura de pantalla de una parte específica de mi pantalla?  ( How can i take a screenshot of a specific portion of my screen ) 
No hay capturas de pantalla por área en mi Galaxy Tab 8.9, ejecutando Android 3.1. ¿Hay algún software que agregue la capacidad de tomar una captura de pant...

6  Casting / pantalla de pantalla, capturando la vista de la cámara (aparece negro)  ( Screen casting screen capturing the camera view appears black ) 
Para demostrar una aplicación de realidad aumentada, me gustaría hacer un screencast de la pantalla del dispositivo Android (HTC Desire S). El proyecto de c...

2  ¿Cómo hacer una captura de pantalla con Android 2.3.5? [duplicar]  ( How to make a screenshot with android 2 3 5 ) 
Esta pregunta ya tiene respuestas aquí : Cerrado hace 9 años . posible duplicado: ¿Cómo to...

6  ¿El sándwich de helado soporta la captura de pantalla nativa?  ( Does ice cream sandwich support native screen capture ) 
Entiendo que las versiones anteriores de Android no admiten una función de captura de pantalla nativa, a menos que se proporcione el dispositivo específico, o...

3  Las capturas de pantalla con ICS son 0 bytes largos [cerrados]  ( Screenshots with ics are 0 byte long ) 
Es poco probable que esta pregunta ayude a cualquier visitante futuro; Solo es relevante para un pequeño área geográfica, u...

1  No puede ver mi dispositivo en Dalvik Depurar Monitor [Duplicar]  ( Cannot see my device in dalvik debug monitor ) 
Esta pregunta ya tiene respuestas aquí : Cerrado 8 años . posible duplicado: Instalación d...

3  Tomando capturas de pantalla en Galaxy SII con ICS  ( Taking screen captures on galaxy sii with ics ) 
Después de actualizar mi Rogers Galaxy SII (modelo I727R) a ICS. No puedo tomar capturas de pantalla de actividades. He intentado usar el hogar y la potenci...

12  Tomando capturas de pantalla en Samsung Galaxy Nexus con Jally Bean  ( Taking screenshots on samsung galaxy nexus with jelly bean ) 
Aparentemente en el sándwich de helado, puede presionar Power + Volumen hacia abajo para tomar una captura de pantalla, pero esto no funciona para mí con Jell...

4  ¿Cómo capturas de pantalla de la pantalla en Samsung Galaxy S 2?  ( How to screenshot of the screen on samsung galaxy s 2 ) 
Desde que he actualizado mi teléfono por la versión 4.0.0 de Android, no puedo tomar una captura de pantalla de mi teléfono, antes de que solía hacerlo presio...

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 toda una actividad de desplazamiento?  ( How to take a screenshot of an entire scrolling activity ) 
Tengo un Samsung Galaxy y, y tengo una aplicación que tiene una actividad desplazable. Quería tomar una captura de pantalla, pero la combinación de "botón de ...

4  No se pueden tomar capturas de pantalla en un dispositivo enraizado  ( Cant take screenshots on a rooted device ) 
No puedo tomar capturas de pantalla en mi tableta Android 4.0.3 enraados . Es un Génesis GT-1230 que ejecuta una ROM modificada y, aparentemente, la combinac...

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 ...

Relacionados problema

9  Galaxy S sigue tomando accidentalmente la captura de pantalla 
3  Software de Android o Dispositivo para presentar la solicitud en la pantalla 
7  ¿Por qué mi botón de encendido toma capturas de pantalla? 
13  Mi Evo 3D es narcisista y no dejará de tomar fotos de sí mismo 
2  ¿Sensación HTC envió captura de pantalla a Google+ Subir instantánea? 
11  ¿Cómo tomar una captura de pantalla en un fuego de Kindle? 
4  ¿Cómo tomar una captura de pantalla de mis mensajes de texto? 
3  ¿Cómo puedo tomar una captura de pantalla de una parte específica de mi pantalla? 
6  Casting / pantalla de pantalla, capturando la vista de la cámara (aparece negro) 
2  ¿Cómo hacer una captura de pantalla con Android 2.3.5? [duplicar] 
6  ¿El sándwich de helado soporta la captura de pantalla nativa? 
3  Las capturas de pantalla con ICS son 0 bytes largos [cerrados] 
1  No puede ver mi dispositivo en Dalvik Depurar Monitor [Duplicar] 
3  Tomando capturas de pantalla en Galaxy SII con ICS 
12  Tomando capturas de pantalla en Samsung Galaxy Nexus con Jally Bean 
4  ¿Cómo capturas de pantalla de la pantalla en Samsung Galaxy S 2? 
4  ¿Cómo puedo tomar una captura de pantalla en un Kindle Fire HD? 
4  ¿Cómo tomar una captura de pantalla de toda una actividad de desplazamiento? 
4  No se pueden tomar capturas de pantalla en un dispositivo enraizado 
15  Mi pantalla se rompió, ¿cómo ver en la computadora lo que estoy haciendo en mi dispositivo? 



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


Licensed under cc by-sa 3.0 with attribution required.