-
rk3399_android7.1_软件开发指南_v2.09_20190527中的引用策略模块分析
资源介绍
12.4 分析引用策略模块
为了帮助深入理解引用策略是如何工作的,我们分析示例策略中为 ping程序制定的策
略的所有方面,尽管在示例策略中 ping程序有它自己的模块,在引用策略中 ping包括在一
个标识所有管理网络实用程序 netutils的模块中,我们可以在
policy/modules/admin/netutils.中发现这个模块。
注意:在引用策略中,我们尝试将策略片打包,便于安装时好理解,引用策略主要受
FC打包规范的影响,允许我们定义模块为可载入式模块,作为安装包的一部分,这就是为
什么 ping是和其它网络实用程序组合在一起的缘故,这些实用程序都是 FC 中相同软件包的
一部分,具体就是 iputils 软件包。
清单 12-3显示了一部分 netutils.te文件的内容,把这些与 ping有关的组件集中在一
起,回顾一下.te文件就是包括模块私有声明和规则的文件,我们通常可以在这个文件中发
现 type和 attribute 声明,首先注意在第 1行中使用了 policy_module()支持宏,所有模
块都必须使用 policy_module()作为它们.te文件的第一行,这个宏需要两个参数:模块名
和模块版本。目前,policy_module()支持宏只影响当模块作为可载入模块构建时的构建过
程,尽管如此,所有模块都强制要求使用它,它的功能将会扩展,如更好的调式支持。
清单 12-3.netutils(ping)私有模块文件(netutils.te)部分内容
从第 4行到第 7行,我们定义了域类型 type_t和入口点类型 ping_exec_t,这些
两个类型和示例策略的用途一样,引用策略实现域类型的目标是与示例策略中的规则起相同
作用,但实现方法完全不一样,注意第 6行我们调用了一个来自 init模块的接口,init模
块允许 ping域在系统初始化脚本中使用,这个接口完成的任务和清单 11-1示例策略 ping
模块中第 9行调用的宏几乎一样。
1 policy_module(netutils,1.0)
2 ########################################