搞机记录
开始搞机有一段时间了,恍惚中有了两年时间。开始的初衷一方面是好奇这方面,另一方面是使用httpcancry抓包,需要安装系统证书,而系统证书的安装需要获取root权限,自此开始了折腾之旅,准备完整的记录这一切吧!
一、基础知识
写一点最基础的知识,方便后续的操作。
-
刷机
广义上来说,是指刷不同厂家的系统,早期,手机厂商自己提供的系统不好用,发烧友会刷别的系统,例如MIUI就是起家的,这种一般是线刷;如果是普通的系统版本更新或者降级,就会用到卡刷。 -
BootLoader
BootLoader,俗称BL锁
,厂商用来限制用户刷入第三方ROM,所以搞机第一步,先解锁BL锁,这已经是老生常谈了。以前的话,小米/红米家的系统,是很容易解锁BL锁的,而澎湃系统Hyper出来之后,慢慢开始了非常严格的解锁限制,打击这群发烧友。
大致解锁BL难度厂商排序(从难到易):华为>>VIVO>OPPO>小米>一加。
华为好几年前就不给解锁了,VIVO一直不给解锁,解锁的基本都靠系统漏洞绕过,OPPO参与一些内测就可以申请解锁,小米增加了不少限制,但好歹还有路,一加是挺容易解锁。
-
线刷包、线刷
线刷包,见名知意,应该可以想到需要用到数据线才能刷机的一种包。而线刷是一种较底层的刷机方式,即在fastboot
模式下使用。压缩包的格式,即后缀是tgz
。经常会用到miflash
-
卡刷包、卡刷
卡刷,有了上面的经验,应该可以想到这是一种只需要用到存储卡就能刷机的包。卡刷就没有线刷那么底层,即在twrp
下使用。压缩包的格式,即后缀是zip
-
Magisk
Magisk,搞机经常会遇到这个词,因为App图标是一张脸谱,所以也常常叫它 “面具”。在前几年它还是主流的获取root的方式,现在已经开始更多的拥抱KernelSU。 -
KernelSU
KernelSU,最近几年新出现的获取root方式。在不做多余配置的同等情况下,隐藏性比Magisk更好,不容易被银行App检测到。 -
AB分区
AB分区,前几年谷歌提出来的概念,升级系统会先更新到另一个分区,不需要重启,会在下一次重启时载入更新系统的分区。即使升级失败,也可以回退到初始的分区,升级系统时比较安全。
出厂时自带系统从安卓11开始,应该就是AB分区的手机;不了解的话,可以下载一个Devcheck
的App来查看手机是否支持AB分区。
- adb
ADB,安卓调试工具,用于调试安卓设备的一个工具。可以安装、卸载软件, 进入shell终端执行命令,甚至基于此有一些工具,例如 scrcpy,一个投屏工具。
二、搞机环境的搭建
1. adb、fastboot的安装
安卓开发者官网下载SDK Platform-Tools
, 解压到任意目录,我习惯安装到D:\Program Files
,然后添加[[环境变量]]。
验证:
win
+r
, 输入cmd
,执行adb
,如果有内容输出并且不是adb不是内部或外部命令,也不是可运行的程序,则说明添加环境变量成功
2. 驱动的安装
经常会遇到fastboot模式下读取不到手机的情况,此时是因为fastboot驱动没有安装成功。下载解压驱动文件,手机在fastboot模式下连接电脑,按照以下步骤操作,右键此电脑,管理,设备管理器,找到安卓设备,右键更新驱动,浏览我的计算机查找计算机驱动软件,让我从计算机上的可用驱动程序列表选取->下一步->显示所有设备,Generic USB Hub,从磁盘安装,选择驱动的解压路径,选择inf
后缀的文件,选择Anddoid Bootloader Interface
,安装即可。
adb和fastboot是两个不同的设备,都需要安装。
这里介绍的有点仓促,准备单独新开一个文档。
3.一些安装包、工具的准备,按需准备即可
三、使用Magisk获取root权限(抽象的步骤,不针对具体的机型)
- 解锁bl
- 获取当前系统版本的卡刷包,提取
boot.img
- 使用面具修补
boot.img
,并发送到电脑 - fastboot模式下,刷入修补后的boot,重启即可
- 即可给应用授权,或刷入模块。
四、使用KernelSU获取root权限(抽象的步骤,不针对具体的机型)
情况一、GKI的机型
- 解锁bl
- 获取当前系统版本的卡刷包,提取
boot.img
- 使用面具修补
boot.img
,并发送到电脑 - fastboot模式下,刷入修补后的boot,重启即可
- 即可给应用授权,或刷入模块。
情况二、不支持GKI的机型
- 解锁BL
- 寻找对应的VK内核
- 临时获取TWRP
- 在TWRP下,侧载VK内核
- 重启即可给应用授权root权限