http://liuyix.org/blog/2013/android-4-dot-3-selinux/
New Jelly Bean — Android 4.3于7月底发布,这次整体上变化不是很大,所以还是叫Jelly Bean。不过在底层,Android在安全上实际增强了不少,Android 4.3开始集成SELinux, 系统的安全性(潜力)提高了一个档次。
New Jelly Bean, New JB,Android 4.3指的都是Google新发布的Android 4.3系统,代号依旧是Jelly Bean
Absolutely NO!!
permissive
模式。enforce
模式,也不会是root的末日。我们还可以通过线刷的方法刷入修改的或者其他的定制ROM方法获取Root权限。这样做的前提是手机厂商不锁bootloader(从而给用户自由刷机的权利)。谷歌的Nexus系列就是不锁bootloader——可以使用fastboot oem unlock
解锁,之后就可以用fastboot
随意的修改定制手机ROM。 而三星手机没有强硬的采取严格的手段锁bootloader,可以用Samsung的官方刷机工具Odin1刷机,一样可以实现不锁bootloader的效果——随意修改定制手机。其他厂商就不太了解了。New Jelly Bean给root确实增加一些阻碍,这其中包括:增加了nosuid选项的system分区以及root用户的capabilities的限制。所以两位手机root的大神chainfire和koush在New JB上都采用了新的daemon 模式。
极大的增强了Android系统的安全性潜力,SELinux机制实际效用依赖于selinux policy
等SELinux的设定。SELinux的加入为Android进入更高安全性和保密性的团体和企业中提供了很大的便利,Android在企业市场有了更多的想象空间。
试举一栗子:涉密企业项目的成员移动设备定制化安全服务——可以由Android安全服务公司负责定制ROM,根据项目或者企业需求加入定制化的SELinux策略。好吧,Android移动安全领域的门槛又矮了一截子。
Google写的SELinux Guide(here)对部署和设置SELinux提出了指导性的概括。
SELinux模块包含了内核空间和用户空间两部分,配置SELinux需要使用相应的Android内核。
下载源代码至<root>/device/manufacturer/device-name/sepolicy
:
修改BoardConfig.mk
SELinux uses a whitelist approach, meaning it grants special privileges based upon role. Because the default policy provided by Android is so permissive, OEMs have great leeway in strengthening it. Here is how we recommend proceeding:
Use the latest Android kernel.
- Adopt the principle of least privilege.
- Address only your own additions to Android. The default policy works with the Android Open Source Project codebase automatically.
- Compartmentalize software components into modules that conduct singular tasks.
- Create SELinux policies that isolate those tasks from unrelated functions.
- Put those policies in *.te files (the extension for SELinux policy source files) within the /device/manufacturer/device-name/sepolicy directory.
- Release your SELinux implementation in permissive mode first.
- Analyze results and refine policy settings.
本节大部分信息都是从SEAndroid Wiki上获取.
Android 4.3 采用的是SEAndroid2,但是做了相当的精简和改变,其中没有以下部分3:
a restricted form of its sefinfo support for labeling apps
以外,没有任何MAC机制的中间件。auditd
,也就是说Android 4.3并没有一个收集SELinux审计log的daemon程序 (The audit daemon (auditd) for collecting SELinux audit denials and writing them to /data/misc/audit/audit.log. )security label
)所以如果想使用完整版的SEAndroid需要去下载使用独立的SEAndroid
未完待续…
有关Odin的XDA论坛地址:http://forum.xda-developers.com/showthread.php?t=2189539↩
SELinux项目地址:https://bitbucket.org/seandroid↩
http://selinuxproject.org/page/SEAndroid#Merge_Status↩