[转] SOC分包方法
转自: https://shimo.im/docs/3RTDdGjQdTtjtPKj/read
本文是广和通的分包方法。
文档说明
本文档以SC826(MSM8953平台,Android 7)为例,描述如何对SOC镜像文件分包。
应用背景
客户用QFIL刷固件的时候,由于客户自己编译生成的固件是没有经过分包的,烧录耗时较久。如果将编译生成的固件先分包后,再烧录就可以提升烧录效率。
分包准备工作
- 准备分包脚本checksparse.py
- 准备需要用到的原始XML文件
这个文件怎么获取呢?首先,我们下载一份出模块厂固件。这里以SC826-CN-01为例,出厂固件里有5个xml文件
我们来介绍下这五个xml的作用:
- rawprogram0.xml:烧录AP和BP,适合整包全刷,包含模块Modem侧固件。在烧录前需要先备份QCN,否则会丢参数。
- rawprogram0_SC820_BLANK.xml:全擦模块固件,客户尽量不要使用
- rawprogram0_update.xml:只刷AP侧固件,但是这是已经由分包生成的xml,所以只能刷我们已经分包的出厂固件。
- rawprogram0_update_original.xml:过程文件,暂不用理会
- rawprogram0_update_unsparse.xml:原始xml文件,可以用这个文件来分包,主要指AP侧软件
- 客户编译生成的镜像文件,路径在 /out/target/product/msm8953_64/
分包操作
-
将rawprogram0_update_unsparse.xml、checksparse.py和客户编译生成的镜像文件放在ubuntu环境同一文件夹,默认已装好Python环境。
- 执行下列命令:
python checksparse.py -i rawprogram0_update_unsparse.xml -s . -o rawprogram0_update.xml
- 分包后的整个文件夹,拷贝到win PC机上。用分包后生成的rawprogram0_update.xml文件,通过QIFI烧录分包固件即可
不同出厂版本的差异
以 SC826-CN-01-00-20191212-1 为例
上面版本文件夹,只有4个xml文件。 rawprogram0_update_original.xml 对应上面分包操作时所使用的 rawprogram0_update_unsparse.xml。
如何确定到底使用哪个xml,需要打开对应的xml,查看具体内容: