准备工作
原厂线刷固件
从百度网盘下载完整的 Y927 线刷包 (PD1410V_A_1.22.1):
1 | 关键文件: |
下载地址:https://pan.baidu.com/s/1slG5aqD
EDL (Emergency Download Mode)
Qualcomm SoC ROM 固化的底层刷机模式,优先级高于一切引导链。
Android 系统的启动路径
- 通电
PBL: Primary Boot Loader,固化在 SoC 内部 ROM 里的第一段代码,出厂烧死后无法修改。不在eMMC里,在MSM8916 SoC芯片内部,因此不可能刷坏。- 检测EDL触发条件,如果触发则进入9008/EDL模式,此时可以直接写eMMC裸扇区进行刷机
- 如果没有触发EDL,则走常规的启动路径
Android系统常规的启动路径如下
- 在EDL未触发之后,启动SBL1(Secondary Boot Loader)
- TZ
- hyp
- aboot分区(Android Bootloader),这是
fastboot模式所在分区,用于提供fastboot刷机模式和正常启动加载/验证boot分区 - boot 分区,包含了kernel/DTB/initramfs
- kernel启动后,加载initramfs到内存里,里面包含了Linux内核启动后加载的第一段用户空间程序init(这就是那个PID=1的init进程)
- init 程序将准备好硬件,加载驱动模块(GPU 固件、屏幕驱动、触屏驱动、…),找到真正的系统盘, eMMC/SD,按 UUID 匹配 rootfs 分区,挂载,然后 switch_root 继续启动
- switch_root 将彻底替换根目录,一把 initramfs 整个卸掉,新系统接管一切(注意,驱动的.ko内核模块被加载后是在内核态,initramfs是在用户态的,被卸载后并不干扰已加载好的内核驱动)
EDL vs fastboot
| EDL (9008) | fastboot | |
|---|---|---|
| 谁提供的 | SoC ROM 固化代码 | bootloader (aboot/lk1st) |
| 能写 GPT | ✅ 裸扇区写入 | ❌ 依赖 GPT 才能定位分区 |
| 变砖还能用 | ✅ TP 短接强制进入 | ❌ bootloader 挂了就没了 |
| USB VID/PID | 05c6:9008 |
18d1:d00d |
| 协议 | Qualcomm Firehose (Sahara握手) | Android Fastboot |
进入 EDL 模式
-
从fastboot模式进入EDL
1
fastboot oem reboot-edl
-
硬件方式启动,当fastboot被刷坏变成深度砖时,需要使用这种方式,不同手机进入方式不同,Y927需要拆机,然后音量/电源键排线下方有两个金属触点,在USB接通时短接它电脑即可识别到一个9008设备。
电脑环境准备
我这里使用的是 VMWare 虚拟机中安装的 Ubuntu 24.04 作为刷机系统,USB 设备映射到 VMWare 虚拟机内部
安装基础工具
1 | sudo apt install -y git python3-dev google-android-platform-tools-installer |
UV/UVX
Python 的包管理器和脚本运行器,用 Rust 写的,替代 pip + venv + pipx。
安装
1 | curl -LsSf https://astral.sh/uv/install.sh | sh |
UVX 可以直接执行任意Python生态的工具,直接跑就行了,不需要任何安装,它会按需自动安装,比如运行后面的EDL刷机程序
1 | uvx --from git+https://github.com/bkerler/edl.git edl -h |
刷机前的备份工作
原厂分区表
| 分区 | mmcblk0 | 大小 | 用途 |
|---|---|---|---|
| modem | p1 | 64 MB | 基带固件 ⚠️ |
| sbl1/bak | p2/p3 | 512 KB | Secondary Bootloader |
| aboot/bak | p4/p5 | 5 MB | Bootloader |
| rpm/bak | p6/p7 | 512 KB | Resource Power Manager |
| tz/bak | p8/p9 | 512 KB | TrustZone |
| hyp/bak | p10/p11 | 512 KB | Hypervisor |
| pad | p12 | 1 MB | 填充 |
| modemst1/2 | p13/p14 | 1.5 MB | Modem 存储 ⚠️ |
| misc | p15 | 1 MB | 杂项 |
| fsc/ssd | p16/p17 | <1 MB | Secure |
| splash | p18 | 10 MB | 开机画面 |
| DDR | p19 | 32 KB | DDR |
| fsg | p20 | 1.5 MB | Golden backup (IMEI) ⚠️ |
| sec | p21 | 16 KB | 安全 |
| boot | p22 | 16 MB | 内核启动 |
| system | p23 | ~1.8 GB | 系统 |
| persist | p24 | 32 MB | WiFi/BT 校准 |
| cache | p25 | 300 MB | 缓存 |
| recovery | p26 | 16 MB | 恢复模式 |
| userdata | p27 | ~3 GB | 用户数据 |
| apanic | p28 | 10 MB | Panic 日志 |
| backup/reserved | p29/p30 | 10 MB | 备份/保留 |
| udisk | p31 | ~9.2 GB | 内部存储 |
| SD卡 | mmcblk1 | - | 外部 SD |
标注 ⚠️ 的分区一定要注意备份,线刷包中并不包含这些内容,一旦丢失将无法找回。
EDL 模式备份
1 | mkdir -p ~/y927/backup |
添加udev规则
添加udev规则,否则后续将不断需要sudo
1 | sudo sh -c 'echo "SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"05c6\", ATTRS{idProduct}==\"9008\", MODE=\"0666\"" >> /etc/udev/rules.d/99-edl.rules' |
开始刷回原厂固件
先让手机进入9008模式并被VMWare虚拟机识别,开始刷机
1 | uvx --from git+https://github.com/bkerler/edl.git edl \ |
(可选) Windows 中刷机
VMWare 虚拟机中使用的 edl 工具刷写可能太慢了,可以在 Windows 中刷。
下载 QFIL 刷机工具 https://qfiltool.com/
下载 miflash 刷机工具 https://miuiver.com/miflash/
将miflash中的 fh_loader.exe 移动到 QFIL 中
刷机完成
恢复一些基带固件
按住音量下+电源键启动到fastboot模式
1 | fastboot flash modem ~/y927/backup/modem.img |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Zhangzqs!
评论





