2012-06-03 5 views
-1

Я хотел бы сделать антивирус, но так обнаружить, когда приложение создает файл на SD-карте, например. Но я не могу найти способ обнаружения журнала доступа к FS или создания файла другим приложением.Обнаружение доступа к файловой системе?

Благодарим за помощь.

+0

Нельзя закрывать. Это правильный вопрос (хотя и не сформулированный как вопрос). Конечно, если вы не заботитесь о безопасности, я мог видеть, что вы закрыли @casperOne. – trusktr

ответ

3

Использование FileObserver. Here - описание.

Однако следует иметь в виду, что API FileObserver не позволяет блокировать операции с файлами. После этого вы сможете реагировать только на них. К тому времени приложение, написавшее файл, может уже исчезнуть.

Если вы намереваетесь создать надежный общий антивирус (или узнать, как его можно создать), вам нужно будет сделать более сложный путь. Узнайте о avflt и redirfskernel modules, узнайте у устройства root и загрузите эти модули.

Если вы преуспеете, вы сможете использовать библиотеку libav, надежно определить вызывающий процесс (av_event.pid) и сможете отложить или надежно отказать в запросах, которые вам не нравятся.

Вы по-прежнему не в состоянии позиционировать свой антивирус обычно из-за различных проблем с укоренением, но это касается единственного звукового подхода для общей задачи технически.

+0

Большое спасибо Jirka, Чтобы заблокировать, это не очень важно в моем случае, но мне нужно знать имя приложения, которое запрашивает доступ. Я ничего не видел в fileObserver, который показывает процесс. Можно узнать? Спасибо – user1433989

+0

@ user1433989 - Это невозможно сделать в принципе надежно. 'FileObserver' не сообщает запросы доступа, но уже предпринятые действия. Если вы получите событие после того, как файл был полностью написан (и это может случиться с файловым сервером), и, возможно, процесс записи даже удался, нет ответа, который вы могли бы надеяться получить. Если вас интересует несовершенное решение, выполните поиск 'lsof'. Это работает только тогда, когда файл все еще открыт. –

+0

Спасибо вам большое. Я буду работать. И «inotifyd» с busybox - хороший способ? – user1433989

Смежные вопросы