在有些应用中,我们需要获取root权限,比如删除系统自带的应用程序等,下面介绍一般应用程序如何获取root:
1. root手机应用程序能获取root权限的前提是手机已经被root,一般手机厂商在出厂时,都会将su命令去掉,防止一般应用获取root权限,所以需要root手机。一般有两种root手机的方法:一种是手机厂商自己提供root工具,另一种是利用手机漏洞将su和superuser.apk push到手机中。superuser用于管理获取root权限的应用程序,所以其实,root手机就是将su命令放入手机/system/xbin目录以及安装superuser.apk。
2. 应用程序获取root权限应用程序通过执行su命令切换到root用户获取root权限,然后执行命令,如下所示:
3. root过程中可能遇到的问题
最常见的一个错误就是 "su: uid xxxxx not allowed to su"。出现这个错误的原因是因为su限制了获取root的用户,看su的源代码如下(system/exras/su/su.c):
观察源代码16-17行发现 默认只有AID_ROOT和 AID_SHELL用户支持su命令,所以我们可以将18行的“return 1”这句话注释掉,即可。