現在、私はSELinuxがAndroid上でできることを理解しようとしており、この問題に遭遇しました。基本的には、アルバムアプリで.jpegファイルへのアクセスを禁止できるかどうかを確認したいと思います。画像のコンテキストとアルバムアプリプロセスのコンテキストの両方を取得できました。リフレクションを介して、私はandroid.os.SELinux.javaからsetFileContext(String path、String context)メソッドを呼び出すことができましたが、falseを返しました。Android上のファイルのSELinuxコンテキストを正しく変更しない
私は基本的に同じ結果を得たadbシェルを介して "chcon"コマンドを試しました。研究の少し後
chcon -v u:object_r:fuse:s1 ./storage/emulated/0/DCIM/100MEDIA/IMAG0001.jpg
chcon './storage/emulated/0/DCIM/100MEDIA/IMAG0001.jpg' to u:object_r:fuse:s1
chcon: './storage/emulated/0/DCIM/100MEDIA/IMAG0001.jpg' to u:object_r:fuse:s1:
Operation not supported on transport endpoint
、私は、ファイルがext4ファイルシステム上にある場合にのみ、コンテキストを変更することができることを見出したが、画像は、ヒューズ・ファイル・システム下にありました。しかし、イメージをext4形式のパーティションに置いたときに、そこにあるコンテキストを変更して元のディレクトリに戻すと、古いコンテキストが戻ってきます。
誰かが私にその理由を説明してもらえますか?ヒューズファイルシステムの下でコンテキストを変更できない理由と、上記の方法を使用して新しいコンテキストが生き残れないのはなぜですか?解決策または回避策はありますか?
EDIT:
だから私は、SELinuxのコンテキストがファイルの拡張子であり、そのFUSEファイルシステムは、それらのをサポートしていないことを考え出しました。コンテキストを取得しようとすると、そのファイルのデフォルトコンテキストが取得されます。このデフォルトのコンテキストは、リストや他のファイルから来るのでしょうか、SELinux.javaから出るデフォルトのコンテキストは1つだけですか?
EDIT over。
私のテストデバイスはAndroid 6およびルートアクセス権を持つHTC M8です。
ご協力いただきありがとうございます。最初の実行によって
まだ解決できましたか? – refi64