赞
踩
接上篇文章,这里来讲一下我这两天自己摸索出来的安卓root方法。
因为Android基于Linux内核,所以很多东西都是互通的。熟悉Linux的同学都知道,root就是系统的超级用户,拥有rm -rf /
的顶级权限(,而没法得到root权限的话就相当于你只能做一个普通的系统用户了,想要修改一点系统的内容简直寸步难行,而Android默认就是不给你这种权限的。
root权限又可以分为adb中的root权限和应用能获得的root权限。
在adb中,如果你获得了root权限,那么就相当于你自己获得了系统的完全控制权,也就意味着你可以执行rm -rf /
了,当然不建议大家去轻易尝试这个指令哈。
而应用能获得的root权限则更为复杂一些,需要给系统中植入能够给进程操作提级的su程序,跟Linux中概念类似,用户用这个程序进行操作就相当于获得了root用户的权限。
从最大的层面上来看,安卓系统有三部分构成:主系统,恢复系统Recovery和CPU引导系统BootLoader。下面是一些名词的基本介绍:
- Bootloader(引导加载程序):是一个位于设备内存中的程序,负责启动操作系统。Bootloader的主要任务是在设备启动时加载操作系统内核,并将控制权交给操作系统。在安卓设备上,Bootloader还负责执行各种启动阶段的初始化和配置工作。
- 解锁 Bootloader: 一些设备的Bootloader是被锁定的,这意味着用户不能轻易修改或刷写自定义固件。一些设备允许用户解锁Bootloader,使其可以刷入自定义固件或操作系统。解锁Bootloader可能需要特定的步骤,且会导致设备的数据擦除。
- Fastboot 模式: Fastboot 是一种用于与设备交互的协议和工具。通过 Fastboot,用户可以在设备上执行各种操作,例如刷入新的Bootloader、Recovery或操作系统。使用 Fastboot 需要连接设备到计算机,并在计算机上安装相应的驱动和工具。
- Recovery 模式: Recovery 模式是一个独立于主操作系统的环境,允许用户执行一些高级的系统维护和恢复任务。在Recovery模式下,用户可以刷入更新、备份和恢复系统等操作。
如果在adb中能够获得root用户的权限,那么下一步为应用授予root权限就会相对简单一点,那么adb中如何获得root用户权限呢?有如下两种情况:
这种情况你会发现直接执行adb shell
就能够以root用户的身份操作,或者可以执行su
命令提级为root用户,如果满足这两种那么恭喜你,可以直接看下一部分了。
没有权限提级为root用户,这时就需要从头做起了。需要按照以下步骤进行操作(或者你可以尝试使用一些所谓的一键root程序,网上有很多,但是个人不推荐且成功率低):
如果你的设备有BL锁,必须先想办法解锁才能进行下一步操作。
解开BL锁之后,通过fastboot刷入一个新的recovery镜像来替换原有恢复系统,推荐TWRP(Team Win Recovery Project)。TeamWin - TWRP
根据你设备的类型启动TWRP系统,一般手机是长按电源键加音量上键,电视盒子就五花八门了。
启动后,你可以有两种选择(选择你喜欢的一种即可):
Supersu.zip
,按照TWRP的说明将其刷入主系统(本质是用root权限修改主系统的某些文件,如增加su程序)。(官方下载地址:Chainfire SuperSU Download - Official Download Page (supersuroot.org))注意:如果在上一部分中你属于情况二,并且已经按照步骤完成所有操作,那么你已经可以为应用授予root权限了,用你的root权限管理软件,如Supersu进行权限管理即可。
以下内容仅上述情况一的用户需要阅读!
如果你的adb可以提级为root用户,那么说明你的系统已经root了一部分,只是无法为应用授权root权限而已(或者说是没有一个管理应用root权限的工具)。但是不要紧,既然已经有了系统的root权限,那么直接动手去安装一个root权限管理工具就好了,例如Supersu,由于它有自己配套的su程序,原来的su程序肯定是不能用了,当然这个替换操作会由Supersu的替换脚本自己完成。
我们只需按照以下步骤就能安装好Supersu,无需刷入TWRP,也无需刷入新的系统。
下载Supersu的Zip包(其中包含各种CPU的依赖文件)Chainfire SuperSU Download - Official Download Page (supersuroot.org)
将下好的supersu.zip推到系统的/tmp
目录
adb push /your/path/super.zip /tmp/
解压出安装脚本
unzip /path/to/supersu.zip META-INF/com/google/android/* -d /tmp
执行安装脚本
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授权登录后去/电脑程序/电视系统
目录查看。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。