5

ルート化された 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 はマウント ポイントを 2 回報告します。

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
4

1 に答える 1

2

「su -c setenforce 0」で問題が解決します。https://source.android.com/security/selinux/validate.htmlを参照してください

于 2016-01-17T01:34:01.590 に答える