项目立项后,需要贴片,那么当然需要软件提供刷机升级包。一般第一次贴片,都会用默认代码生成的镜像制作升级包。

1.contents.xml

该文件在私有代码的根目录下,该文档主要定义了升级包中镜像的名字、路径以及相关的打包工具。注意contents.xml的选择与你编译Modem的指令要一致,不然会出现问题。在common/build/目录下,有不同后缀的contents.xml,你需要把对应的xml复制到根目录下,并改名为contents.xml。

2.common目录

这个目录中,主设计到打包,制作升级包,分区表等相关的内容。

common/config/下有,partition.xml  主要是分区信息,如需增加分区,如定制分区,需要在这里增加新的分区。

rawprogram0.xml,这个是由partition.xml生成的,用于刷机时选择分区表,与patch0.xml配合使用。

update_common.py这个文件在不同的代码下,可能名字不一样,主要用来生成升级包的。

3.镜像的说明

这里主要分析contents.xml的文件。

重要的刷写文件生成:

    <step type="exec">
      <exec_dir>./</exec_dir>
      <params>python @tool_name -x ./../config/partition.xml</params>
      <tool_name>ptool.py</tool_name>
    </step>

这里主要是生成下面的文件:

gpt_backup0.bin
gpt_both0.bin
gpt_main0.bin
patch0.xml
rawprogram0.xml

 

    <step filter="hlos" type="exec">
      <exec_dir>./bin/$[flavor:.]/sparse_images</exec_dir>
      <params>python @tool_name -i @rawprogram_xml -s @root_dir + @sparse_dir -o rawprogram_unsparse.xml</params>
      <tool_name>checksparse.py</tool_name>
      <root_dir>$[build:apps]</root_dir>
      <sparse_dir>LINUX/android/out/target/product/msm8937_64/</sparse_dir>
      <rawprogram_xml>./../../../rawprogram0.xml</rawprogram_xml>
    </step>

这里是根据android生成的img,拆分成适合刷写的格式,大小。

      <file_ref symbol="modem" minimized="true">
        <file_name>M89378937.genns.prodQ*.elf</file_name>
        <file_path>modem_proc/build/ms/</file_path>
      </file_ref>

如需要dump分析modem时,这个就是需要的elf文件,kernel对于下面的文件

      <download_file cmm_file_var="APPS_ELF" minimized="true">
        <file_name>vmlinux</file_name>
        <file_path>LINUX/android/out/target/product/msm8937_64/obj/KERNEL_OBJ/</file_path>
      </download_file>

 控制qfile或者qmsct的刷写,主要是由boot代码编译而成,生成的一部分为控制烧录的,一部分为boot,img,看下面代码

      <device_programmer minimized="true">
        <file_name>prog_emmc_firehose_8917_ddr.mbn</file_name>
        <file_path>boot_images/build/ms/bin/LAADANAZ/</file_path>
      </device_programmer>
      <device_programmer_lite minimized="true">
        <file_name>prog_emmc_firehose_8917_lite.mbn</file_name>
        <file_path>boot_images/build/ms/bin/LAADANAZ/</file_path>
      </device_programmer_lite>
//上面两个文件任选一个,一个是需要ddr才能刷写,一个直接从emmc拿镜像刷写
      <download_file cmm_file_var="BOOT_BINARY" fastboot_complete="true" minimized="true">
        <file_name>sbl1.mbn</file_name>
        <file_path>boot_images/build/ms/bin/LAASANAZ/</file_path>

//boot镜像

 

10-06 13:03