Warum brauchen wir ein gerootetes Telefon, um Screenshots auf älteren Android-Versionen aufzunehmen?


21

Ich stelle fest, dass für das Aufnehmen von Screenshots meines Telefons alle Screenshot-Anwendungen ein Telefon mit Rootberechtigung erfordern. Warum ist das so? Warum können wir keine einfache Screenshot-Anwendung für Android haben, so wie wir es für Windows haben?


2
Ich fand es immer interessant, dass das iPhone diese Funktion sofort implementiert, während es eine große Sache ist, sie auf Android zu aktivieren.
Shambleh

1
Beachten Sie, dass es seit ungefähr Android 4.0 möglich ist, einen Screenshot zu machen, indem Sie die Lautstärketaste und die Ein / Aus-Taste gedrückt halten. Dies ist eine
sofort einsatzbereite

Antworten:


17

Die Antwort ist ziemlich einfach, es ist eine Berechtigungsfrage.

Android verwendet für die Videoanzeige einen sogenannten Framebuffer . Der Framebuffer befindet sich unter / dev / graphics / fb0. Diese "Datei", bei der es sich im Grunde um einen Stream handelt, in den das Gerät schreibt, wenn Änderungen an der Benutzeroberfläche vorgenommen werden, enthält ~ 2 Frames der Bildschirmanzeige.

Die Berechtigungen für die Framebuffer-Datei sind rw- rw- ---. Beachten Sie, dass die letzte "Gruppe" 3 "-" hat. Das bedeutet im Grunde, dass Sie, wenn Sie nicht der ownerRoot sind, nicht einmal die Berechtigung haben, aus dieser Datei zu lesen.

Wenn auf dem System eine Anwendung installiert wäre, die Screenshots aufnehmen könnte, hätte sie die Berechtigung, aus dem Framebuffer zu lesen. Ich glaube, auf diese Weise kann das Motorola Xoom Screenshots machen. Auf dem Gerät ist eine Anwendung als System-App installiert.

Das Lesen des Framebuffers ist für einen Entwickler eigentlich einfach, wenn er Zugriff darauf hat.


1
Klingt so, als ob Google die Berechtigungen in aktualisieren sollte r--. Dies kann ein Sicherheitsrisiko darstellen, wenn eine App Ihren Bildschirm ausspionieren kann. Wäre dies nicht eine der Berechtigungen ( Diese App kann Ihren Bildschirm überwachen ), die Sie vor der Installation akzeptieren müssen? Entweder das oder Google sollte eine eingebaute Bildschirmaufnahme in das Menü-Flyout einfügen, damit niemand sonst darauf zugreifen kann. Letzteres ist sehr gut, ich meine, sie fügen gerade eine Druckvorschau zu Chrome hinzu.
JD Isaacks

3
Ich denke, Mod von O + R wäre ein Sicherheitsrisiko, wenn nur eine Markt-App den Bildschirm lesen könnte.
kzh

Ich denke es kommt darauf an. Das Windows-Betriebssystem hindert Anwendungen nicht daran, einen Screenshot zu erstellen. Haben wir bisher irgendwelche Sicherheitsprobleme gehört, die durch Bildschirmaufnahmen verursacht wurden?
Cheok Yan Cheng

Sie müssen keine Screenshots in Windows machen, es gibt viel einfachere Möglichkeiten, Daten von einem Windows-Computer abzurufen. Mobile, denke ich, ist ein größeres Anliegen. Denken Sie nur an Apps wie Square, die Kreditkarten verarbeiten. Wenn ich einen Dienst schrieb, der abhörte, als die Karte geklaut wurde, könnte ich möglicherweise Informationen wie Kreditkartennummer, Name usw. auf dem Bildschirm abrufen und abrufen
Ryan Conrad,

7

Aufgrund des Sicherheitsfokus von Android, bei dem alle Apps von den Daten der anderen getrennt werden, können Apps, denen Sie vertrauen, keine Screenshots von anderen Apps erstellen, um zu verhindern, dass böswillige Apps Daten stehlen oder ändern.

Überlegen Sie, wie viele Ihrer Apps in der Lage sind, Bilder wie OCR in Text umzuwandeln. Ich kann mir mindestens vier Apps auf meinem Handy vorstellen, die dies ermöglichen. Ein Paradebeispiel sind die OCR-Buchtitel von Google Goggles und dann OCR Übersetzung von Textblöcken in Fremdsprachen. Überlegen Sie sich nun, wie viele Ihrer Apps Text auf den Bildschirm bringen, den eine nicht vertrauenswürdige App nicht sehen soll. Ich habe eine Passwortdatenbank-App auf meinem Telefon mit einer verschlüsselten Datenbank meiner Passwörter für verschiedene Systeme. Eine böswillige Bildschirmschoner-App könnte warten Machen Sie ein Bild des Bildschirms, auf dem sich die Anmeldedaten befinden, und senden Sie sie ab, bis die Kennwort-App ausgeführt wird. Dies kann auch für alle Elemente in Ihrer Kontaktliste gleich sein, auch wenn Sie der App keine Berechtigung für Ihre Kontaktdatenbank oder Ihren Browserverlauf erteilen. oder Chat-Protokolle und so weiter. Dies ist nur eine Möglichkeit, den Zugriff auf Ihren Bildschirm zu missbrauchen.

Dies ist der Grund, warum Screenshots nur unter dem Betriebssystem erstellt werden können (dem Sie bereits mit all Ihren Daten vertrauen). Dies ist der Grund, warum Telefone mit eingebauter Screenshot-Funktion nicht als separate App, sondern als Teil des Systems hinzugefügt wurden.

Wenn Sie Ihr Telefon als Root anmelden und einer App das Aufnehmen von Screenshots gestatten, dann sagen Sie effektiv, dass Sie implizit darauf vertrauen, dass diese App alles kann, was das System kann, einschließlich des Zugriffs auf und der Beeinträchtigung anderer Apps und ihrer Daten sowie auf Sie vertraue voll und ganz darauf, diesen Zugang nicht zu missbrauchen. Das ist nichts, was Android jemals außer dem System / Betriebssystem erlauben wird.


6

Kurze Antwort: Weil 1) Computer kompliziert sind und 2) die Screenshot-Funktionalität nicht sehr einfach ist (für den Programmierer, nicht für den Benutzer).

Mit anderen Worten, um einen Screenshot zu machen, muss der Screenshot-Prozess ziemlich tief in die Betriebssystem-Interna eintauchen, ein bisschen mit ihnen herumspielen und erneut aushängen. Da Android versucht, ein eingebautes Sicherheitsmodell zu haben (im Gegensatz zu dem "aufgeschraubten Gedanken", der in Windows zu sehen ist), werden Screenshots von mehreren Sicherheitsbarrieren erstellt. Diese können umgangen werden, aber der einzige derzeit praktikable Weg (kurz, um Lücken - und potenzielle Schwachstellen - im Kernel zu schaffen) ist die Verwendung des allmächtigen Root-Kontos, das nicht den Einschränkungen unterliegt.


1
Ich weiß nicht viel über Computerhardware, gehe aber davon aus, dass die GPU ein "Bild" auf den Bildschirm sendet. Konnte dieses Bild nicht abgefangen und gespeichert werden?
JD Isaacks

2
@ John Isaacks, das ist im Grunde, was mit dem Framebuffer passiert. Siehe meine Antwort, warum es immer noch root benötigt.
Ryan Conrad
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.