摘自: http://www.cnblogs.com/jgjdev/p/3338621.html
引入SELinux,但目前只使用Permissive模式(显然这是一个过渡期,先引入再完善)。
SELinux有三种模式: Enforing模式,应用SELinux所设定的Policy, 所有违反Policy的规则(Rules)都会被SELinux拒绝。 Permissive模式,遵循SELinux的Policy,但是对于违反规则的操作只会予以记录而并不会拒绝操作。 Disable模式,完全禁用SElinux。
Permissive模式的记录日志存储在dmesg,制造商可以收集信息来改进Policy。
+No setuid/setgid programs:移除所有setuid/setgid程序
+ADB Authentication:4.2.2开始adb需要使用rsa密钥对来验证
+Restrict Setuid from Android Apps:/system分区挂载为nosuid
+Capability bounding:zygote和adb使用prctl(PR_CAPBSET_DROP)来取消不必须要的能力
+AndroidKeyStore Provider:给app提供一套密钥创建、保存api,使密钥无法被其他app访问
+KeyChain is BoundKeyAlgorithm:给app提供一套密钥保存api,使密钥无法被到处设备,即使root也不行
+NO_NEW_PRIVS:zygote使用prctl(PR_SET_NO_NEW_PRIVS)来防止给动态改变权限
+FORTIFY_SOURCE enhancements:在x86/mips的android上增加strchr/strrchr/strlen/umask调用的安全检测
+Relocation protections:移除android代码中的文本重定位信息
+Improved EntropyMixer: ~~~
+Security Fixes:bug信息已提供给Open Handset Alliance members,补丁已应用到Android Open Source Project
Restricted Profiles 类似于受限账户,主账户设置受限账户的桌面、可用的app。 主账户和受限账户运行在完全隔离的环境中。