Android 玩机基础知识#
笔记来源于哔哩哔哩极客湾视频:玩机必看!带你入坑安卓刷机
本教程只提供玩机之前应该了解的基础框架和知识储备,
具体操作仍然应该寻找具体教程,否者在玩机过程中会遇到很多麻烦的小问题无法解决。
相关网站:
安卓分区#
安卓手机中包含了数个分区
Boot 分区#
-
存放有启动和引导的文件,与开机启动引导相关
-
包含了操作系统的 Kernel (内核) 与 Ramdisk (虚拟内存)
-
Root 操作就是修改在 Boot 分区
-
如果 boot 分区被擦除或者损坏,手机就会卡在开机的第一屏
system 分区#
-
存放安卓系统和系统应用
-
系统分区包含了整个操作系统 与 系统软件
-
系统升级或者刷机很多时候都是在操作这个分区
-
system 分区损坏会卡在开机的第二屏
Vendor 分区#
与 system 分区相似的还有一个 Vendor 分区。
-
它包含了开发厂商定制的一些应用与库文件
-
很多厂商也会直接把 Vendor 分区这些文件放进 system 分区里面,方便后期的更新和维护
Data 分区#
-
数据分区存放用户数据,包括应用、音视频、图片、系统设置等
-
擦除 data 分区会清空用户数据,但不会影响到手机的正常启动
Cache 分区#
-
安卓的缓存区
-
缓存可以帮助你快速的打开系统最常访问的数据和应用程序,不需要重复加载
-
擦除缓存并不会影响个人数据,后续使用还是会自动生成
Recovery 分区#
-
恢复分区包含一个简易 Linux 系统用于恢复和维护手机
-
可以用来恢复和更新其他分区的内容 (如擦除数据),类似于 Windows PE (Pre-installing environment)
AB 分区#
近年来出现了越来越多不存在 recovery 分区的手机,这是因为安卓从 7.0 开始引入了新的 OTA 升级方式,A/B System Updates(AB 分区)
这种升级方式把 boot 和 system 分区设置了两套,SlotA SlotB ,平时用的 Slot 是主分区,另一个 Slot 是备用分区
这样在系统升级的时候可以做到无缝升级,用户可以边用手机后台边升级系统 (更新备份分区的内容),升级完成之后重启手机,备份分区就会自动切换成主分区,若升级失败系统无法启动是就会切会之前的分区,缺点就是会占用双倍的 System 空间。
![image](/_next/image?url=https%3A%2F%2Fraw.githubusercontent.com%2FDoraemonkeys%2Fpicture%2Fmaster%2F1442343_origin_IMG_20220428_143359.jpg&w=3840&q=75)
VA/B 分区#
为了解决空间占用的问题,于是又出现了 AB 分区的改进版 OTA 升级方式, Virtual A/B System Updates (VA/B 分区),
两代系统,相同文件共用,不同文件存于虚拟 A/B 分区,目前出厂搭载安卓 11 以上的机型普遍采用了 VA/B 分区。
![image](/_next/image?url=https%3A%2F%2Fraw.githubusercontent.com%2FDoraemonkeys%2Fpicture%2Fmaster%2F1442342_origin_IMG_20220428_143346.jpg&w=3840&q=75)
从玩机的角度来讲 A/B 或者 VA/B 分区刷第三方 recovery 会比较麻烦一点,因为这两种分区都把 recovery 分区并入了 boot 分区,
![image](/_next/image?url=https%3A%2F%2Fraw.githubusercontent.com%2FDoraemonkeys%2Fpicture%2Fmaster%2F1442341_origin_Screenshot_2022-04-28-14-33-28-105_tv.danmaku.bili.png&w=3840&q=75)
Bootloader#
- 如果把 recovery 比作 PE,fastboot 阶段所属的 bootloader 就相当于电脑上的 BIOS/UEFI。
- bootloader 顾名思义就是 引导 (boot) 加载器 (loader),长按电源键开机的那一刻起,bootloader 就已经开始工作了。
- 在这段时间里bootloader 会初始化手机里的硬件设备,引导操作系统内核 (boot 分区里的 Kernel)。
- 在引导后期我们可以选择进入一个叫 fastboot 的阶段 (一般长按电源 + 音量减键进入),这就是我们常说的刷机模式。
- fastboot 比 recovery 更加底层,fastboot 下可以把手机连接电脑,输入命令来直接刷机。
- 解锁手机,注入 boot 镜像,线刷系统等很多操作都要通过 fastboot 来进行。
- bootloader 并不属于某个系统分区,如果系统某个分区损坏导致手机变砖,一般可以进入 fastboot 救砖
- 使用 fastboot 刷机一般称为线刷(数据线连接电脑),使用 recovery 刷机一般称为卡刷 (卡刷包下载到手机)
电脑手机环境配置#
fastboot#
-
可以去安卓官方的链接下载电脑端用的 Android SDK ,SDK Platform Tools
-
Android SDK Platform-Tools 是 Android SDK 的一个组件。它包含与 Android 平台进行交互的工具,主要是 adb和fastboot。
-
下载解压后就能看到有 adb 和 fastboot 文件,在此文件目录下打开终端就可以输入命令对手机进行操作了
-
如果不能检测到设备就去电脑端设备管理器安装 fastboot 驱动,驱动链接:玩机资源合集 (jamcz.com)
![image](/_next/image?url=https%3A%2F%2Fraw.githubusercontent.com%2FDoraemonkeys%2Fpicture%2Fmaster%2F%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202022-04-28%20185643.png&w=3840&q=75)
fastboot 常用命令#
#显示fastboot设备
fastboot devices
#获取手机相关信息
fastboot getvar all
#重启手机
fastboot reboot
#重启到bootloader
fastboot reboot-bootloader
#擦除分区
fastboot erase (分区名)
例:清除system分区:fastboot erase system
#刷入分区
fastboot flash (分区名) (分区镜像)
例:将boot镜像 "boot.img" 刷入boot分区:fastboot flash boot boot.img
#引导启动镜像
fastboot boot (分区镜像)
例:启动到recovery分区:fastboot boot recovery.img
#刷入ROM
fastboot update (刷机包)
例:将 update.zip 刷入:fastboot update update.zip
#解锁Bootloader
fastboot oem unlock (参数视机型而定)
ADB(Android Debug Bridge)#
-
连接电脑一般要打开手机开发者选项里面的 USB 调试,也就是 ADB (安卓调试桥)。
-
ADB 是安卓提供给我们用于调试设备的命令行工具,借助 ADB 就可以在电脑端用各种命令来控制手机 (不需要 root)。
-
比如如输入命令给手机安装软件,调整手机分辨率,模拟按键点击等好玩的操作。
-
很多电脑端的手机工具箱,如搞机工具箱,都是基于 ADB 实现的。
Root#
-
ADB 只能实现一些调试功能,想要实现更多功能就要借助 Root 权限了
-
开发者选项里打开 OEM 解锁 (没有就算了)
-
想要 root 一般想要解锁 Bootloader (bl 锁),然后修改 boot 文件,刷入 magisk (修补后的 boot),root 的过程就相当于修改 boot 分区
-
厂商为了保证手机安全一般会对 bootloader 上锁,不解锁 bootloader 就无法对分区进行修改
-
不同品牌解锁方式不同,这里不详细讨论
root 方法#
想要 root 一般有两种方法:
1. 通过第三方 recovery 来 root#
- 官方 recovery 一般只有简单的恢复功能,不会允许你乱刷东西
- 想要实现类似 PE 的效果就要刷一个好用的第三方 recovery
- 第三方 recovery 不光可以 root,还能刷内核,刷系统,备份数据等等
- TWRP 是目前比较出名的第三方 recovery
2. 直接在 fastboot 里刷 boot 镜像#
magisk 获取 root 的原理是对 boot 分区进行修补,在 recovery 里可以直接操作,
但我们不用 recovery 也能提取当前系统的 boot 镜像,交给 magiskAPP 进行修补完后再手动刷回系统。
boot 一般可以在刷机包里面提取,
线刷包一般解压直接就能找到 boot.img 文件,卡刷包解压后会有一个非常大的 payload.bin 文件,可以用 payload_dumper.exe 程序来解包,解包完成后就能找到 boot.img,把拿到的 boot 文件传到手机里,手机上装好 magisk 的 APP, 打开之后点击安装,选择修补一个文件,选择 boot.img,修补完成后会把修补完的镜像导出到 download 文件夹里。把修补完的 boot 拷贝到电脑上,手机重启到 fastboot 模式,使用 fastboot 命令 (fastboot flash boot) 刷入修补后的 boot 就可以获取 root 权限了。
小米全机型全版本 ROM 下载地址:XiaomiROM.com - 小米 ROM 线刷包,卡刷包的最新及历史版本下载
boot 管理工具 Magisk#
magisk 就是我们常说的面具,它不紧可以用来获取 root 权限,还可以挂载各种模块
magisk 实现 root 原理#
magisk 通过挂载一个和系统文件相隔离的 Magisk 分区来加载自己的内容,一切都在 bootloader 阶段完成,在实现功能的同时可以让系统分区 (system) 毫发无损,所以可以隐藏 root。
9008 刷机 (EDL 串口线刷模式)#
一加与 OPPO 给的刷机 (线刷) 工具是基于 9008 的,9008 是高通平台更底层的刷机工具,不到万不得已才会使用。
虽然 fastboot 线刷的方法可以解决大部分的软件问题,但不可以刷写一些更底层的东西,比如基带串号。
有时候手机刷成黑砖,连 fastboot 都不能进入了,这个时候就只能使用 9008 模式刷机了。
9008 模式可以解决手机几乎所有的软件问题。
高通通用:QFIL 工具
![image](/_next/image?url=https%3A%2F%2Fraw.githubusercontent.com%2FDoraemonkeys%2Fpicture%2Fmaster%2F1443384_origin_Screenshot_2022-04-28-21-03-42-798_tv.danmaku.bili.png&w=3840&q=75)
联发科通用:SP Flash 工具
![image](/_next/image?url=https%3A%2F%2Fraw.githubusercontent.com%2FDoraemonkeys%2Fpicture%2Fmaster%2F1443385_origin_Screenshot_2022-04-28-21-04-25-858_tv.danmaku.bili.png&w=3840&q=75)
MiFlash (Pro) 里含有厂家定制 9008 刷机模式,加入了一些验证机制,需要账号授权才能使用 9008。