2015-09-03 5 views
5

У меня есть приложение для Android с кодом C, который использует системный вызов link (2), чтобы создать жесткую ссылку на существующий файл. Когда я запускаю приложение на Android 5.0.2, эта часть приложения работает. Когда я выполняю то же самое приложение на устройстве Android-M, системный вызов link() возвращает -1 «разрешение отклонено».Неужели Android M не разрешает жесткие ссылки?

Я заметил в моем журнале получает сообщение, как это: появляется

09-02 17:10:34.222 5291 5291 W ona.crackerjack: type=1400 audit(0.0:59): avc: denied { link } for name="fixed28" dev="mmcblk0p28" ino=82829 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=lnk_file permissive=0 

Этого сообщения рядом журнал сообщения моего приложения в эту ссылке() возвращенное -1 «доступ запрещен», а иногда и раньше, иногда позже.

Создает жесткую ссылку, считающуюся небезопасной? Я замечаю «scontext = u: r: untrusted_app». Есть ли способ сделать приложение доверенным, и если да, то пусть это приведет к работе системного вызова link()?

ответ

6

По-видимому, существуют новые правила SELinux, которые запрещают создавать жесткие ссылки (или, возможно, доступ к папке или файлу).

Обычные пользователи не могут изменять правила SELinux и даже с правами root, это не так просто.

Подробнее о SELinux: https://source.android.com/devices/tech/security/selinux/

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