Android tmpfs доступны для записи пользователем

На рутованном устройстве Android 6.0.1 я бы хотел, чтобы пользователь мог записать tmpfs. Я делаю:

mkdir /sdcard/test
su
mount -t tmpfs -o size=512m tmpfs /sdcard/test
#Note that the permissions of /sdcard/test have changed
chmod 0771 /sdcard/test
chown root:sdcard_rw /sdcard/test
exit
touch /sdcard/test/aa

смонтировать отчеты:

tmpfs /storage/emulated/0/test tmpfs rw,seclabel,relatime,size=524288k 0 0

Но я получаю:

touch: '/sdcard/test/aa': Permission denied

Поэтому я не могу писать в /sdcard/test как обычный пользователь (через оболочку или приложение). Что я делаю неправильно? Я также попытался создать монтирование в /data/, и это та же проблема.

РЕДАКТИРОВАТЬ 1:

Я пробовал на устройстве Android 4.4, и он работает. Итак, что-то изменилось и было ограничено в более поздней версии. Мне интересно, если 5.x также влияет.

РЕДАКТИРОВАТЬ 2:

Как ни странно, mount сообщает дважды о точке монтирования:

tmpfs /mnt/runtime/default/emulated/0/test tmpfs rw,seclabel,relatime,size=524288k 0 0
tmpfs /storage/emulated/0/test tmpfs rw,seclabel,relatime,size=524288k 0 0

РЕДАКТИРОВАТЬ 3:

Когда я касаюсь файла как пользователь, ядро ​​сообщает следующее:

[54484.588865] type=1400 audit(1452975001.917:150): avc: denied { write } for pid=30781 comm="touch" name="/" dev="tmpfs" ino=398770 scontext=u:r:shell:s0 tcontext=u:object_r:tmpfs:s0 tclass=dir permissive=0

1 ответ

Решение

"su -c setenforce 0" решает проблему. См. https://source.android.com/security/selinux/validate.html

Другие вопросы по тегам