Bagaimana cara memeriksa apakah ada aplikasi pada smartphone
Android yang memiliki laporan foto atau video, meskipun ia tidak pernah membutuhkannya? Opsi berikut sama sekali tidak sempurna, tetapi tidak memerlukan "root" atau custom firmware.
PS Saya menambahkan deskripsi pemantauan akses aplikasi ke mikrofon ke artikel.Apa yang perlu Anda instal:
- ADB ( Android Debug Bridge ) (misalnya, sebagai bagian dari Alat Platform SDK Android - Anda dapat mengunduh di sini );
- driver untuk telepon (jika perlu, misalnya, Driver USB Google dapat diunduh di sini ).
Kami mengaktifkan mode debugging
USB pada ponsel dan menghubungkan smartphone ke
port USB komputer , dan Anda harus memilih mode
koneksi USB , selain "Mengisi daya saja".
Teks tersembunyiDi "Device Manager" ditampilkan smartphone, misalnya, sebagai berikut:
dalam mode "Foto" atau "File"

dalam mode drive USB

Jadi, dalam output dari perintah
lsusb :

Buka baris perintah di direktori tempat "alat" diinstal.
Pastikan koneksi berhasil (nomor seri smartphone yang terhubung ditampilkan):
adb devices
(untuk
windows )

Untuk
Linux, perintahnya akan terlihat seperti ini:
./adb devices
Jika komputer tidak diotorisasi untuk digunakan dengan smartphone ini (untuk
Android 4.2.2 dan yang lebih baru), maka pesan peringatan "
tidak sah " akan muncul di sebelah nomor seri.
Untuk otorisasi, Anda perlu mengonfirmasi izin debug via
USB pada ponsel cerdas.
Teks tersembunyiDi Linux , pesan " tidak ada izin " mungkin muncul - dalam kasus saya, saya berhasil menyelesaikan masalah dengan mengalihkan ponsel cerdas ke mode "Media Device ( MTP )".
Luncurkan shell pada perangkat (kami mendapatkan prompt "$"):
adb shell

Lalu kami memperkenalkan simbol "ajaib" berikut:
while true; do ps `while ! (dumpsys media.camera | grep -E "PID") do done | grep -o "[^PID: ][0-9]*$"` | grep -o "[^S ]*$" ; date; sleep 1; done
Versi yang disempurnakan, menghapus output "NAME" dan baris kosong:
while true; do ps `while ! (dumpsys media.camera | grep -E "PID") do done | grep -o "[^PID: ][0-9]*$"` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done
Dan tidak ada yang terjadi :-) Sampai sesuatu memutuskan untuk mengambil bidikan kecil :-)
Set karakter "ajaib" yang ditunjukkan mulai memantau akses ke layanan kamera -
media.camera secepat mungkin (layanan ini diterapkan oleh perpustakaan
libcameraservice.so ). Jika kamera tidak aktif,
dumpsys menampilkan sesuatu seperti ini:

Dan jika kamera diperlukan, maka ini muncul:
grep memeriksa keberadaan "
PID " dan, jika rantai ini ada, mereka memotong nomor proses dari string dan memasukkannya ke perintah
ps , yang menampilkan data tentang proses ini, dan
grep lain memotong namanya. Setelah mendeteksi aktivitas kamera, berhenti sebentar agar pesan tidak terlalu sering tumpah. Untuk menghentikan perintah, gunakan kombinasi tombol
CTRL-C , dan untuk keluar dari shell -
CTRL-D .
Contoh paling sederhana adalah bahwa setelah meluncurkan aplikasi smartphone biasa untuk pemotretan foto / video, pesan dengan nama proses dan tanggal / waktu mulai berdatangan dalam interval 1 detik:

"
Tetapi ada aplikasi yang lebih licik, mereka dapat ditemukan dengan kata kunci "spy cam" (menggunakan trik, misalnya, dengan pratinjau piksel tunggal (
http://www.ez.ai/2014/05/exploring-limits-of-covert-data) .html )). Kreasi seperti itu runtuh pada awal pemotretan dan laporan, tetapi pesan mengalir secara teratur:

Saya juga memeriksa fungsionalitas metode yang diusulkan pada aplikasi yang mengambil satu bidikan saat mengklik tombol mengambang

tanpa jendela pratinjau yang terlihat.
Script berhasil menangkap panggilan ke kamera dan mengeluarkan dua pesan dengan setiap pemotretan:

Tetapi tidak ada yang menghentikan Anda untuk mengimplementasikan fungsionalitas serupa dalam aplikasi dengan nama yang lebih tidak berbahaya (
https://www.zdnet.com/article/this-scary-android-malware-can-record-audio-video-and-steal-your- data / ), dan izin - well, ada semua jenis kasus. Dan aplikasi "legal" dapat melaporkan jika diinginkan (saya telah memenuhi penyebutan satu kasus seperti itu). Dan tidak sia-sia bahwa
Android P mengambil tindakan untuk mencegah aplikasi latar belakang mengakses kamera.
Metode ini telah diuji pada smartphone
Huawei SCL-L01 (
Android 5.1.1) dan
Huawei G700-U20 (
Android 4.2.1), pada model smartphone lainnya,
format output
dumpsys mungkin berbeda (tidak distandarisasi untuk layanan
media.camera ), yang akan memerlukan koreksi kode .
Format pesan di hardcoded di perpustakaan
/system/lib/libcameraservice.so - misalnya, untuk smartphone
Huawei SCL-L01 :

Dalam
komentar - petunjuk bagaimana mengubah kode untuk bekerja dengan smartphone di
Android 9.
Komentar ini menunjukkan log akses kamera yang dikelola oleh
HTC U11 .
Tapi, misalnya, pada
dumpsys "kuno"
Huawei U8650 (
Android 2.3.4) berfungsi dengan baik:

Dan haknya tidak cukup untuk ...
grep :-)
Pemantauan akses mikrofonMetode serupa dapat diterapkan untuk memantau akses aplikasi ke mikrofon. Dalam hal ini, Anda perlu memonitor media
layanan.audio_flinger .
Kami memasukkan perintah di "shell" (kode yang diberikan berfungsi pada smartphone
Huawei SCL-L01 (
Android 5.1.1)):
while true; do ps `while ! (dumpsys media.audio_flinger | grep -A20 Input| grep -A1 Client | grep yes | grep -o "[^yes ].*" | grep -o [0-9]*) do done` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done
Jika beberapa aplikasi merekam suara melalui mikrofon, maka dalam output dari
dumpsys media.audio_flinger ada fragmen yang serupa:

(
Input thread - input stream,
22467 -
PID dari suara proses perekaman).
Saat merekam suara melalui aplikasi standar "Perekam suara" dan pemantauan diaktifkan (melalui kode di atas), pesan berikut muncul:

Tetapi pesan apa yang dituangkan ketika input suara penerjemah
Google diaktifkan:
Pada smartphone lain, format output dumpsys mungkin berbeda, yang akan memerlukan koreksi kode.Misalnya, pada telepon pintar
Huawei G700-U20 (
Android 4.2.1):

Dalam hal ini, kode pemantauan akan terlihat seperti:
while true; do ps `while ! (dumpsys media.audio_flinger | grep -A3 Input| grep -A1 Clien | grep -o "[^ ].*" | grep -o [0-9]*) do done` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done
Inilah bagaimana "yang dihidupkan kembali" Alice memanifestasikan dirinya dalam kasus ini:
