著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:droider An
链接:http://www.zhihu.com/question/21074979/answer/18293487
来源:知乎

Android 的提权 (root) 原理是什么? @Kevin 更多提到ROOT管理背后的原理,这就是Android和Linux中的SID的用途,这是所有类UNIX通用的申请处理高权限方式。其实在我的理解中应该是两个:1,提权2,ROOT对于 1,提权 是利用系统的漏洞,获得原本获取不了的权限,提升本应用的权限。已知的漏洞:1.a:之前提到的利用adbd的漏洞,在2.X时代有效。这个利用的过程还是比较复杂,时间也比较长;1.b:三星CPU的漏洞,比如在Galaxy系上可以利用这个漏洞来ROOT,这个漏洞就比较好利用了,之接在APK代码里就可以利用。在我的Galaxy Note上用过。提权不一定是对于主系统(Android系统),还有些是针对辅助系统(BOOTLOADER和RECOVERY)。1.c:三星系的手机可以利用一个BOOTLOADER的漏洞(我不太清楚是不是漏洞,但是三星本身没有官方解锁工具这一说的,难道是官方提供的?),可以任意的刷包,这样我们就可以利用这个途径来修改SYSTEM分区了,都有权限修改SYSTEM分区了,往上放个文件还不是分分钟的事。官方解锁的就是提供方式,允许用户刷入自定义的文件。1.d:OPhone系统的老版本(2.0、2.5)中(不知道还有没有人用这个系统)的RECOVERY存在一个关于路径的处理的漏洞。它有一个自己定义的upk升级包,只能处理/system/carrier下的文件,但在路径处理上估计是文本比较,你可以通过/system/carrier/../app这种方式来绕过它的管理系统,来修改/system/app下的文件。一般情况下主系统的漏洞对用户的危害最大,因为它使一个普通权限的应用可以访问到本没有权限访问的资源。对于三星CPU漏洞,如果一个应用利用它提高自己的权限,直接访问短信的数据库文件,而不是通过Android提供的Provider,系统就没有使用沙盒检查的机会,而且用户也不知道它们做了什么,你从它的权限申请列表上也看不到它会读取短信。对于辅助系统的漏洞,一个普通的应用就没有办法了,因为平时辅助系统是不启动的。但也并不是没有利用的可能。对于 2,ROOT 在我理解就是安装ROOT管理工具,对于Linux的发行版本来说,本身提供了ROOT管理工具su还有sudo。但是对于Android来说本身没有提供ROOT管理工具,所以我们需要利用提权的这个过程在系统中插入ROOT管理工具,以方便我们使用更高的权限。因为毕竟提权这个过程一般来说不是很容易实现的。比如我们提到的BOOTLOADER或RECOVERY的漏洞,是没有办法在主系统中使用的,所以需要安装ROOT管理工具以在主系统中使用。ROOT之后因为可以修改系统,所以我们也有机会修复已知的漏洞,比如上面提到的三星CPU的漏洞。以下由于本身半桶水水平,可能不正确,请轻拍:对于ROOT本身来说不会降低系统安全性,除非ROOT管理器本身又有漏洞。所以通过官方解锁的方式,使用安全的RECOVERY和安全的ROOT管理器,与官方的安全性一致。但是两个黑色的“安全”提醒着我们,市面上鱼龙混杂的ROOT工具并不是都安全的,所以使用时一定选用大家认可的,安全的方式。例如说我们平时用的SuperU.apk和与其相配的su应用,在应用层申请ROOT权限时,都会提示用户许可。但是针对一些黑色的ROOT的管理工具,它如果留下后门,对于一些特定的请求不提示直接同意,而且不记录日志的话,这样就像在自己的设备中下了一个定时炸弹一样。

更多相关文章

  1. 深入理解Android系统多用户
  2. mk中的 android:sharedUserId和LOCAL_CERTIFICATE作用 应用程序
  3. Android修改系统时间(应用程序获得系统权限)
  4. 利用Android(安卓)Studio、MAT对Android进行内存泄漏检测
  5. Android(安卓)的提权 (root) 原理是什么?
  6. Android(安卓)SystemProperties (java) 权限问题
  7. Android(安卓)自定义权限 ( )
  8. 不需要任何权限获得Android设备的唯一ID
  9. Android中的文件权限操作

随机推荐

  1. Android(安卓)touch screen keyboard 移
  2. Android客户端与服务器交互方式(1)
  3. vue结合android,mint中popup和picker实现
  4. Android版本更新(断点下载)
  5. 探究J2ME和Android的几大区别
  6. android微信朋友圈分享
  7. android进程重启及activity恢复
  8. Android Edittext设置android:imeOptions
  9. 性能优化——Android图片压缩与优化的几
  10. Android探索之旅 | 面向对象和Java基础