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?
screenshots
Cheok Yan Cheng
quelle
quelle
Antworten:
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 derowner
Root 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.
quelle
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.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.
quelle
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.
quelle