最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Android Selinux 權(quán)限及問(wèn)題

 更新時(shí)間:2017年11月15日 08:35:39   作者:Andy.Lee  
本篇文章主要介紹了詳解Android Selinux 權(quán)限及問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

由于現(xiàn)做的是MTK平臺(tái),源碼路徑基于MTK, 不過(guò)高通大同小異

說(shuō)明

Android 5.0以后完全引入了 SEAndroid/SELinux 安全機(jī)制,這樣即使擁有 root 權(quán)限或 chmod 777 ,仍然無(wú)法再JNI以上訪問(wèn)內(nèi)核節(jié)點(diǎn)。

其實(shí)在 Android 4.4 就有限制的啟用此安全機(jī)制了。后面內(nèi)容都按照 5.0 以后介紹,4.4 會(huì)有些許差異。

SELinux Mode

SELinux 分為兩種模式,Android 5.0 后所有進(jìn)程都使用 enforcing mode。

enforcing mode: 限制訪問(wèn)
permissive mode: 只審查權(quán)限,不限制

SELinux Policy文件路徑

# Google 原生目錄 
external/sepolicy

# 廠家目錄,高通將 mediatek 換為 qcom
alps\device\mediatek\common\sepolicy
alps\device\mediatek\<platform>\sepolicy

編譯時(shí)將以合并的方式將廠家policy追加到Google原生。

Log

沒(méi)有權(quán)限時(shí)可以在內(nèi)核找到如下 log :

# avc: denied { 操作權(quán)限 } for pid=7201 comm=“進(jìn)程名” scontext=u:r:源類型:s0 tcontext=u:r:目標(biāo)類型:s0 tclass=訪問(wèn)類型 permissive=0

avc: denied {getattr read} for pid=7201 comm="xxx.xxx" scontext=u:r:system_app:s0 tcontext=u:r:shell_data_file:s0 tclass=dir permissive=0
``` 
## 權(quán)限修改
主要有三種方式,前兩種只能用來(lái)測(cè)試,第三種是推薦的正式處理方式。
### adb在線修改seLinux
```bash
# Enforcing - 表示已打開 ,Permissive - 表示已關(guān)閉
getenforce;  //獲取當(dāng)前seLinux狀態(tài)
setenforce 1; //打開seLinux
setenforce 0; //關(guān)閉seLinux

kernel中關(guān)閉

# alps\kernel-3.18\arch\arm64\configs\xxx_defconfig
CONFIG_SECURITY_SELINUX=y // 屏蔽此配置項(xiàng)

SELinux Sepolicy中添加權(quán)限

修改相應(yīng)源類型.te文件(基本以源進(jìn)程名命名),添加如下一行語(yǔ)句:

# 格式
allow 源類型 目標(biāo)類型:訪問(wèn)類型 {操作權(quán)限}; // 注意分號(hào)

# 實(shí)例,具體寫法參考源碼
allow system_app shell_data_file:dir{getattr read write};
allow mediaserver tfa9897_device:chr_file { open read write }; 
allow system_server tfa9897_device:chr_file rw_file_perms; 

chr_file - 字符設(shè)備 file - 普通文件 dir - 目錄

通常很少修改Google default 的policy, 推薦更新mediatek 下面的相關(guān)的policy.

新建節(jié)點(diǎn)

如果是自己新建的節(jié)點(diǎn),需要在 sepolicy 路徑下的 file_contexts 文件中做如下添加:

# 參考已有的格式
/dev/goodix_fp     u:object_r:goodixfp_device:s0

Android 5.0 修改的文件為device.te 和 file_contexts.be,而且device/mediatek/common/BoardConfig.mk 中的 BROAD_SEPOLICY_UNION 增加對(duì)應(yīng)的xxxx.te。

編譯

# 模塊編譯
mmm external/sepolicy
make -j24 ramdisk-nodeps & make -j24 bootimage-nodeps

# 整編
make -j24

ps添加權(quán)限后的neverallowed沖突

編譯報(bào)錯(cuò):

libsepol.check_assertion_helper: neverallow on line xxx ofexternal/sepolicy/domain.te ……

 原因:

新添加的sepolicy項(xiàng)目違反了domain.te 中規(guī)定的的總策略原則。所以該條權(quán)限策略不能添加,如果強(qiáng)行添加的話有CTS測(cè)試失敗的風(fēng)險(xiǎn)。

解決方法:

1.從運(yùn)行l(wèi)og中找到要訪問(wèn)的目標(biāo)名稱,一般是name字段后的名稱
avc: denied { read write } for pid=303 comm="mediaserver" name="tfa9890"dev="tmpfs" ino=3880 scontext=u:r:mediaserver:s0tcontext=u:object_r:device:s0tclass=chr_file permissive=0

2.找到相應(yīng)的*_contexts文件。

  一般有file_contexts, genfs_contexts,  property_contexts,  service_contexts 等文件

在contexts文件中指定要訪問(wèn)的目標(biāo)為一個(gè)“源類型 ”有權(quán)限訪問(wèn)的“目標(biāo)類型”

如:在file_contexts中添加: /dev/tfa9890     u:object_r:audio_device:s0

 舉例

添加權(quán)限:

在mediaserver.te中添加allow mediaserver device:chr_file { read write open};

