高通平台的编译和MTK的编译还是有一些不同,多了一些项,并且打包生成的刷机文件也是分散在各个地方,导致这个好像非常玄,弄的我也是老问人,非常不好意思。
这二天,自己看了一下的脚本,搞的非常复杂,自己把核心的弄出来,大家看一下就明白了。这是以MSM8909为例的:
编译脚本
build.sh———–一个综合编译,打包的脚本
使用方法:
source build.sh
build.sh内部
#!/bin/bashecho "..................................start make ............................"############################################### make boot (sbl) #############################boot_images/build/ms#cleaning the build#./build.sh TARGET_FAMILY=8909 --prod -c#build command#./build.sh TARGET_FAMILY=8909 --prod############################################### make tz ###################################trustzone_images/build/ms#cleaning the build#./build.sh CHIPSET=msm8909 tz sampleapp -c#build command#./build.sh CHIPSET=msm8909 tz sampleapp############################################### make rpm ###################################rpm_proc/build#cleaning the build#./build_8909.sh -c#build command#./build_8909.sh############################################### make modem ###################################modem_proc/build/ms#cleaning the build#./build.sh 8909.gen.prod -k -c#build command#./build.sh 8909.gen.prod -k############################################### make NON-HLOS ################################rm -rvf common/build/bin/*rm common/build/bin/asic/NON-HLOS.binTARGET_PATH="common/build"cd $TARGET_PATHpython update_common_info.py#python build.py############################################### make android ################################select jdk version #source /home/android/jdk/jdk-1.7.0.79-open.shcd LINUX/androidsource build/envsetup.shlunch P4901-userdebug# lunch#P4901-userdebug#lunch P4901-usermake -j8 PROJECT_NAME=wik_fr SUB_PROJECT_NAME=orange BUILD_MYOS=yes 2>&1 | tee otabuild.log############################### make adsp (MSM8909 does not need make it) #####################adsp_proc eg:msm8937#cleaning the build#python ./build/build.py -c msm8937 -o clean#build command#python ./build/build.py -c msm8937 -o all##########################################copy flash image for qfil###########################rm -rf sysimgmkdir sysimgecho "..................................start copy images for qfil............................"#copy cache_*.img persist_*.img system_*.img userdata_*.img #rawprogram0.xml.bak rawprogram_unsparse.xml cp common/build/bin/asic/sparse_images/* sysimg/#about sim card bincp common/build/bin/asic/NON-HLOS.bin sysimg/#qfil select usecp common/build/patch0.xml sysimg/cp common/build/gpt_backup0.bin sysimg/cp common/build/gpt_main0.bin sysimg/cp common/build/battery.bin sysimg/cp common/build/zeros_3072sectors.img sysimg/cp common/build/zeros_512k.bin sysimg/cp common/build/fs_image.tar.gz.mbn.4901.img sysimg/# power on logocp common/build/splash.bin sysimg/#cp common/tools/sectools/resources/build/sec.dat sysimg/#cp out#boot.imgcp LINUX/android/out/target/product/P4901/boot.img sysimg/cp LINUX/android/out/target/product/P4901/emmc_appsboot.mbn sysimg/#recovery.imgcp LINUX/android/out/target/product/P4901/recovery.img sysimg/#about bootloadercp boot_images/build/ms/bin/8909/emmc/sbl1.mbn sysimg/#qfil select usecp boot_images/build/ms/bin/8909/emmc/unsigned/prog_emmc_firehose_8909_ddr.mbn sysimg/#about tzcp trustzone_images/build/ms/bin/MAZAANAA/tz.mbn sysimg/#about sensorcp rpm_proc/build/ms/bin/8909/pm8909/rpm.mbn sysimg/#copy xttcp wcnss_proc/copy_folder/MSM8909_SoftwareUpgradeWithCDT_eMMC_FireHose.xtt sysimg/cp wcnss_proc/copy_folder/MSM8909_SoftwareDownloadWithCDT_eMMC_Firehose.xtt sysimg/echo "..................................end copy images for qfil............................"echo "..................................end make ............................"
编译脚本的详细说明
其实,这个编译脚本不能直接用,自己要简单调一下,我先来分析一下此脚本:
编译boot
#进入对应编译boot的目录:cd boot_images/build/ms#cleaning the build./build.sh TARGET_FAMILY=8909 --prod -c#build command./build.sh TARGET_FAMILY=8909 --prod
编译TZ
#进入对应编译TZ的目录:cd trustzone_images/build/ms#cleaning the build./build.sh CHIPSET=msm8909 tz sampleapp -c#build command./build.sh CHIPSET=msm8909 tz sampleapp
编译RPM
#进入对应编译RPM的目录:cd rpm_proc/build#cleaning the build./build_8909.sh -c#build command./build_8909.sh
编译modem
#进入对应编译modem的目录:cd modem_proc/build/ms#cleaning the build./build.sh 8909.gen.prod -k -c#build command./build.sh 8909.gen.prod -k
编译NON-HLOS
rm -rvf common/build/bin/*rm common/build/bin/asic/NON-HLOS.binTARGET_PATH="common/build"cd $TARGET_PATHpython update_common_info.py#python build.py
编译android
#select jdk version #source /home/android/jdk/jdk-1.7.0.79-open.shcd LINUX/androidsource build/envsetup.shlunch P4901-userdebug# lunch#P4901-userdebug#lunch P4901-usermake -j8 PROJECT_NAME=wik_fr SUB_PROJECT_NAME=orange BUILD_MYOS=yes 2>&1 | tee otabuild.log
编译adsp
当然,MSM8909 不需要编译此模块,但是有的是需要编译此模块
########## make adsp (MSM8909 does not need make it) #####adsp_proc eg:msm8937#cleaning the build#python ./build/build.py -c msm8937 -o clean#build command#python ./build/build.py -c msm8937 -o all
打包生成QFIL的刷机包
rm -rf sysimgmkdir sysimgecho "..................................start copy images for qfil............................"#copy cache_*.img persist_*.img system_*.img userdata_*.img #rawprogram0.xml.bak rawprogram_unsparse.xml cp common/build/bin/asic/sparse_images/* sysimg/#about sim card bincp common/build/bin/asic/NON-HLOS.bin sysimg/#qfil select usecp common/build/patch0.xml sysimg/cp common/build/gpt_backup0.bin sysimg/cp common/build/gpt_main0.bin sysimg/cp common/build/battery.bin sysimg/cp common/build/zeros_3072sectors.img sysimg/cp common/build/zeros_512k.bin sysimg/cp common/build/fs_image.tar.gz.mbn.4901.img sysimg/# power on logocp common/build/splash.bin sysimg/#cp common/tools/sectools/resources/build/sec.dat sysimg/#cp out#boot.imgcp LINUX/android/out/target/product/P4901/boot.img sysimg/cp LINUX/android/out/target/product/P4901/emmc_appsboot.mbn sysimg/#recovery.imgcp LINUX/android/out/target/product/P4901/recovery.img sysimg/#about bootloadercp boot_images/build/ms/bin/8909/emmc/sbl1.mbn sysimg/#qfil select usecp boot_images/build/ms/bin/8909/emmc/unsigned/prog_emmc_firehose_8909_ddr.mbn sysimg/#about tzcp trustzone_images/build/ms/bin/MAZAANAA/tz.mbn sysimg/#about sensorcp rpm_proc/build/ms/bin/8909/pm8909/rpm.mbn sysimg/#copy xttcp wcnss_proc/copy_folder/MSM8909_SoftwareUpgradeWithCDT_eMMC_FireHose.xtt sysimg/cp wcnss_proc/copy_folder/MSM8909_SoftwareDownloadWithCDT_eMMC_Firehose.xtt sysimg/echo "..................................end copy images for qfil............................"