Как я могу следить за изменениями в базе данных другого приложения?

Я хотел бы отслеживать изменения в другой базе данных приложений SQLite. Поскольку Android не позволяет мне получать доступ к внутренним данным другого приложения, мне нужно корневое приложение, которое точно такое же, как у меня.

Есть ли способ, которым я мог бы отслеживать изменения в файле в системе и инициировать событие в моем приложении?

Я погуглил и видел, как люди рекомендуют использоватьFileObserver класс, но это не будет работать для защищенных файлов. Любые другие предложения?

-

Я искал ответ для этого, но я не нашел ни одного. Я попробовал эти два многообещающих метода, но не смог заставить их работать.

Все файлы в каталоге данных приложения принадлежат пользователю и группе этого приложения.FileObserver уважает разрешения Linux и, следовательно, я не могу использовать его для мониторинга базы данных / файла в каталоге данных другого приложения.

Мне интересно, если бы это было возможно, если бы я мог каким-то образом повысить процесс Linux моего приложения для запуска какroot, Это тоже не легко, так как это будет означать играть сsetuid, setguid механизм, о котором я понятия не имею.

Я попытался создать символическую ссылку из файла базы данных другого приложения в каталог данных моего приложения. Я добавил все разрешения на символическую ссылку, а затем использовалFileObserver контролировать это, но это тоже не сработало. Может быть, я сделал что-то не так, но я думаю, чтов Linux разрешения на символьные ссылки бесполезны, Разрешения для символической ссылки, которые соблюдаются, соответствуют целевому файлу / каталогу.

Там может быть способ использования JNI иinotify.h файлы, но я не уверен, как это сделать.

Я не хочу опрашивать базу данных из моего приложения. Я хотел бы иметь механизм запуска событий.

Ответы на вопрос(4)

Ваш ответ на вопрос