Android SElinux相关

SEAndroid app分类
SELinux(或SEAndroid)将app划分为主要三种类型(根据user不同,也有其他的domain类型):

untrusted_app 第三方app,没有Android平台签名,没有system权限
platform_app 有android平台签名,没有system权限
system_app 有android平台签名和system权限

从上面划分,权限等级,理论上:untrusted_app < platform_app < system_app

权限规则增加:
adb logcat | grep avc
查看对应的缺少的log

或者adb shell进入提示后
dmesg | grep avc

1.标志性log 格式
    avc: denied  { 操作权限  }  for pid=7201  comm=“进程名”  scontext=u:r:源类型:s0  tcontext=u:r:目标类型:s0  tclass=访问类型  permissive=0
在相应源类型.te文件,添加如下格式的一行语句:(结尾别忘了分号)
  格式:allow  源类型 目标类型:访问类型 {操作权限}; 

搜索到权限阻止的log.比如:
avc:  denied  { set } for property=battery.level scontext=u:r:system_server:s0 tcontext=u:object_r:default_prop:s0 tclass=property_service

则将这行添加在后面的3个目录中,
allow system_server default_prop:property_service { set };

有时候avc denied的log不是一次性显示所有问题,要等你解决一个权限问题之后,才会提示另外一个权限问题。

加在任何一个文件中都有效,但是要尽量保持的source和已存在的文件名一致。
external/sepolicy
device/intel/sepolicy /

添加后的尝试编译语法是否有错:
mmm -B external/sepolicy
如果不报错则make bootimage可编译生效。

现在我们需要在有系统签名的应用(platform_app)通过JNI中访问自定义的设备节点: /dev/graphics/fb3。

log类似于: avc: denied { read write } for name=“/dev/graphics/fb3” dev=“tmpfs” ino=8245 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:graphics_device:s0 tclass=chr_file permissive=0

首先更改设备节点 /dev/graphics/fb3 的权限为666(在 system/core/rootdir/ueventd.rc 添加)
/dev/graphics/fb3   0666  root  graphics
编辑 device/intel/sepolicy/file_contexts 仿照这个文件里的写法,定义节点fb3。(这样做的好处是不改变系统原有的权限)
/dev/graphics/fb3       u:object_r:display_graphics_device:s0
修改 device/intel/sepolicy/device.te
type display_graphics_device, dev_type, mlstrustedobject;
修改 device/intel/sepolicy/platform_app.te
 allow platform_app display_graphics_device:chr_file rw_file_perms;


http://blog.csdn.net/u010164190/article/details/51353207
http://blog.csdn.net/u011006622/article/category/6372181

http://blog.csdn.net/u011006622/article/details/73467383
http://blog.csdn.net/u011006622/article/details/52668138
http://blog.csdn.net/u011006622/article/details/52252112
http://blog.csdn.net/u011006622/article/details/52238559
http://blog.csdn.net/u011006622/article/details/52213380
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值