編譯報(bào)錯(cuò):
libsepol.check_assertion_helper: neverallow on line 258 ofexternal/sepolicy/domain.te (or line 5252 of policy.conf) violated byallow mediaserver device:chr_file { read write open};

違反了domain.te 258的:
neverallow {domain –unconfineddomain –ueventd } device:chr_file { open read write}

運(yùn)行Log:
avc: denied { read write } for pid=303 comm="mediaserver"name="tfa9890" dev="tmpfs" ino=3880 scontext=u:r:mediaserver:s0 tcontext=u:object_r:device:s0tclass=chr_file permissive=0

修改步驟:

1.目標(biāo)名稱是: tfa9890, 其在系統(tǒng)中的路徑是: /dev/tfa9890,  是audio相關(guān)的設(shè)備文件
2.源類型是mediaserver, 在mediaserver.te 文件中發(fā)現(xiàn)其具有 audio_device 目標(biāo)類型的權(quán)限
3.所以在file_contexts 中添加 “/dev/tfa9890        u:object_r:audio_device:s0” 可以解決問(wèn)題

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android自定義View詳解

    Android自定義View詳解

    這篇文章主要為大家詳細(xì)介紹了Android自定義View,幫助大家戰(zhàn)勝Android自定義View,為今后的學(xué)習(xí)打下基礎(chǔ),感興趣的小伙伴們可以參考一下
    2016-06-06
  • 接口對(duì)象的實(shí)例化在接口回調(diào)中的使用方法

    接口對(duì)象的實(shí)例化在接口回調(diào)中的使用方法

    下面小編就為大家?guī)?lái)一篇接口對(duì)象的實(shí)例化在接口回調(diào)中的使用方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Android桌面組件App Widget完整案例

    Android桌面組件App Widget完整案例

    這篇文章主要介紹了Android桌面組件App Widget完整案例,較為詳細(xì)的分析了Android桌面組件App Widget的功能、定義及實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • Kotlin中協(xié)程的創(chuàng)建過(guò)程詳析

    Kotlin中協(xié)程的創(chuàng)建過(guò)程詳析

    使用協(xié)程的專業(yè)開發(fā)者中有超過(guò) 50% 的人反映使用協(xié)程提高了工作效率,下面這篇文章主要給大家介紹了關(guān)于Kotlin中協(xié)程創(chuàng)建過(guò)程的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • 解決Android Studio 格式化快捷鍵和QQ 鎖鍵盤快捷鍵沖突問(wèn)題

    解決Android Studio 格式化快捷鍵和QQ 鎖鍵盤快捷鍵沖突問(wèn)題

    每次打開qq使用android studio格式化的快捷鍵Ctrl + Alt +L時(shí),總是出現(xiàn)qq鎖鍵盤提示,怎么回事呢?下面小編給大家?guī)?lái)了android studio格式化的快捷鍵和qq快捷鍵之間的沖突的處理方法,需要的朋友參考下吧
    2017-12-12
  • Android編程設(shè)計(jì)模式之策略模式詳解

    Android編程設(shè)計(jì)模式之策略模式詳解

    這篇文章主要介紹了Android編程設(shè)計(jì)模式之策略模式,結(jié)合實(shí)例形式詳細(xì)分析了Android策略模式的概念、原理、實(shí)現(xiàn)方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-12-12
  • Android RecyclerView選擇多個(gè)item的實(shí)現(xiàn)代碼

    Android RecyclerView選擇多個(gè)item的實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了Android RecyclerView選擇多個(gè)item的實(shí)現(xiàn)代碼,仿網(wǎng)易新聞客戶端頻道選擇效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Android實(shí)現(xiàn)定制桌面的方法

    Android實(shí)現(xiàn)定制桌面的方法

    這篇文章主要介紹了Android實(shí)現(xiàn)定制桌面的方法,較為詳細(xì)的分析了Android定制桌面的相關(guān)注意事項(xiàng)及具體技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • Android 客戶端RSA加密的實(shí)現(xiàn)方法

    Android 客戶端RSA加密的實(shí)現(xiàn)方法

    這篇文章主要介紹了Android 客戶端RSA加密的實(shí)現(xiàn)方法的相關(guān)資料,希望通過(guò)本文能掌握RSA 的使用,需要的朋友可以參考下
    2017-08-08
  • Android編程獲取圖片數(shù)據(jù)的方法詳解

    Android編程獲取圖片數(shù)據(jù)的方法詳解

    這篇文章主要介紹了Android編程獲取圖片數(shù)據(jù)的方法,涉及Android網(wǎng)絡(luò)通信數(shù)據(jù)流傳輸及圖片操作相關(guān)技巧,需要的朋友可以參考下
    2017-07-07

最新評(píng)論

平度市| 宣恩县| 农安县| 大新县| 罗源县| 南投市| 龙游县| 天镇县| 黄大仙区| 怀化市| 富平县| 玉屏| 右玉县| 洛隆县| 灵宝市| 自治县| 长宁县| 黑山县| 江阴市| 潞城市| 卢氏县| 祁连县| 株洲县| 靖江市| 门源| 云浮市| 峡江县| 慈利县| 缙云县| 新丰县| 泸水县| 庆城县| 读书| 深泽县| 海淀区| 昔阳县| 阿城市| 鄂伦春自治旗| 孝义市| 榆树市| 芮城县|