
1.权限警告
最近在调试AndroID的selinux配置,主要出现了一下三种权限警告,在此记录一下
2.权限警告语法avc: denIEd { create } for pID=2984 comm=“test_app” path="/dev/socket"scontext=u:r:test_app:s0tcontext=u:r:test_app:s0tclass=netlink_route_socket permissive=1
avc: denIEd {ioctl} for pID=2984 comm=“test_app” path="/dev/socket" dev=“tmpfs” ino=317 ioctlcmd=8916scontext=u:r:test_app:s0tcontext=u:r:test_app:s0tclass=udp_socket permissive=1
avc: denIEd { read } for pID=2984 comm=“test_app” path="/dev/socket"name=“my_dir” dev=“mmcblk0p11” ino=24scontext=u:r:test_app:s0tcontext=u:r:device:s0tclass=chr_file permissive=1
3.权限配置语法avc: denIEd { *** 作权限 } for pID=7201 comm=“进程名” scontext=u:r:源类型:s0 tcontext=u:r:目标类型:s0 tclass=访问类别 permissive=0
1. *** 作权限,即需要执行的权限
2.源类型,即相应的te文件中的类型
3.目标类型,即相应的te文件的类型
4.访问类别,即目标类型的相关类别
4.配置普通权限allow 源类型 目标类型:访问类别 {权限};
5.配置ioctl特殊权限avc: denIEd { create } for pID=2984 comm=“test_app” path="/dev/socket" scontext=u:r:test_app:s0 tcontext=u:r:test_app:s0 tclass=netlink_route_socket permissive=1
在源码中,我们自定义的sepolicy文件夹,打开test_app.te文件
在其中添加:allow test_app test_app:netlink_route_socket { create }
avc: denIEd { ioctl } for pID=2984 comm=“test_app” path="/dev/socket" dev=“tmpfs” ino=317ioctlcmd=8916scontext=u:r:test_app:s0 tcontext=u:r:test_app:s0 tclass=udp_socket permissive=1
6.配置新增节点权限在源码中,我们自定义的sepolicy文件夹,打开test_app.te文件
如果在其中添加:allow test_app test_app:udp_socket { ioctl },则编译会提示”never allow”错误
需要修改为
net_domain(test_app)allowxperm test_app test_app:udp_socket ioctl { SIOCSIFADDR };
其中SIOCSIFADDR**是在system/sepolicy/public/ioctl_defines配置文件中与值ioctlcmd=8916相对应:define(`SIOCSIFADDR’, `0x00008916’)
总结avc: denIEd { read } for pID=2984 comm=“test_app” path="/dev/socket"name=“my_dir”dev=“mmcblk0p11” ino=24 scontext=u:r:test_app:s0 tcontext=u:r:device:s0 tclass=chr_file permissive=1
在源码中,我们自定义的sepolicy文件夹,打开test_app.te文件
如果在其中添加:”type my_dir_device, dev_type;”,声明my_dir_device为设备类型
打开file_contexts文件文件
如果在其中添加:” /dev/my_dir u:object_r:my_dir_device:s0”,声明my_dir_device为/dev/my_dir对应的节点
打开test_app.te文件文件
如果在其中添加?**allow test_app my_dir_device:chr_file { read }***;
以上是内存溢出为你收集整理的Android SELinux配置全部内容,希望文章能够帮你解决Android SELinux配置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)