L
O
A
D
I
N
G

安卓系统root指北(采用adb+Supersu的方案)


接上篇文章,这里来讲一下我这两天自己摸索出来的安卓root方法。

一、必备知识

1.何为root及root的分类

因为Android基于Linux内核,所以很多东西都是互通的。熟悉Linux的同学都知道,root就是系统的超级用户,拥有rm -rf /的顶级权限(,而没法得到root权限的话就相当于你只能做一个普通的系统用户了,想要修改一点系统的内容简直寸步难行,而Android默认就是不给你这种权限的。

root权限又可以分为adb中的root权限应用能获得的root权限

在adb中,如果你获得了root权限,那么就相当于你自己获得了系统的完全控制权,也就意味着你可以执行rm -rf /了,当然不建议大家去轻易尝试这个指令哈。

而应用能获得的root权限则更为复杂一些,需要给系统中植入能够给进程操作提级的su程序,跟Linux中概念类似,用户用这个程序进行操作就相当于获得了root用户的权限。

2.安卓系统的基本构成

从最大的层面上来看,安卓系统有三部分构成:主系统恢复系统RecoveryCPU引导系统BootLoader。下面是一些名词的基本介绍:

  1. Bootloader(引导加载程序):是一个位于设备内存中的程序,负责启动操作系统。Bootloader的主要任务是在设备启动时加载操作系统内核,并将控制权交给操作系统。在安卓设备上,Bootloader还负责执行各种启动阶段的初始化和配置工作。

  2. 解锁 Bootloader: 一些设备的Bootloader是被锁定的,这意味着用户不能轻易修改或刷写自定义固件。一些设备允许用户解锁Bootloader,使其可以刷入自定义固件或操作系统。解锁Bootloader可能需要特定的步骤,且会导致设备的数据擦除。

  3. Fastboot 模式: Fastboot 是一种用于与设备交互的协议和工具。通过 Fastboot,用户可以在设备上执行各种操作,例如刷入新的Bootloader、Recovery或操作系统。使用 Fastboot 需要连接设备到计算机,并在计算机上安装相应的驱动和工具。

  4. Recovery 模式: Recovery 模式是一个独立于主操作系统的环境,允许用户执行一些高级的系统维护和恢复任务。在Recovery模式下,用户可以刷入更新、备份和恢复系统等操作。

二、adb命令行(android debug bridge)中如何以root用户进行操作

如果在adb中能够获得root用户的权限,那么下一步为应用授予root权限就会相对简单一点,那么adb中如何获得root用户权限呢?有如下两种情况:

2.1情况一:系统自带adb的root权限

这种情况你会发现直接执行adb shell就能够以root用户的身份操作,或者可以执行su命令提级为root用户,如果满足这两种那么恭喜你,可以直接看下一部分了

2.2情况二:无法提级为root用户

没有权限提级为root用户,这时就需要从头做起了。需要按照以下步骤进行操作(或者你可以尝试使用一些所谓的一键root程序,网上有很多,但是个人不推荐且成功率低):

2.2.1解BL锁(如果有的话)

如果你的设备有BL锁,必须先想办法解锁才能进行下一步操作。

2.2.2刷入新的recovery镜像

解开BL锁之后,通过fastboot刷入一个新的recovery镜像来替换原有恢复系统,推荐**TWRP(Team Win Recovery Project)**。TeamWin - TWRP

2.2.3运行TWRP,刷入root软件或带root的ROM包

根据你设备的类型启动TWRP系统,一般手机是长按电源键加音量上键,电视盒子就五花八门了。

启动后,你可以有两种选择(选择你喜欢的一种即可)

  1. 下载Supersu.zip,按照TWRP的说明将其刷入主系统(本质是用root权限修改主系统的某些文件,如增加su程序)。(官方下载地址:Chainfire SuperSU Download - Official Download Page (supersuroot.org)

  2. 下载别人改好的带Supersu(或其他root权限管理软件)的ROM包,根据TWRP的说明刷入即可。

三、为应用授权root权限(adb方式)

注意:如果在上一部分中你属于情况二,并且已经按照步骤完成所有操作,那么你已经可以为应用授予root权限了,用你的root权限管理软件,如Supersu进行权限管理即可。

以下内容仅上述情况一的用户需要阅读!

如果你的adb可以提级为root用户,那么说明你的系统已经root了一部分,只是无法为应用授权root权限而已(或者说是没有一个管理应用root权限的工具)。但是不要紧,既然已经有了系统的root权限,那么直接动手去安装一个root权限管理工具就好了,例如Supersu,由于它有自己配套的su程序,原来的su程序肯定是不能用了,当然这个替换操作会由Supersu的替换脚本自己完成。

我们只需按照以下步骤就能安装好Supersu,无需刷入TWRP,也无需刷入新的系统。

  1. 下载Supersu的Zip包(其中包含各种CPU的依赖文件)Chainfire SuperSU Download - Official Download Page (supersuroot.org)

  2. 将下好的supersu.zip推到系统的/tmp目录

    adb push /your/path/super.zip /tmp/
  3. 解压出安装脚本

    unzip /path/to/supersu.zip META-INF/com/google/android/* -d /tmp
  4. 执行安装脚本

    sh /tmp/META-INF/com/google/android/update-binary dummy 1 /path/to/supersu.zip

如果执行安装脚本的过程中发现没有某些指令,比如unzip,我们需要去下载一个自己CPU能用的busybox程序(Index of /downloads/binaries (busybox.net)),将其用adb上传到/sbin目录下,然后执行:

cd /sbin
busybox --install .

至于为什么是/sbin目录而不是系统的/system/xbin这些目录,是因为我看了脚本之后发现它判断系统是否支持相应指令时用的是/sbin目录,有点奇怪,但是也只能这么干了。

执行完上述步骤以后重启设备,此时reboot命令可能失效,建议手动重启,重启后会发现Supersu已经接管app的root授权,至此系统成功完成root。

或者可以采用下图中的方案一手动注入有关文件,并设置su的开机启动(但是建议用脚本来安装,毕竟方便^_^)

四、相关软件下载

用到的程序官网我已经附在对应部分后面了。

推荐一篇su有关的文章:How-To SU (chainfire.eu)

如果官网无法访问,也可以去我的资源网站:主页 | 叁月柒の资源库 (sanyue.site),里面有2.82版本的Supersu和busybox等,github授权登录后去/电脑程序/电视系统目录查看。


文章作者: 叁月柒
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 叁月柒 !
评论
  目录