Linux(Android)系统Root实现原理

root原理

原理概述

1. 系统漏洞方案
主旨思想是查找系统漏洞,让本身具有root权限的进程执行打开root权限的操作。
2. 重烧eng boot.img方案
Android版本有user版本和eng版本的区别,其中eng版本可以用于开发调试,所以本身可以开启root权限。通过重烧eng boot.img版本来获取root权限。这个原理理解起来很简单,原理章节不再详述。

 Linux(Android)系统Root实现原理_第1张图片

死锁问题

root需要考虑两个问题:
1. root权限的获取;
2. root 权限的使用管理。


对应这两个问题,需要两个程序来解决:
1. su 负责获取root权限; 
2. SuperUser.apk负责对root权限进行授权管理。


有了这两个程序之后,将su拷贝到Android手机底层命令的执行目录(/system/bin)下并赋予执行权限,执行即可成功获得root权限。


但是这里有一个问题,拷贝到系统目录下的操作,和在系统目录下更改权限的操作,只有root权限才可以做这个操作。这就是一个死锁。

 

 

Linux(Android)系统Root实现原理_第2张图片

解决方法

对于3.2.2中提到的死锁问题,解决办法就是通过其它方式拷贝执行su来打破这个死锁。经过前人不断的积累探索,想到了一个方法,可以让本身具有root权限的进程来做这件事情。
但是系统本身的进程是不能被非root的用户操作的,所以我们只能采用非常规的方法:找系统漏洞。

 


这里引用网络上某位不知名前辈的一段话:

 

“Root 漏洞不是与生俱来的,这是全世界优秀的计算机黑客不懈努力的成果。也许那个你在夜店喝酒的夜晚,他们正寻找着系统的漏洞,一次次的测试,一次次的失败,最终在你醉得不省人事的时候,他们获取到了系统的最高控制权。他们欢呼,他们嚎叫,他们是全天下是聪明的人!”

 
经过牛人们的不懈探索,从而找到了我们需要的漏洞,拷贝和SuperUser.apk,并执行su。这样,我们就获得了root权限。

你可能感兴趣的:(安全)