高通平台的编译和MTK的编译还是有一些不同,多了一些项,并且打包生成的刷机文件也是分散在各个地方,导致这个好像非常玄,弄的我也是老问人,非常不好意思。

这二天,自己看了一下的脚本,搞的非常复杂,自己把核心的弄出来,大家看一下就明白了。这是以MSM8909为例的:

编译脚本

build.sh———–一个综合编译,打包的脚本
使用方法:

source build.sh

build.sh内部

#!/bin/bash
echo "..................................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.bin
TARGET_PATH="common/build"
cd $TARGET_PATH
python update_common_info.py
#python build.py###############################################  make android  ###############################
#select jdk version
#source /home/android/jdk/jdk-1.7.0.79-open.sh
cd LINUX/android
source build/envsetup.sh
lunch P4901-userdebug
# lunch
#P4901-userdebug
#lunch P4901-user
make -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 sysimg
mkdir sysimg
echo "..................................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 bin
cp common/build/bin/asic/NON-HLOS.bin sysimg/
#qfil select use
cp 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 logo
cp common/build/splash.bin sysimg/
#
cp common/tools/sectools/resources/build/sec.dat sysimg/
#cp out
#boot.img
cp LINUX/android/out/target/product/P4901/boot.img sysimg/
cp LINUX/android/out/target/product/P4901/emmc_appsboot.mbn sysimg/
#recovery.img
cp LINUX/android/out/target/product/P4901/recovery.img sysimg/
#about bootloader
cp boot_images/build/ms/bin/8909/emmc/sbl1.mbn sysimg/
#qfil select use
cp boot_images/build/ms/bin/8909/emmc/unsigned/prog_emmc_firehose_8909_ddr.mbn sysimg/
#about  tz
cp trustzone_images/build/ms/bin/MAZAANAA/tz.mbn sysimg/
#about sensor
cp rpm_proc/build/ms/bin/8909/pm8909/rpm.mbn sysimg/
#copy xtt
cp 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.bin
TARGET_PATH="common/build"
cd $TARGET_PATH
python update_common_info.py
#python build.py

编译android

#select jdk version
#source /home/android/jdk/jdk-1.7.0.79-open.sh
cd LINUX/android
source build/envsetup.sh
lunch P4901-userdebug
# lunch
#P4901-userdebug
#lunch P4901-user
make -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 sysimg
mkdir sysimg
echo "..................................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 bin
cp common/build/bin/asic/NON-HLOS.bin sysimg/
#qfil select use
cp 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 logo
cp common/build/splash.bin sysimg/
#
cp common/tools/sectools/resources/build/sec.dat sysimg/
#cp out
#boot.img
cp LINUX/android/out/target/product/P4901/boot.img sysimg/
cp LINUX/android/out/target/product/P4901/emmc_appsboot.mbn sysimg/
#recovery.img
cp LINUX/android/out/target/product/P4901/recovery.img sysimg/
#about bootloader
cp boot_images/build/ms/bin/8909/emmc/sbl1.mbn sysimg/
#qfil select use
cp boot_images/build/ms/bin/8909/emmc/unsigned/prog_emmc_firehose_8909_ddr.mbn sysimg/
#about  tz
cp trustzone_images/build/ms/bin/MAZAANAA/tz.mbn sysimg/
#about sensor
cp rpm_proc/build/ms/bin/8909/pm8909/rpm.mbn sysimg/
#copy xtt
cp 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............................"

