您的位置:首页 > 移动开发 > Android开发

SEAndroid 介绍及其基本实现原理

2014-05-08 10:44 537 查看
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 sync

3.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的系统界面。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: