
1 QFIL WIndows来自高通系列烧写操作指南_Telpo开发者平台https://www.cnblogs.com/blogs-of-lxl/p/10620662.html这个看起来简单实际也有很多门门道道而且有时候这个是bringup的第一步有可能在这里烧写会失败要去定位分析。此外对高通的firehose协议也要有一定了解。20261105补充一般使用adb reboot edl进入或者硬件短接测试点进入。高通的启动模式如下[ 上电开机 ] │ ▼ ┌──────────────┐ │ PBL (ROM) │ -- 芯片出厂不可篡改的高通固化代码 (Primary Bootloader) └──────┬───────┘ │ [ 校验签名 ] ──(失败 / 找不到 SBL/xBL / 检测到 GPIO 触发)──┐ │ │ ▼ (校验成功) ▼ ┌──────────────┐ ┌──────────────────┐ │ SBL / xBL │ │ 进入 EDL 模式 │ └──────┬───────┘ │ (高通 9008 端口) │ │ └─────────┬────────┘ ▼ │ ┌──────────────┐ ▼ │ Bootloader │ (如 ABOOT / LK / Fastboot) [ 等待上位机烧录命令 ] └──────┬───────┘ │ ▼ ┌──────────────┐ │ Linux/Android│ └──────────────┘可以看出9008模式是由PBL启动这部分功能是固化在芯片内部 ROM的。此时即便 Bootloader 损坏、系统分区被误擦除、甚至连屏幕都不亮黑砖时只要芯片硬件没有物理烧毁都能通过 9008 模式将固件重新写入闪存eMMC / UFS。9008烧写的核心文件文件名称作用与描述prog_firehose_XXXX.elf(或 .mbn)Firehose 引导引导文件极度重要。由于 PBL 自身功能极简它不能直接擦写大型 UFS/eMMC。烧录的第一步就是上位机先将这个极小的prog_firehose加载到芯片的内部 SRAM 中运行。它充当烧录代理程序负责解析 xml 并执行真正的数据擦写。rawprogramX.xml烧录规则描述文件。定义了哪个镜像刷入哪个扇区。例如program sector_size_in_bytes512 file_sector_offset0 filenameboot.img labelboot start_sector131072/patchX.xml分区表修复与校验文件。定义了烧录完成后需要修补的 CRC32 校验码、GPT 分区表头等数据。.img/.bin镜像具体的系统分区数据文件如boot.img,super.img,persist.img等。9008烧写的Firehose 协议看看就好实际基本上用不到。电脑上位机 (QPST/MiFlash) 高通芯片 (PBL) │ │ │─────── 1. 发送 Sahara 协议数据 ─────►│ (加载 prog_firehose.elf 到芯片 SRAM) │ │ │◄────── 2. Firehose 握手成功 ─────────│ (Firehose 程序在芯片内部启动) │ │ │─────── 3. 发送 XML 指令 (Firehose) ─►│ (解析 rawprogram.xml) │─────── 4. 传输物理 Block 镜像 ──────►│ (直接将镜像写入 UFS/eMMC) │ │ │◄────── 5. 写入完成 (ACK) ────────────│2 FastBoot Linux安卓烧机方法 - 知乎这个就是第二种烧写办法用fastboot命令直接把bin写到分区中。与 9008 这种运行在芯片片上 ROM (PBL) 里的紧急救援协议不同Fastboot 协议运行在设备引导加载程序Bootloader / Userspace FastbootD阶段。它是当前主流 Android 生态如 Pixel、一加、小米等中进行日常系统升级、分区擦写、刷写内核和解琐的主流标准协议。经典的 Fastboot 烧录交互流程电脑端 (Host: fastboot tool) 设备端 (Device: Bootloader) │ │ │─────── 1. 发送 getvar:version ──────────────────────►│ (查询协议版本) │◄────── OKAY / DATA 响应 ─────────────────────────────│ │ │ │─────── 2. 发送 download:文件大小十六进制 ──────────►│ (告知设备即将发送多大镜像) │◄────── DATA (允许发送返回需要的缓冲区大小) ────────│ │ │ │─────── 3. USB Bulk-Out 传输 boot.img 二进制数据 ────►│ (流式传输镜像到设备 RAM 中) │◄────── OKAY (数据接收完毕校验成功) ────────────────│ │ │ │─────── 4. 发送 flash:boot ──────────────────────────►│ (下达烧录指令) │ [设备开始擦除闪存并在内部将 RAM 数据写入分区] │ │◄────── OKAY / FAIL ──────────────────────────────────│ (烧录成功或失败返回)之前用的烧写脚本hlos fastboot flash abl_a abl.elf fastboot flash boot_a boot.img fastboot flash dtbo_a dtbo.img fastboot flash metadata metadata.img fastboot flash super super.img fastboot flash vbmeta_a vbmeta.img fastboot flash vbmeta_system_a vbmeta_system.img fastboot flash vendor_boot_a vendor_boot.img nonhlos fastboot flash modem_a NON-HLOS.bin fastboot flash BTFM.bin fastboot flash dspso.bin fastboot flash splash splash.img fastboot flash qupfw_a qupv3fw.elf fastboot flash devcfg_a devcfg.mbn fastboot flash hyp_a hyp.mbn fastboot flash tz_a tz.mbn fastboot flash keymaster_a keymint.mbn fastboot flash featenabler_a featenabler.mbn fastboot flash storsec storsec.mbn fastboot flash uefisecapp_a uefi_sec.mbn fastboot flash imagefv_a imagefv.elf fastboot flash logfs logfs_ufs_8mb.bin fastboot flash xbl_a xbl.elf fastboot flash xbl_config_a xbl_config.elf fastboot flash shrm_a shrm.elf大概是以上的分区这些和安卓和高通设备都是强相关可能换一个版本就不同了。3 分区表最后还是要说说分区表其实不管是QFIL还是fastboot都是将bin烧写到分区表制定的地址。这部分之前有说过就不多说了。https://www.cnblogs.com/zhengliang/p/13218706.html