1. 什么是SEAndroid
SEAndroid(Security-Enhanced Android)是有美国国家安全局(NSA)开发的开源安全项目,是在谷歌Android 开源软件的基础上开发而来,主要是将原本运用在Linux操作系统上的MAC强制存取控管套件SELinux,移植到Android平台上。通过SELinux的MAC安全机制强化Android操作系统对App的存取控管,建立基于角色的安全管控机制,确保Android 内核及上层应用程序的安全运行。
SELinux 是 2.6 版本的 Linux内核中提供的强制访问控制(MAC)系统。对于目前可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的。SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。SELinux 是美国国家安全局「NSA=The National Security Agency」 和SCC(Secure Computing Corporation)开发的 Linux的一个扩张强制访问控制安全模块,2000年以 GNU GPL 发布。
2. SEAndroid 的核心理念及工作原理
SEAndroid的核心理念是基于角色的访问控制(Role-based access control,RBAC)是通用的安全模型,可以通过把角色分配给用户然后把权限分配给这些角色来简化管理。RBAC 在 Security-Enhanced Linux (SELinux) 中用作用户与底层类型增强(Type Enforcement,TE)模型之间的抽象层,用于提供细粒度的访问控制,但是并不是针对简化管理。
3. SEAndroid 源代码下载及编译
3.1 源代码下载
git clone https://bitbucket.org/seandroid/manifests.git mkdir seandroid cd seandroid repo init -u https://android.googlesource.com/platform/manifest repo sync cp ../manifests/local_manifest.xml .repo repo sync3.2 源代码编译
为了可以在Nexus 5机器上运行,我们将编一个可以在Nexus 5上可以运行的调试版本。
编译之前请根据http://source.android.com/source/initializing.html 的要求对本地环境进行配置。
默认为Host 为Ubuntu x64位版本。
配置完成后执行下面命令,完成对seandriod的编译。
$cd seandroid
$. build/envsetup.sh
$lunch
选择hammerhead_userdebug 选项,
$make [-j8]
4. SEAndriod 在Nexus 5上的烧写及功能验证
完成编译后,将在seandroid/out/target/product/hammerhead/下生产可以烧写到Nexus 5上的镜像文件。
此时,连接Nexus 5手机,如果手机未解锁,需先解锁手机。
解锁过程如下:
1. 关闭nexus 5手机,同时按下开机+Volume up+Volume Down,手机进入烧写模式。
2. 连接手机到Ubuntu
3. 执行
$fastboot unlock
完成对手机的解锁。
烧写编译好的seandroid 镜像。
$fastboot -w flashall
烧写完成后,nexus 5会自动重启,进入seandroid的系统界面。