SEAndroid 介绍及其基本实现原理

来源:互联网 发布:unity3d raycast 编辑:程序博客网 时间:2024/06/06 22:36

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)模型之间的抽象层,用于提供细粒度的访问控制,但是并不是针对简化管理。

                       SELinux 運作的各元件之相關性



                                        

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


 
1 0