高通開發-升級包製作
阿新 • • 發佈:2018-12-13
專案立項後,需要貼片,那麼當然需要軟體提供刷機升級包。一般第一次貼片,都會用預設程式碼生成的映象製作升級包。
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映象