现在的位置: 首页 > 综合 > 正文

手动Root(了解Root原理)

2018年02月17日 ⁄ 综合 ⁄ 共 929字 ⁄ 字号 评论关闭

一、概要

Root的实质就是获得管理员权限,可以对系统进行无所不能的操作。通过执行破解程序,临时获得Root权限,将su和Superuser.apk这两个文件分别复制到/system/xbin和/system/app目录下,并使用chmod
0644 命令,获得所有的操作权限。Root的本质就是往 /system/bin/ 下放一个su文件,不检查调用者权限的su文件。普通程序可以调用该su来运行root权限的命令。superuser.apk中就自带了一个这样的su程序。

二、方法

一般来说,Root分为以下三个步骤:

1、adb push su /system/bin

     2、adb push SuperUser.apk /system/app

     3、adb shell chmod 4755 /system/bin/su

但是一般来说,以上简单的三步是行不通的,这是为什么呢?

1、user版的/system路径是只读权限

2、 chmod需要Root权才能运行

3、有些系统在启动时会自动将su的4755权限设成755,甚至直接删除su

这个时候,我们需要在fastboot模式烧制一个boot.img即可。

三、原理

Android系统的本质也就是一个Linux系统,因此很多命令在Andriod上都是通用的,比如用的多的su命令,这个也是Root时所需要的。一般来说,大多都是利用系统的漏洞,将su和superuser.apk刷到系统去,并使得获得最高权限。

在手机上获取Root权限的代码如下:

Process process = Runtime.getRuntime().exec("su");
//创建一个命令行执行命令
DataOutputStream dos = new DataOutputStream(process.getOutputStream());
//创建一个数据输出流
/*
写入相关Linux命令
*/
dos.flush();
//情况缓冲区


其实不难看出,默认的SU程序只能shell和su执行,如果将这个限制拿掉,那就达到了Root的目的了。这好比植入木马的概念,将重新打包好的su替换掉原来的su,并使用superuser进行权限管理,于是破解Android系统的目的也就达到了。



【上篇】
【下篇】

抱歉!评论已关闭.