Pourquoi avons-nous besoin d'un téléphone enraciné pour capturer des captures d'écran sur les anciennes versions d'Android? -- screenshots domain android en relation problème

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



21
vote

problème

français

Je réalise afin de capturer des captures d'écran de mon téléphone, toutes les applications de capture d'écran exigent-elles avoir un téléphone enraciné. Pourquoi cela est-il ainsi? Pourquoi ne pouvons-nous pas avoir une simple application d'écran d'une capture d'écran pour Android, comme nous l'avons pour Windows?

langue Anglaise

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?

  
   
   

Liste de réponses

17
 
vote
vote
Meilleure réponse
 

La réponse est plutôt simple, c'est une question d'autorisations.

Android utilise ce qu'on appelle un Framebuffer pour l'affichage vidéo. La tramebuffer est située à / dev / graphiques / fb0. Ce "fichier", qui est fondamentalement un flux que le périphérique écrit lorsque des modifications de l'interface utilisateur se produisent, contient ~ 2 images de l'écran de l'écran.

Les autorisations sur le fichier Framebuffer sont rw- rw- --- . Notez que le dernier "groupe" a 3 "-". Cela signifie fondamentalement que si vous n'êtes pas le owner (qui est root), vous n'avez même pas la permission de lire à partir de ce fichier.

S'il y a eu une application installée par système, cela pourrait prendre des captures d'écran, il aurait une autorisation de lire à partir de la tramebuffer. Ce que, je crois, c'est comment le Motorola Xoom est capable de prendre des captures d'écran. Il dispose d'une application installée sur l'appareil, en tant qu'application système.

Lecture de la tramebuffer, pour un développeur, est en fait simple, s'ils ont accès à la lecture.

 

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

En raison de la sécurité de Android se concentre sur la séparation de toutes les applications des données de chacune d'autres, pour empêcher les applications malveillantes de voler ou de modifier des données sur les applications que vous avez confiance, elles ne peuvent pas autoriser une application à prendre des captures d'écran d'autres applications.

Pensez à combien de vos applications sont capables de faire des choses comme OCR pour traduire des images en texte, je peux penser à au moins quatre applications sur mon téléphone pouvant le faire, l'exemple préférentiel est Google Goggles OCRing Book Titres, ainsi que OCRING puis traduire des blocs de texte dans des langues étrangères. Pensez maintenant à combien de vos applications remplacent le texte à l'écran que vous ne voudriez pas d'une application sans bande de bande de passe, j'ai une application de base de données de mot de passe sur mon téléphone avec une base de données cryptée de mes mots de passe pour différents systèmes, une application Screensaver malveillante pourrait attendre Jusqu'à ce que cette application de mot de passe s'exécute, prenez une photo de l'écran avec les détails de connexion, puis sur eux et les envoie. Il pourrait également faire la même chose pour tout dans votre liste de contacts, même si vous ne donnez pas l'autorisation de l'application à votre base de données de contacts, ni d'historique de votre navigateur, ou de connecter des journaux de discussion, etc. Ce n'est qu'une façon de pouvoir abuser de l'accès à votre écran.

C'est pourquoi pour la capture d'écran pour être universel, il doit être dans le système d'exploitation (que vous avez déjà confiance en toutes vos données). C'est pourquoi sur les téléphones qui ont la fonction de tir à l'écran intégré, il a été ajouté dans le cadre du système, pas comme une application distincte.

Si vous racontez votre téléphone et permettez à une application de prendre des captures d'écran, vous disez efficacement que vous avez implicitement confiance à cette application pour pouvoir faire tout ce que le système peut faire, y compris l'accès et l'interférence avec d'autres applications et leurs données, et que vous avez totalement confiance en ne pas abuser de cet accès. Ce n'est pas quelque chose que Android va jamais laisser quoi que ce soit, à l'exception du système / système d'exploitation à faire.

 

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

