脚本来自:pds/sh/turbox/tools/build_script/common/turbox_build.sh at master · sghong/pds · GitHub
唉,最后还是来看这个,这次就好好总结一下吧。。以最常用的QFIL的FLAT包为例。
从脚本可以看出模块的划分
build_all(){
build_bl
build_uefi
build_rpm
build_aop
build_tz
build_adsp
build_cdsp
build_mpss
build_slpi
build_hlos
update_common_info
}
1 HLOS
source build/envsetup.sh
lunch qssi-userdebug
bash build.sh -j32 dist --qssi_only EXPERIMENTAL_USE_OPENJDK9=1.8
source build/envsetup.sh
lunch <target>-userdebug
bash build.sh -j8 dist --target_only EXPERIMENTAL_USE_OPENJDK9=1.8
这一步可以生成boot.img, system.img, userdata.img
如果是安装好的设备,可以使用fastboot刷写。
# 烧录 boot.img
fastboot flash boot out/target/product/DEVICE/boot.img
# 烧录 system.img
fastboot flash system out/target/product/DEVICE/system.img
# 烧录 userdata.img
fastboot flash userdata out/target/product/DEVICE/userdata.img
# 烧录 recovery.img (可选)
fastboot flash recovery out/target/product/DEVICE/recovery.img
2 非HLOS
MPSS
Build images -- ./build_variant.py divar.gen.prod bparams=-k
Clean the build -- ./build_variant.py divar.gen.prod --clean
烧写
fastboot flash modem modem.mbn
Bootloader
Trustzone
RPM
aDSP
cDSP
WLAN
video
3 分区
这个要单独制作一个partition.xml,这个好像是专供高通平台用的。
<?xml version="1.0" encoding="UTF-8" ?>
<data>
<partition>
<label>boot</label>
<filename>boot.img</filename>
<physical_partition_number>0</physical_partition_number>
<start_sector>32768</start_sector>
<size_in_KB>8192</size_in_KB>
</partition>
<partition>
<label>modem</label>
<filename>modem.mbn</filename>
<physical_partition_number>0</physical_partition_number>
<start_sector>65536</start_sector>
<size_in_KB>16384</size_in_KB>
</partition>
<!-- 更多分区定义 -->
</data>
4 打包
将所有文件放在一个文件夹,如下:
/flat_install_package/
├── boot.img
├── emmc_appsboot.mbn
├── modem.mbn
├── rpm.mbn
├── tz.mbn
├── sbl1.mbn
├── system.img
├── userdata.img
├── partition.xml # 分区表描述文件 (QFIL 等工具需要的文件)
之后直接使用zip压缩即可。
5 烧写
烧写的时候选中分区xml文件。