AndroidAndroid Framework工作学习记录

SEAndroid安全机制(二)

2017-08-19  本文已影响0人  飞飞飞_Android

前一篇文章介绍了SEAndroid安全机制的框架,以及代码中各个文件的作用,接下来总结下遇到SEAndroid问题的解决办法。

1. 问题判定
2. 实例分析

遇到log如下:

    01-01 08:03:22.410000   217   217 W applypatch: type=1400 audit(0.0:16): avc: denied { read } for name="mmcblk0p15" dev="tmpfs" ino=3364 scontext=u:r:install_recovery:s0 tcontext=u:object_r:block_device:s0 tclass=blk_file permissive=0  

    neverallow { domain -kernel -init -recovery -vold -uncrypt -emsd -rild -radio_config} block_device:blk_file { open read write };  

其含义是:domain中除了 -kernel -init -recovery -vold -uncrypt -emsd -rild -radio_config这几个域对该文件类型有读写权限,其他都不允许。

neverallow { domain -install_recovery -recovery } recovery_block_device:blk_file write;

install_recovery拥有对recovery_block_device:blk_file 的读取权限。

type recovery_block_device, dev_type;
type block_device, dev_type;

block_device 和 recovery_block_device具有同样的属性值dev_type。

    /dev/block(/.*)?    u:object_r:block_device:s0  

定义的dev/block下面的文件都是block_device,而recover_block_device是没有定义的。我们可以定义我们要操作的文件为recover_block_device类型。

    allow install_recovery recover_block_device:blk_file { open read write };  
3.常用命令说明

getenforce 用于返回系统当前是处于enforcing状态还是permissive状态
setenforce用于切换系统的enforcing状态和permissive状态

permissive状态:处于该状态下,如果主体执行的操作违反了安全策略,还能继续执行,但是系统会把违反的策略记录下来。相当于debug模式。
enforcing状态:如果主体执行的操作违反了策略,将不能继续操作。

chcon dev_type abc.txt

这个例子将abc的安全上下文设置为dev_type。

chown system system dev/data..

参考链接:

http://www.jianshu.com/p/e67107e39c98
http://blog.csdn.net/luoshengyang/article/details/37749383

上一篇 下一篇

猜你喜欢

热点阅读