Как проверить, ведет ли какое-нибудь приложение на
Android-смартфоне фото- или видеорепортаж, хотя ему это ни разу ни к чему? Нижепредлагаемый вариант совсем не идеален, но не требует «рута» или кастомной прошивки.
P.S. Я добавил в статью описание мониторинга доступа приложений к микрофону.
Что требуется установить:
- ADB (Android Debug Bridge) (например, в составе Android SDK Platform Tools — загрузить можно здесь);
- драйвер для телефона (при необходимости, например, Google USB Driver можно загрузить здесь).
Включаем на телефоне режим отладки через
USB и подключаем смартфон к
USB-порту компьютера, причем следует выбрать режим
USB-подключения, отличный от «Только зарядка».
Скрытый текстВ «Диспетчере устройств» смартфон отображается, например, так:
в режиме «Фото» или «Файлы»

в режиме «USB-диск»

А вот так — в выводе команды
lsusb:
Открываем командную строку в каталоге, в который установились «тулзы».
Проверяем, что подключение успешно (отображается серийный номер подключенного смартфона):
adb devices
(для
Windows)

Для
Linux команда бы выглядела так:
./adb devices
Если компьютер не авторизован для использования с этим смартфоном (под
Android 4.2.2 и новее), то рядом с серийным номером появится предупредительное сообщение "
unauthorized".
Для авторизации необходимо подтвердить на смартфоне разрешение отладки через
USB.
Скрытый текстПод Linux может появляться сообщение "no permissions" — в моем случае удалось решить проблему переключением смартфона в режим «Медиаустройство (MTP)».
Запускаем оболочку на устройстве (получаем приглашение "$"):
adb shell
Затем вводим следующие «магические» символы:
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