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



更多相关文章

  1. 混淆编译
  2. Ubuntu 14.04.3上配置并成功编译Android(安卓)6.0 r1源码
  3. 如何移植library到android(三)
  4. Java.lang.UnsatisfiedLinkError :nativeSetExternalAssetPath错
  5. Tensorflow编译android平台的so库和jar包
  6. android 反编译心得
  7. ubuntu 12.04 build android的问题
  8. Master OpenCV with Pratical Computer Vision Projects——如何
  9. Eclipse编译带so库或jar包的android应用

随机推荐

  1. 缓存--序
  2. TCPIP卷一(3):静态路由与CEF下的负载均衡
  3. 缓存+redis+容器
  4. 让DNS运行在容器中
  5. TCPIP卷一(8):EIGRP的组建和邻居状态机
  6. c语言自学打卡
  7. 故障复盘
  8. 成长的时候为什么会迷茫
  9. 你的个人信息,只值5毛!
  10. 微信授权扫码点餐-新特性React16