Saya sadar untuk mengambil screenshot dari ponsel saya, semua aplikasi screenshot mengharuskan saya memiliki ponsel yang sudah di-root. Kenapa begitu? Mengapa kita tidak dapat memiliki aplikasi screenshot sederhana untuk Android, sama seperti yang kita miliki untuk Windows?
screenshots
Cheok Yan Cheng
sumber
sumber
Jawaban:
Jawabannya agak sederhana, ini masalah izin.
Android menggunakan apa yang disebut framebuffer untuk tampilan video. Framebuffer terletak di / dev / graphics / fb0. "file" ini, yang pada dasarnya adalah aliran yang digunakan perangkat untuk menulis ketika perubahan antarmuka pengguna terjadi, mengandung ~ 2 bingkai tampilan layar.
Izin pada file framebuffer adalah
rw- rw- ---
. Perhatikan bahwa "grup" terakhir memiliki 3 "-". Itu pada dasarnya berarti bahwa jika Anda bukanowner
(yang root) Anda bahkan tidak memiliki izin untuk membaca dari file itu.Jika ada aplikasi sistem yang terinstal, yang bisa mengambil tangkapan layar, itu akan memiliki izin untuk membaca dari framebuffer. Yang, saya percaya, adalah bagaimana Motorola Xoom dapat mengambil screenshot. Ini memiliki aplikasi yang diinstal pada perangkat, sebagai aplikasi sistem.
Membaca framebuffer, untuk pengembang, sebenarnya sederhana, jika mereka memiliki akses untuk membacanya.
sumber
r--
. Ini dapat menimbulkan risiko keamanan jika aplikasi apa pun dapat memata-matai layar Anda, tetapi bukankah itu hanya salah satu izin ( Aplikasi ini dapat memantau layar Anda) yang harus Anda terima sebelum menginstal? Entah itu atau Google harus menambahkan tangkapan layar bawaan di menu fly-out, maka tidak ada orang lain yang bisa mengaksesnya. Yang terakhir saya sangat baik terjadi, maksud saya mereka baru saja menambahkan pratinjau cetak ke Chrome.Karena fokus keamanan Android pada pemisahan semua aplikasi dari data masing-masing, untuk mencegah aplikasi jahat mencuri atau mengubah data dalam aplikasi yang Anda percayai, mereka tidak dapat mengizinkan aplikasi untuk mengambil tangkapan layar dari aplikasi lain.
Pikirkan tentang berapa banyak aplikasi Anda yang dapat melakukan hal-hal seperti OCR untuk menerjemahkan gambar ke dalam teks, saya dapat memikirkan setidaknya empat aplikasi di ponsel saya yang dapat melakukan ini, contoh utama adalah Google Goggles OCRing judul buku, dan juga OCRing dan kemudian menerjemahkan blok teks dalam bahasa asing. Sekarang pikirkan tentang berapa banyak aplikasi Anda meletakkan teks di layar yang Anda tidak ingin melihat aplikasi yang tidak dapat dipercaya, saya memiliki aplikasi basis data kata sandi di ponsel saya dengan database terenkripsi kata sandi saya untuk berbagai sistem, aplikasi screensaver jahat bisa menunggu sampai aplikasi kata sandi itu berjalan, ambil gambar layar dengan detail login di atasnya, lalu OCR dan kirim. Itu juga bisa melakukan hal yang sama untuk semua yang ada di daftar Kontak Anda, bahkan jika Anda tidak memberikan izin aplikasi ke database Kontak Anda, atau riwayat browser Anda, atau log obrolan dan sebagainya. Ini hanya satu cara yang bisa menyalahgunakan akses ke layar Anda.
Inilah sebabnya mengapa screenshotting bersifat universal harus di OS (yang sudah Anda percayai dengan semua data Anda). Inilah sebabnya mengapa pada ponsel yang memiliki fungsi screen shot built-in ditambahkan sebagai bagian dari sistem, bukan sebagai aplikasi terpisah.
Jika Anda melakukan rooting pada ponsel dan mengizinkan aplikasi mengambil tangkapan layar, maka Anda secara efektif mengatakan bahwa Anda secara implisit percaya bahwa aplikasi tersebut dapat melakukan semua hal yang dapat dilakukan sistem, termasuk mengakses dan mengganggu aplikasi dan data lainnya, dan bahwa Anda percaya sepenuhnya untuk tidak menyalahgunakan akses itu. Itu bukan sesuatu yang pernah diizinkan Android selain Sistem / OS.
sumber
Jawaban singkat: Karena 1) komputer adalah Rumit dan 2) fungsi tangkapan layar sebenarnya tidak terlalu sederhana (untuk programmer, bukan untuk pengguna).
Dengan kata lain, mengambil tangkapan layar membutuhkan proses screenshotting untuk menghubungkan cukup dalam ke internal OS, mengacaukannya sebentar, dan melepaskan kaitan lagi. Karena Android mencoba untuk memiliki model keamanan built-in (yang bertentangan dengan "terlintas dalam pikiran" yang terlihat di Windows), mengambil screenshot tangkapan layar pada beberapa hambatan keamanan. Itu dapat di -bypass, tetapi satu-satunya cara saat ini yang praktis (singkat membuat lubang - dan kerentanan potensial - di dalam kernel) adalah dengan menggunakan akun root yang sangat kuat, yang tidak tunduk pada batasan.
sumber