2017-03-08 88 views
2

目前我正在嘗試弄清SELinux在Android上的能力,並且遇到了這個問題。基本上我想看看我是否可以禁止使用相冊應用程序訪問.jpeg文件。我可以同時獲得圖像的上下文和相冊應用程序的上下文。通過反射,我能夠從android.os.SELinux.java調用setFileContext(String path,String context)方法,但它返回false。更改SELinux Android上文件的上下文無法正常工作

所以,我通過基本上得到了相同結果的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格式的分區上時,改變那裏的上下文(這起作用)並將其放回原始目錄,舊的上下文又回來了。

有人可以向我解釋爲什麼是這樣嗎?爲什麼上下文不能在熔絲文件系統下改變,爲什麼新的上下文不能存活,使用上面的方法?有解決方案還是解決方法?

編輯:

所以我想通了,SELinux值是文件和文件系統保險絲不支持的一種推廣。當我嘗試獲取上下文時,我得到該文件的默認上下文。此默認上下文是來自列表還是其他文件,還是隻有一個來自SELinux.java的默認上下文?
編輯結束。

我的測試設備是一款搭載Android 6和root權限的HTC M8。

在此先感謝您的努力,非常感謝!

+0

你能解決這個問題嗎? – refi64

回答

0

禁用SELinux首先運行:

setenforce 0 

那麼你的CMD可能成功。

相關問題