Réponse courte: car 1) Les ordinateurs sont compliqués et 2) La fonctionnalité de capture d'écran n'est en réalité pas très simple (pour le programmateur, pas pour l'utilisateur).

En d'autres termes, prendre une capture d'écran nécessite le processus de capture d'écran pour accrocher assez profondément dans les internes du système d'exploitation, le gâchis avec eux pour un peu et décrocher. Étant donné que Android tente d'avoir un modèle de sécurité intégré (par opposition à la «réflexion boulonnée» observée sous Windows), prenant des voyages d'écran sur plusieurs barrières de sécurité. Les peut être contournée, mais la seule façon actuellement pratique (à court de créer des trous - et vulnérabilités potentielles - dans le noyau) est d'utiliser le tout-puissant compte root, qui ne sont pas soumis aux limitations.

 

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.

 
 
   
   

Questions connexes

13  Puis-je capter ma légende HTC sans l'enraciner?  ( Can i screenshot my htc legend without rooting it ) 
On m'a dit que l'enracinement est le tout et terminez tous, mais pour le moment, je veux voir jusqu'où je peux prolonger mon appareil sans l'enraciner. Une ...

3  Comment désactiver Flag_Secure sans root?  ( How to disable flag secure without root ) 
Je viens de réaliser le seul moyen de contourner la sécurité de la capture d'écran sur certaines applications consiste à désactiver ce FLAG_SECURE , lequel p...

0  Supprimer des images cachées  ( Deleting hidden pictures ) 
Quand je télécharge mes photos de My Samsung Galaxy S3 sur mon bureau, des centaines de photos de tir à l'écran Télécharger. Ce sont ces options pop gênantes ...

1  Comment puis-je prendre une capture d'écran de la liste déroulante de la barre de notification?  ( How can i take a screenshot of the notification bar dropdown ) 
Parfois, je reçois une notification dans la barre de notification, je le retire, puis je veux prendre une capture d'écran. J'appuie sur le bouton d'alimentati...

4  Une meilleure façon de prendre une capture d'écran dans Galaxy S 2.2?  ( A better way to take screenshot in galaxy s 2 2 ) 
Dans Galaxy S avec Froyo installé, vous pouvez prendre une capture d'écran de votre téléphone en maintenant le bouton arrière et en appuyant sur le bouton Acc...

154  Comment prendre une capture d'écran avec un appareil Android?  ( How to take a screenshot with an android device ) 
Y a-t-il un moyen de prendre une capture d'écran d'un appareil Android et de l'enregistrer sous forme de fichier image? ...

3  Captures d'écran vierges sur la tablette Android  ( Blank screenshots on android tablet ) 
J'utilise ddms pour prendre des captures d'écran de mon téléphone et ça fonctionne bien, mais quand j'essaie de faire la même chose avec ma tablette, je vie...

21  Pourquoi avons-nous besoin d'un téléphone enraciné pour capturer des captures d'écran sur les anciennes versions d'Android?  ( Why do we need a rooted phone to capture screenshots on older versions of androi ) 
Je réalise afin de capturer des captures d'écran de mon téléphone, toutes les applications de capture d'écran exigent-elles avoir un téléphone enraciné. Pourq...

4  Modifier l'emplacement de stockage par défaut des captures d'écran  ( Change default storage location of screenshots ) 
J'ai pu modifier les options de stockage pour l'appareil photo (par exemple, du stockage interne à la SD externe). Cependant, je n'ai aucune idée de la façon ...

4  Comment puis-je prendre une capture d'écran sur un Kindle Fire HD?  ( How can i take a screenshot on a kindle fire hd ) 
Je pensais que ICS, qui est la version du système d'exploitation sous-jacente d'un Kindle Fire HD, a appuyé une manière standard de prendre des captures d'écr...




© 2022 www.demandez.top All Rights Reserved. Questions et réponses Accueil Tous les droits sont réservés