android selinux 编译,Android应用开发Android SElinux相关

本文将带你了解Android应用开发Android SElinux相关,希望本文对大家学Android有所帮助。

"

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;

"

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值