主旨思想是查找系统漏洞,让本身具有root权限的进程执行打开root权限的操作。 重烧eng boot.img方案 Android版本有user版本和eng版本的区别,其中eng版本可以用于开发调试,所以本身可以开启root权限。通过重烧eng boot.img版本来获取root权限。这个原理理解起来很简单,原理章节不再详述。
root需要考虑两个问题: (1)root权限的获取; (2)root 权限的使用管理。 对应这两个问题,需要两个程序来解决: (1)su 负责获取root权限; (2)SuperUser.apk负责对root权限进行授权管理。 有了这两个程序之后,将su拷贝到Android手机底层命令的执行目录(/system/bin)下并赋予执行权限,执行即可成功获得root权限。 但是这里有一个问题,拷贝到系统目录下的操作,和在系统目录下更改权限的操作,只有root权限才可以做这个操作。这就是一个死锁。
对于上文提到的死锁问题,解决办法就是通过其它方式拷贝执行su来打破这个死锁。经过前人不断的积累探索,想到了一个方法,可以让本身具有root权限的进程来做这件事情。 但是系统本身的进程是不能被非root的用户操作的,所以我们只能采用非常规的方法:找系统漏洞。 这里引用网络上某位不知名前辈的一段话: “Root 漏洞不是与生俱来的,这是全世界优秀的计算机黑客不懈努力的成果。也许那个你在夜店喝酒的夜晚,他们正寻找着系统的漏洞,一次次的测试,一次次的失败,最终在你醉得不省人事的时候,他们获取到了系统的最高控制权。他们欢呼,他们嚎叫,他们是全天下是聪明的人!” 经过牛人们的不懈探索,从而找到了我们需要的漏洞,拷贝和SuperUser.apk,并执行su。这样,我们就获得了root权限。