现在使用安卓手机的用户群越来越大,很多手机厂商也会在手机里面预制很多应用,比如:游戏中心,购物市场等,有一些还会有一些广告。这些应用有时就像牛皮癣一样难看。可是用户正常情况下却无法删除,因为这些应用被预制在系统的只读分区,而且删除的权限需要system及以上。那如何删除这些应用呢?很多同学说:root。手机root后就可以想删除什么删除什么了,还有人说:只有root后这台手机我才是这太手机的真正拥有者!
那实际真是这样吗?为什么手机不给用户开放最高权限呢?windows用户都可以使用管理员登录,linux也可以激活root用户。为什呢手机不能呢?(手机厂商太小气?我可是花了好几千大洋呀)接下来我们看一下root的原理吧。
在安卓系统里面通过应用市场安装的app都是普通用户权限,如果需要使用电话,短信,网络,存储等都需要向系统申请,所以普通应用能获取的资源相当少(如果用户不允许的话)。那如果一个普通的APP要获取root权限,在系统里是绝对禁止的。安卓系统除了权限管理,还有沙箱机制,linux底层DAC权限和SElinux(增强型安全防护体系,selinux是根据用户的角色来分配权限,即使拿到root权限也没用)。
那么,一个普通应用,如某某大师想要获取root权限他会怎么做呢?一般情况下,他会找到一个内核漏洞进行提权,然后干掉selinux(否则selinux会有大量的拦截限制),最后植入su。植入su后就可以任意时间将自己切换为root(注意,某某大师root手机成功后,并不是把自己的权限提高到root,系统是不允许普通应用以root身份运行的。某某大师的高权限动作都是借助于su,和另外一个辅助root进程来干的)。这样某某大师就可以把系统只读分区重新挂载为可写,然后删除系统预制应用。
用户很高兴,牛皮癣终于删除了。我也拿到最高系统权限了,我想干嘛就能干嘛。同学别高兴的太早。某某大师可以使用su,其他bad guy也可以使用su的,bad guy同样可以调用su提权到root。很有可能你手机里的短信验证码在无任何感知的情况下就到黑客的手上了,因为他拿到了root,读取短信数据库轻而易举。不仅仅是短信,手机里面的一切都可能被恶意程序盗取。你的手机等于在裸奔,这应该就是手机厂商为什么不给root权限的原因吧!