Mengapa kita memerlukan ponsel yang di-root untuk mengambil tangkapan layar pada versi Android yang lebih lama?


21

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?


2
Saya selalu menemukan hal yang menarik bahwa iPhone mengimplementasikan fitur ini di luar kebiasaan sementara itu merupakan masalah besar untuk diaktifkan di Android.
shambleh

1
Perhatikan bahwa sejak sekitar Android 4.0, dimungkinkan untuk mengambil tangkapan layar dengan menahan tombol Volume Turun + Daya; ini adalah fungsi out-of-the-box, tidak ada aplikasi yang diperlukan (dicatat di sini untuk anak cucu dan mesin pencari)
Piskvor

Jawaban:


17

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 bukan owner(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.


1
Sepertinya Google harus memperbarui izin 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.
JD Isaacks

3
Saya pikir mod of + r akan menjadi masalah keamanan jika sembarang aplikasi pasar dapat membaca layar.
kzh

Saya pikir itu tergantung. OS Windows tidak mencegah aplikasi mengambil screen shoot-nya. Sejauh ini, pernahkah kita mendengar masalah keamanan yang disebabkan oleh pengambilan gambar layar?
Cheok Yan Cheng

Tidak perlu mengambil tangkapan layar di windows, ada cara yang jauh lebih mudah untuk mendapatkan data dari mesin windows. Mobile, menurut saya, adalah masalah yang lebih besar. Pikirkan saja aplikasi seperti Square, yang memproses kartu kredit. Jika saya menulis layanan yang mendengarkan ketika kartu digesek, saya mungkin bisa mengambil layar dan menarik informasi seperti nomor kartu kredit, nama, dll.
Ryan Conrad

7

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.


6

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.


1
Saya tidak tahu banyak tentang kerja perangkat keras komputer, tetapi saya berasumsi GPU mengirim "gambar" ke layar. Tidak bisakah gambar itu dicegat dan disimpan?
JD Isaacks

2
@ John Isaacks, pada dasarnya itulah yang terjadi dengan framebuffer. lihat jawaban saya mengapa masih membutuhkan root.
Ryan Conrad
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.