У меня есть пользователи с рутированными смартфонами Android 2.2+. Всякий раз, когда какое-либо приложение на устройстве получает доступ к списку контактов устройства, ресурсу микрофона или камеры, я хочу приостановить это приложение, вывести всплывающее предупреждающее сообщение для пользователя и позволить пользователю решить, следует ли прервать или продолжить.
Несмотря на то, что во время установки приложения Пользователь мог (вслепую) предоставить этим приложениям разрешение на доступ к этим ресурсам.
Итак, я хочу написать системную службу Android для непрерывного сканирования дескрипторов файлов (или чего-то еще), представляющих список контактов, микрофон и камеру. Если какое-либо другое приложение или служба/процесс/поток пытается открыть какой-либо из указанных выше файловых дескрипторов, я приостанавливаю его и вывожу всплывающее сообщение для пользователя, что-то вроде: «Приложение «ШАХМАТЫ» пытается для доступа к КАМЕРЕ!!! Закройте приложение или Продолжить?";
Я не смог найти абсолютно ничего в Android SDK или NDK, что помогло бы мне достичь моей цели.
Даже быстрый, грязный и опасный командный подход Linux, такой как «./data/lsof -w | grep audio», вставленный и запущенный на устройстве, никоим образом не помог — я не знаю, какой именно ресурс Android имена для grep, и, кроме того, файловые дескрипторы ресурсов кажутся открытыми все время, независимо от того, осуществляется ли к ним доступ или нет!
Спасибо, любой совет будет принят с благодарностью.