admin管理员组

文章数量:1566612

												安卓手机高通芯片刷机我的分析理解
 
 高通芯片手机是市面上比较流行的手机系列,例如:小米系列大部分机型,三星系列部分高端机型,中兴努比亚系列,联想手机高端机型,一加手机全部机型,还有华为手机一小部分等等吧。刷高通芯片手机必须知道高通手机的引导过程,而高通芯片手机引导过程相对复杂,我经过一周的学习和思考基本掌握了高通芯片手机的引导过程,我的理解可能有错误之处,希望看到这篇文章的同学给我意见和建议。

我先从总体说一下引导过程:PBL-SBL1-LK-BOOT(安卓引导镜像)-Android
第一阶段. :PBL-SBL1 阶段。手机上电也就是开机,手机先从PBL(Application Primary Boot Loader主引导加载程序)它位于主板的ROM中,(线刷包中没有这部分程序代码,他是固化到ROM中的,出厂就有的无法改变,甚至厂商也不知道具体代码是高通私有的部分)CPU先把它加载到SDRAM中开始执行PBL引导程序,主要是硬件特别是CPU初始化,让CPU正确工作。这一步还加载了系统的下一项SBL1启动的镜像。启动完了之后把控制权交给SBL1.
PBL:对刷机的作用是他有一个紧急下载模式(EDL :emergent download)它有两个特点:
一是它有emmc的驱动程序也就是它能访问emmc。
二是它支持USB模式也就是高通的Qdownload 9008模式 通过 firehouse协议与电脑连接并能够下载数据到emmc,也就是通过刷机软件刷机。
在这种模式下比较典型的刷机软件有两个:高通的QPST软件的QFIL(Qualcomm Flash Image Loader)和小米的刷机软件MiFlash.
说一下这两个软件利用高通9008模式软件的运行原理:它们都需要加载刷机包里的prog_emmc_firehose_8976_ddr.mbn文件,( 8976也可以是其它高通芯片型号)它被称为镜像烧写器,也就是这个文件被刷机程序加载后运行在电脑端,他负责通过firehouse协议与连接了9008模式的手机的PBL程序进行沟通。把镜像文件根据在刷机包里的文件rawprogram0.XML(刷机包的镜像文件在手机里加载的路径)和patch0.xml(补充分区相关的路径)下载到手机端。也就是刷机过程

补充几点说明:

  1. SBL1阶段启动了按键驱动之后通过监听手机用户的按键方法来进入PBL模式。
  2. Sbl1还会模拟出9006端口,并且会加载mass storage(U盘)此时电脑端可以管理手机emmc,比如分区等操作。当然也可以进行crash RAM dump(崩溃时内存转储)工作。分析手机启动时的崩溃原因。例如利用adb工具命令adb erase aboot或fastboot erase sbl1命令来来让系统崩溃(无法发现aboot)SBL1自动转入普通下载模式通过Sahara协议进行下载或刷机。电脑端显示Diagnostics 9006端

本文标签: 刷机高通芯片故障分析