运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

Android SELinux配置

运维开发网 https://www.qedev.com 2021-05-18 14:29 出处:51CTO 作者:wx600c1fae44e2c
Android SELinux配置,1.权限警告最近在调试Android的selinux配置,主要出现了一下三种权限警告,在此记录一下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 permi

1.权限警告

最近在调试Android的seLinux配置,主要出现了一下三种权限警告,在此记录一下

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

2.权限警告语法

avc: denied { 操作权限 } for pid=7201 comm=“进程名” scontext=u:r:源类型:s0 tcontext=u:r:目标类型:s0 tclass=访问类别 permissive=0


1.操作权限,即需要执行的权限

2.源类型,即相应的te文件中的类型

3.目标类型,即相应的te文件的类型

4.访问类别,即目标类型的相关类别

3.权限配置语法

allow 源类型 目标类型:访问类别 {权限};

4.配置普通权限

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 }

5.配置ioctl特殊权限

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


在源码中,我们自定义的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’)

6.配置新增节点权限

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 }***;

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号