Skip to content

一键root原理

cheyiliu edited this page Dec 4, 2014 · 11 revisions

获得root权限的方法

  • 修改rom的方法,直接把su命令和su命令管理器程序给刷到rom里;
  • 一种和修改rom类似,先刷recovery,再用recovery安装升级包,这个升级包里,包含了su命令和su命令管理器程序。这种方法唯一的坏处是会破坏原始recovery,有些机器会有记录,导致不能保修(虽然还是有方法清除这个纪录,但麻烦);
  • 最后一种很牛x,就是live root,360一键root就是一个典型例子。连上usb线,windows机器里的360一键root运行一会,就通过usb把su和root权限管理器给安装到/system/{bin,app}下了。这是何等的简单粗暴。一个普通应用程序做到了只有root权限才能做到的事情。
    • live root,其原理是利用系统的漏洞提权,在*inux系统里,有了root权限,就可以对整个系统为所欲为了。 普通程序想获得root权限,不是那么容易的,需要漏洞。

一键root原理

  • 利用漏洞暂时获取root权限
  • 使/system/bin/ 目录可写,并拷贝su到/system/bin/
  • 将授权管理的标准Android软件包(Superuser.apk)复制到手机并安装

root漏洞有哪些

z4root root过程

  • 未验证,TODO
下面以SuperOneClick为例介绍这个过程。

只提目录中的三个重要文件 1. rageagainstthecage 2. su 3. Superuser.apk

步骤一 运行rageagainstthecage

1) 将文件放在/data/local/tmp下,其他目录无法执行。命令如下:

F:/Own/Phone/Samsung/Tools/SuperOneClick>adb push rageagainstthecage /data/local/tmp

2) 使用adb shell,修改rageagainstthecage文件权限

F:/Own/Phone/Samsung/Tools/SuperOneClick>adb shell

$ cd /data/local/tmp

cd /data/local/tmp

$ chmod 777 rageagainstthecage

3) 使用adb shell,运行rageagainstthecage

$ ./rageagainstthecage

执行此步骤后再次使用adb shell,会发现提示符为#,已经在电脑Shell上获取了Root权限

步骤二 将/system修改为可读写,把su复制到/system/bin/

1)上步骤一成功出现的#号提示符下,修改/system

# mount -o remount rw /system

#

2)另开一个命令行窗口,复制su至/system/bin

F:/Own/Phone/Samsung/Tools/SuperOneClick>adb push su /system/bin

su这个文件的功能,便是实现:普通用户至root超级用户的权限切换!

步骤三:将授权管理的标准Android软件包(Superuser.apk)复制到手机并安装

这个过程很简单,不再赘述,就是adb push与adb install。授权管理其实

就是管理哪些程序能够使用su。也就意味着对超级用户权限的使用进行管理。

总结一下上述过程

在提取Root权限过程中,只有两个重要的文件:

rageagainstthecage

su

rageagainstthecage负责直接破解获取Root权限,然后才能修改/system/。

su如果只放在/data/local/tmp目录下,是没有权限运行的。

所以需要把su放在/system/bin目录下。以供以后的手机应用程序使用。

SparkyRoot root过程

  • 未验证
以下是其操作过程:
adb remount
adb push su /system/bin/su
adb shell chown 0.0 /system/bin/su
adb shell chmod 06755 /system/bin/su
adb push busybox /system/bin/busybox
adb shell chown 0.0 /system/bin/busybox
adb shell chmod 0755 /system/bin/busybox
adb push Superuser.apk /system/app/Superuser.apk
adb shell chown 0.0 /system/app/Superuser.apk
adb shell chmod 0644 /system/app/Superuser.apk
adb push RootExplorer.apk /system/app/RootExplorer.apk
adb shell chown 0.0 /system/app/RootExplorer.apk
adb shell chmod 0644 /system/app/RootExplorer.apk
adb shell rm /data/local.prop
adb shell rm /data/local/tmp
adb shell mv /data/local/tmp.bak /data/local/tmp
adb reboot

android su 源码

  • /android-4.3.1-r2/system/extras/su/su.c

root过的手机, app以root权限运行命令

相关工具

  • 360一键root
  • z4root
  • 百度一键root

ref

Clone this wiki locally