android开发笔记之高通MSM8909编译刷机脚本相关推荐

  1. Jetson TX1开发笔记(一):开机设置与刷机

    网站:http://cuijiahua.com. https://blog.csdn.net/c406495762/article/details/70786700 转载请注明作者和出处: http: ...

  2. 乐2的android版本,乐视2高通|MIUI10|安卓6.0|最终完美版|极速_最新最全的乐2高通版ROM刷机包下载、刷机...

    乐视2高通|MIUI10|安卓6.0|最终完美版|极速流畅|稳定实用|摇晃手势|DDK设置|养老专用 更新编译工具ROM体积更小相机切换不卡 因为Magisk的关系开机会有系统提示完全不影响 精简桌面 ...

  3. Android开发笔记(七十)反编译初步

    查看平台源码 查看内核源码 Android的内核源码很大,有几个G,仔细找找网上有许多下载的地方.作为普通开发者,一般不需要阅读内核源码,但一点都不了解好像也不行,因为实际开发中有时候就得会那么一点点 ...

  4. Android开发笔记(一百六十三)高仿京东的沉浸式状态栏

    前面的文章介绍了如何实现广告轮播的Banner效果,本想可以告一段落.然而某天产品经理心血来潮,拿着苹果手机,要求像iOS那样把广告图顶到状态栏这儿.刚接到这需求,不禁倒吸一口冷气,又要安卓开发去实现 ...

  5. Android开发笔记(一百四十四)高仿支付宝的头部伸缩动画

    Android5.0推出的MaterialDesign库包含了处理头部工具栏的多个控件,不但允许自定义顶部导航栏,而且导航栏高度是可以伸缩的.如此一来,一方面导航栏能够放得下更多控件,另一方面在用户想 ...

  6. Android开发笔记(序)写在前面的目录

    知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平.因此博主就想,入门的东西咱就不写了,人不能老停留在入 ...

  7. Android开发笔记(一百六十五)利用红外发射遥控电器

    红外遥控是一种无线控制技术,它具有功耗小.成本低.易实现等诸多优点,因而被各种电子设备特别是家用电器广泛采用,像日常生活中的电视遥控器.空调遥控器等等基本都采用红外遥控技术. 不过遥控器并不都是红外遥 ...

  8. Android开发笔记(一百一十六)网络学习资源

    知名网站 本系列的开发笔记,对Android开发来说只是沧海一瓢,还有更多的技术等待我们去汲取.下面列出几个常用的开发网站,供初学者上路: 首先当然是国内首屈一指的技术网站csdn啦,csdn提供了众 ...

  9. Android开发笔记(一百零三)地图与定位SDK

    集成地图SDK 国内常用的地图SDK就是百度和高德了,二者的用法大同小异,可按照官网上的开发指南一步步来.下面是我在集成地图SDK时遇到的问题说明: 1.点击基本地图功能选项,不能打开地图,弹出&qu ...

最新文章

  1. Android百度地图开发 百度地图得到当前位置
  2. 2021-10-11 二叉树,二叉搜索树及其相关23个操作 C++实现笔记(复习用,含C指针复习)
  3. 联合促经济 伟库网在江门普及SaaS
  4. 网页切图div+css命名
  5. 电容电感充电曲线仿真图
  6. 奇东锐腾服务器无法显示,奇东锐腾pxe全自动网刻工具
  7. GAN 模式崩溃的理论解释
  8. 第三章 pro2信道编码咬尾卷积编码与维特比硬判决译码
  9. 2022年最新年终奖个人所得税计算计算方法及扣税标准
  10. python求共轭复数_python怎么print出共轭复数
  11. Xshell暴漏内网端口
  12. 各种智能跟随定位技术解剖
  13. 实验三+070+胡阳洋
  14. 从苏宁易购2020双十一战报窥探各品牌座次排行
  15. 文本分析--NLTK自然语言处理
  16. 机器学习算法:kNN和Weighted kNN
  17. AWS-EC2多弹性ip配置
  18. dYdX会是DeFi下一轮爆发的引擎吗?
  19. 数据库保存表情符号(emoji)
  20. Pl/SLQ使用技巧及快捷键

热门文章

  1. MAC使用php7搭建LNMP环境
  2. compareTo 时间比较
  3. 以太坊区块链 Solidity solc是什么
  4. 第 2 篇、Linux操作基础 | Vim编辑器使用
  5. The request was rejected because the URL was not normalized.解决方案
  6. 销售新冠检测试剂需要办理什么证件?
  7. 电子科大计算机学院分数线,电子科技大学2019录取分数线是多少?四川考生多少分能上电子科大?...
  8. js promise 详解
  9. windows10 浏览器出现无法连接到代理服务器
  10. pytorch学习笔记----transforms 的使用