SEAndroid简介

新书上市《深入解析Android 5.0系统》

  以下内容节选自本书


SEAndroidSecurity Enhancementsfor Android(安全增强型Android)的缩写,这是一个把SELinux移植到Android中的项目,目前Android上的SELinux和标准Linux中的SELinux还有一些区别。如果希望了解这个项目的更多细节,可以访问网站http://selinuxproject.org/page/SEAndroid

SEAndroid的实现分成两大部分:

1)       内核中的SELinux安全模块,位于目录kernel/security/selinux下。这个模块是SELinux运行的核心,执行各种策略的检查工作,前面已经介绍过了。

2)       用户态工具,用来产生SELinux的策略文件。位于目录external/sepolicy下。这个目录中包括了系统中所有安全规程的定义文件。另外在external/libselinux目录下存放了libselinux库的源码,这个库文件提供了一些函数,用来帮助用户进程使用SELinux的功能。

在设备的根目录下有几个和SELinux相关的文件:

q file_contexts:这个文件中保存的是系统中所有文件的安全上下文。

q property_contexts:这个文件保存的是系统中所有属性的安全上下文。

q seapp_contexts:定义了用户,seinfo和域之间的关联,用于确定用户进程的安全上下文。

q sepolicy:这是一个二进制文件,保存的是系统策略,系统初始化时会把它设置到内核中。

/sys/fs/selinux目录下,有一个虚拟的SELinux的文件系统,这个目录下的文件是SELinux的内核和应用进行通信的接口。例如初始化内核需要的策略文件就是通过向load文件中写入策略数据完成的。/sys/fs/selinux目录的内容如下:

root@generic:/sys/fs/selinux # ls-l

-rw-rw-rw-root    root           0 1969-12-31 19:00 access

dr-xr-xr-xroot    root             1969-12-31 19:00 avc

dr-xr-xr-xroot    root             1969-12-31 19:00 booleans

-rw-r--r--root    root           0 1969-12-31 19:00 checkreqprot

dr-xr-xr-xroot    root             1969-12-31 19:00 class

--w-------root    root           0 1969-12-31 19:00 commit_pending_bools

-rw-rw-rw-root    root           0 1969-12-31 19:00 context

-rw-rw-rw-root    root           0 1969-12-31 19:00 create

-r--r--r--root    root           0 1969-12-31 19:00 deny_unknown

--w-------root    root           0 1969-12-31 19:00 disable

-rw-r--r--system  system         0 1969-12-31 19:00 enforce

dr-xr-xr-xroot    root             1969-12-31 19:00 initial_contexts

-rw-------system  system         0 1969-12-31 19:00 load

-rw-rw-rw-root    root           0 1969-12-31 19:00 member

-r--r--r--root    root           0 1969-12-31 19:00 mls

crw-rw-rw-root    root      1,   31969-12-31 19:00 null

-r--------root    root           0 1969-12-31 19:00 policy

dr-xr-xr-xroot    root             1969-12-31 19:00 policy_capabilities

-r--r--r--root    root           0 1969-12-31 19:00 policyvers

-r--r--r--root    root           0 1969-12-31 19:00 reject_unknown

-rw-rw-rw-root    root           0 1969-12-31 19:00 relabel

-r--r--r--root    root           0 1969-12-31 19:00 status

-rw-rw-rw-root    root           0 1969-12-31 19:00 user



你可能感兴趣的:(SEAndroid简介)