刷机常用术语
第一章:常见工具
一、adb
1. 什么是 adb?
Android 调试桥(adb)是一种开发工具,用于促进 Android 设备与个人计算机之间的通信。这种通信通常通过 USB 线进行,但也支持 Wi-Fi 连接。
adb 就像是 Android 开发的“瑞士军刀”。它提供了许多功能,详细描述可以通过命令 adb --help 查看。
2. 安装 adb
1️⃣ 下载 adb 程序 platform-tools Windows zip。
2️⃣ 解压到 %USERPROFILE%\platform-tools 里面。
3️⃣ 配置环境变量
搜索“高级系统设置”。
选择“查看高级系统设置”。
点击“高级选项卡”。
打开“环境变量”窗口。
在“系统变量”下选择 Path 变量并点击“编辑”按钮。
在文本字段中插入 %USERPROFILE%\platform-tools。
4️⃣ 安装驱动。
5️⃣ 开启开发者选项,且开启 USB 调试。
6️⃣ 验证:数据线连接电脑,执行 adb devices。
3. 常用命令
1)模式切换
bash
# 在设备上启动一个 shell
adb shell
# 将文件 <local> 推送到 <remote>
adb push <local> <remote>
# 将文件 <remote> 拉取到 <local>。如果未指定 <local>,它将拉取到当前文件夹
adb pull <remote> [<local>]
# 正常重启到系统
adb reboot
# 重启到恢复模式
adb reboot recovery
# 重启到引导加载程序 (Fastboot)
adb reboot bootloader
# 重启到 sideload 模式 (用于侧载更新)
adb reboot sideload2)分区
备份分区
bash
# 备份 boot 分区
adb shell dd if=/dev/block/bootdevice/by-name/boot_a of=/sdcard/boot.img
# 拉取到电脑
adb pull /sdcard/boot.img查看分区挂载
bash
adb shell mount | grep "/dev/block"查看分区
bash
# 通过 ADB 查看
adb shell
ls -l /dev/block/bootdevice/by-name/
# 或者
cat /proc/partitions二、Fastboot
1. 什么是 Fastboot?
Fastboot 在手机上的角色相当于电脑中 BIOS。在 fastboot 模式下,您可以输入 fastboot devices 来验证您的设备是否能够被检测到。
主要功能:
- Bootloader 操作:解锁或锁定设备的 Bootloader。
- 刷写系统:可以刷入系统镜像、引导程序和恢复分区。
- 分区管理:擦除或修复设备分区。
- 系统维护:执行各种底层系统操作。
2. 常用命令
1)基本操作命令
bash
# 检查设备连接
fastboot devices
# 重启到正常系统
fastboot reboot
# 重启到 Recovery 模式
fastboot reboot recovery
# 重启到 Bootloader
fastboot reboot bootloader2)boot.img 相关命令
bash
# 刷写 boot 分区 (替换 boot.img)
fastboot flash boot boot.img
# 临时启动 boot 镜像 (不刷入)
fastboot boot boot.img
# 备份原始 boot 分区
fastboot dump boot boot_backup.img3)获取 root 相关操作
bash
# 解锁 Bootloader (不同设备可能有特定命令)
fastboot oem unlock
fastboot flashing unlock # 较新设备
# Magisk 安装过程 (总体流程)
# 1. 先备份原 boot.img
fastboot dump boot boot_original.img
# 2. 使用 Magisk App 修补 boot.img 生成 magisk_patched.img
# 3. 刷入修补后的 boot 镜像
fastboot flash boot magisk_patched.img
# 某些设备需要禁用 AVB 验证
fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img4)其他有用命令
bash
# 擦除分区
fastboot erase [partition_name]
# 刷写 recovery 分区
fastboot flash recovery recovery.img
# 刷写 system 分区
fastboot flash system system.img
# 刷写 vendor 分区
fastboot flash vendor vendor.img
# 刷写 dtbo 分区
fastboot flash dtbo dtbo.img第二章:手机分区
一加手机(OnePlus)使用高通芯片,采用标准的 Android 分区结构,基于 A/B 系统分区(无缝更新)。
一、引导相关分区
1)boot (系统启动)
分区名: boot_a / boot_b
作用: 存储 Linux 内核和 ramdisk
包含:
- 内核镜像 (kernel)
- 初始内存盘 (ramdisk)
- 设备树 (dtb)2)dtbo (设备树覆盖)
分区名: dtbo_a / dtbo_b
作用: 设备树 Blob Overlay
用途: 硬件配置信息覆盖3)vbmeta (验证启动元数据)
分区名: vbmeta_a / vbmeta_b
作用: Android Verified Boot 元数据
包含:
- 签名信息
- 分区哈希
- 回滚保护4)recovery (恢复模式)
分区名: recovery
作用: 恢复系统
用途:
- 恢复出厂设置
- 安装 OTA 更新
- 备份恢复
注意: 新版本可能没有独立 recovery,集成在 boot 中二、系统分区
1)system (系统)
分区名: system_a / system_b
作用: Android 系统核心
包含:
- /system/app (系统应用)
- /system/framework (框架)
- /system/lib (系统库)
- /system/bin (系统二进制)
挂载点: /system
只读: 是(正常情况)2)vendor (厂商)
分区名: vendor_a / vendor_b
作用: 厂商特定文件
包含:
- 驱动程序
- HAL 层
- 固件
- 一加定制内容
挂载点: /vendor3)product (产品)
分区名: product_a / product_b
作用: 产品特定应用和配置
包含:
- 预装应用
- 区域化内容
- OEM 定制
挂载点: /product4)system_ext (系统扩展)
分区名: system_ext_a / system_ext_b
作用: 系统功能扩展
包含:
- 额外系统应用
- 扩展功能模块
挂载点: /system_ext5)odm (原始设计制造商)
分区名: odm_a / odm_b
作用: ODM 特定配置
包含:
- 硬件配置
- 设备特定驱动
挂载点: /odm三、用户数据分区
1)userdata (用户数据)
分区名: userdata
大小: 剩余所有空间(例如 256GB 手机可能有 240GB)
作用: 用户数据存储
包含:
- /data/app (用户应用)
- /data/data (应用数据)
- /data/media (内部存储)
- /data/user (多用户)
挂载点: /data
加密: 是2)cache (缓存)
分区名: cache
作用: 系统临时缓存
用途:
- OTA 更新包
- 恢复日志
- 临时文件
挂载点: /cache3)metadata (元数据)
分区名: metadata
作用: 加密元数据
用途:
- FBE (File-Based Encryption) 密钥
- 加密状态四、固件分区
1)modem (基带)
分区名: modem_a / modem_b
作用: 基带固件
用途: 移动网络通信2)bluetooth (蓝牙)
分区名: bluetooth_a / bluetooth_b
作用: 蓝牙固件3)dsp (数字信号处理器)
分区名: dsp_a / dsp_b
作用: DSP 固件
用途: 音频/传感器处理4)abl (Android Bootloader)
分区名: abl_a / abl_b
作用: Android 引导加载程序5)xbl (Extended Bootloader)
分区名: xbl_a / xbl_b
作用: 主引导加载程序6)tz (TrustZone)
分区名: tz_a / tz_b
作用: TrustZone 固件
用途: 安全执行环境7)hyp (Hypervisor)
分区名: hyp_a / hyp_b
作用: 虚拟化管理程序8)keymaster (密钥管理器)
分区名: keymaster_a / keymaster_b
作用: 硬件密钥管理五、配置和持久化分区
1)persist (持久化)
分区名: persist
作用: 持久化数据
包含:
- 传感器校准数据
- Wi-Fi MAC 地址
- 蓝牙配置
- 显示校准
特点: 恢复出厂设置不会删除2)misc (杂项)
分区名: misc
作用: 系统状态标志
用途:
- 启动模式标志
- OTA 状态
- 恢复命令3)frp (工厂重置保护)
分区名: frp
作用: Factory Reset Protection
用途: 防盗保护标志4)param (参数)
分区名: param
作用: 硬件参数
包含: 序列号、IMEI 等六、一加特有分区
1)op1 / op2 (OnePlus 特定)
分区名: op1 / op2
作用: 一加定制功能
可能包含:
- 一加账户
- OTA 配置
- 区域化设置2)opproduct (OnePlus Product)
分区名: opproduct
作用: 一加产品特定内容
包含:
- 一加应用商店
- 主题资源
- 壁纸3)reserve (保留)
分区名: reserve1 / reserve2
作用: 一加保留分区
用途: 未来功能扩展七、特殊功能分区
1)logfs (日志文件系统)
分区名: logfs
作用: 系统日志
用途: Crash 日志、调试信息2)logdump (日志转储)
分区名: logdump
作用: 内核日志转储3)splash (启动画面)
分区名: splash
作用: 开机动画
包含: OnePlus LOGO4)ddr (内存)
分区名: ddr
作用: DDR 训练数据
用途: 内存初始化参数八、A/B 分区系统
一加手机从 OnePlus 5T 开始支持 A/B 无缝更新。
1)A/B 分区对照
系统 A (槽位 A) 系统 B (槽位 B)
├─ boot_a ├─ boot_b
├─ system_a ├─ system_b
├─ vendor_a ├─ vendor_b
├─ product_a ├─ product_b
├─ odm_a ├─ odm_b
├─ dtbo_a ├─ dtbo_b
├─ vbmeta_a ├─ vbmeta_b
├─ modem_a ├─ modem_b
└─ ... └─ ...
当前激活: 槽位 A
后台更新: 槽位 B
重启切换: A ↔ B2)查看当前槽位
bash
# 查看激活槽位
adb shell getprop ro.boot.slot_suffix
# 输出: _a 或 _b
# 查看槽位状态
adb shell bootctl get-current-slot
# 输出: 0 (槽位A) 或 1 (槽位B)九、动态分区(Super Partition)
一加 8 及以后机型使用动态分区。
1)动态分区结构
super 分区 (9GB)
├─ system_a (3GB)
├─ system_b (0GB - 未使用)
├─ vendor_a (1GB)
├─ vendor_b (0GB - 未使用)
├─ product_a (1GB)
├─ product_b (0GB - 未使用)
├─ odm_a (500MB)
├─ odm_b (0GB - 未使用)
└─ 剩余空间 (3.5GB - 可动态分配)
优势:
✅ 灵活调整分区大小
✅ 空间利用率高
✅ 简化 OTA 更新2)查看动态分区
bash
# 查看 super 分区内容
adb shell
lptools dump /dev/block/bootdevice/by-name/super
# 或者
lpdump /dev/block/bootdevice/by-name/super_a