ADB vs Spy Cam

Как проверить, ведет ли какое-нибудь приложение на Android-смартфоне фото- или видеорепортаж, хотя ему это ни разу ни к чему? Нижепредлагаемый вариант совсем не идеален, но не требует «рута» или кастомной прошивки.
Что требуется установить:

  • ADB (например, в составе Android SDK Platform Tools);
  • драйвер для телефона (при необходимости).


Включаем на телефоне режим отладки через USB и подключаем телефон к USB-порту компьютера.
Открываем командную строку в каталоге, в который установились «тулзы».
Проверяем, что подключение успешно:

adb devices


xs5ye3ez3e64mcqpicweuhzywlk.png

Запускаем оболочку:

adb shell


xju-hm5vnekjwns8kk9iemaceo0.png

Затем вводим следующие «магические» символы:

while true; do ps `while ! (dumpsys media.camera | grep -E "PID") do  done | grep -o "[^: ]*$"` | grep -o "[^S ]*$" ; date; sleep 1; done


f7sq8f11mpauvau93yjykj0rd0e.png
И ничего не происходит :-) Пока что-то не решит немного поснимать :-)
Означенный «магический» набор символов запускает с максимально возможной скоростью мониторинг доступа к сервису media.camera. Если камера не активна, dumpsys выдает примерно такое:
atpjpvwxpi0zifn52wob3cd7nc8.png
А если камера понадобилась, то появляется такое:
2s7en0ianftirjofmyjfzjpxe2i.png
grep-ы проверяют наличие »PID» и, если таки эта цепочка есть, то вырезают из строки номер процесса и скармливают его команде ps, которая выводит данные об этом процессе, а еще один grep вырезает его имя. После обнаружения активности камеры делаем паузу на секунду, чтобы сообщения не сыпались слишком часто.
Простейший пример — после запуска штатного приложения смартфона для фото/видеосъемки начинают с интервалом в 1 секунду сыпаться сообщения с именем процесса и датой/временем:
kjlurja3_dqlnzegfi6tfabrcv0.png»
Но есть и более хитрые приложения, их можно найти по ключевому слову «spy cam» (использующие трюк, например, с однопиксельным превью (http://www.ez.ai/2014/05/exploring-limits-of-covert-data.html)). Подобное творение при запуске съемки сворачивается и ведет репортаж, но сообщения сыпятся исправно:
gda0wy7nqinaoaxki1ftvziye50.png
Но ведь ничто не мешает реализовать подобную функциональность и в приложении с более безобидным названием (https://www.zdnet.com/article/this-scary-android-malware-can-record-audio-video-and-steal-your-data/), а разрешения — ну так случаи всякие бывают. Да и «легальное» приложение может вести репортаж, когда ему заблагорассудится (я встречал упоминание об одном таком случае).

Способ проверен на смартфонах Huawei SCL-L01 и Huawei G700-U20.

© Habrahabr.ru