高通平台手机开发之刷机包脚本

打包脚本:

高通平台有很多CPU,里面运行不同的软件,所以需要将他们打包到以前,通过高通的工具QFIL,Firehose之类的工具刷写到手机里。

从高通的网站,https://chipcode.qti.qualcomm.com上下载的Code,有两个git目录
一是编译好的二进制文件,比如:msm8974-la-3-0_amss_device
另一个是源码,比如:msm8974-la-3-0_amss_oem_standard
里面的目录都是一样的。

进入目录有两个文件:about.html,contents.xml
用于描述整个软件的Release版本号,各个模块的版本号,对应的AP软件版本号等待。

common/build
.
├── bin
│ └── asic
│ ├── NON-HLOS.bin
│ └── pil_split_bins
│ ├── adsp.b00
│ ├── xxxxxxxx
├── fastboot_all.py
├── fastboot_complete.py
├── gpt_backup0.bin
├── gpt_both0.bin
├── gpt_main0.bin
├── partition.xml
├── patch0.xml
├── rawprogram0.xml
└── update_common_info.py

我们可以在partition.xml增加Partition或者改变他们的大小。
├── gpt_backup0.bin
├── gpt_both0.bin
├── gpt_main0.bin
├── patch0.xml
├── rawprogram0.xml
上面这几个文件在脚本运行时会自动更新。

打包的目标是根据partition.xml将需要的文件放到一起,以供烧录。
update_common_info.py是打包的脚本,做以下事情:
1)将modem, adsp, wcnss和一部分tz里编出来的文件打包成一个NON-HLOS.bin
2)将大的Image分割成小的,比如system, userdata等等
3)更新以下文件
├── gpt_backup0.bin
├── gpt_both0.bin
├── gpt_main0.bin
├── patch0.xml
├── rawprogram0.xml

由于update_common_info.py不能最终提供给我们一个可供刷写的包,所以写了pack.sh来生成完整的包。
1)加入Linux Image,创建目录LINUX/android/out/target/product/msm8974,创建system.img等文件的链接。链接到Linux Image。这个目录LINUX/android/out/target/product/msm8974可以从contents.xml里看到。
2)执行update_common_info.py
3)将刷写包需要的文件拷贝到一个目录,压缩打包。

#!/bin/bash

# Link build image
ROOT=`pwd`

LNX_SRC_PATH=/workspace/bacon-kk-3.0/out/target/product/q1
LNX_DEST_PATH=$ROOT/LINUX/android/out/target/product/msm8974

# Get product name
PRODUCT=${LNX_SRC_PATH##*/}

IMG_LIST="boot.img cache.img emmc_appsboot.mbn persist.img recovery.img system.img userdata.img"

# Delete previous files
cd $LNX_DEST_PATH
rm *

for img in $IMG_LIST
do
  echo $img
  if [ ! -e $LNX_SRC_PATH/$img ]
  then
    echo "Linux image: $img not found in $LNX_SRC_PATH"
    exit
  fi
  ln -s $LNX_SRC_PATH/$img $LNX_DEST_PATH
done

echo "Link finished!"

# Delete the output file
#rm -rf bin/
# todo later

# Generate NONHLOS.bin and spare image
cd $ROOT/common/build && python update_common_info.py

echo "Split finished!"

# Check if bin/ is generated
if [ -d "bin" ]
then
  ls "bin"
else
  echo "Error, no bin generated!"
  exit 0
fi

cd $ROOT
# Copy files
cp_files="$ROOT/common/build/bin/asic/NON-HLOS.bin
$ROOT/rpm_proc/build/ms/bin/AAAAANAAR/rpm.mbn
$ROOT/boot_images/build/ms/bin/8974/MPRG8974.mbn
$ROOT/boot_images/build/ms/bin/8974/prog_emmc_firehose_8974.mbn
$ROOT/boot_images/build/ms/bin/8974/sbl1.mbn
$ROOT/debug_image/build/ms/bin/AAAAANAZ/sdi.mbn
$ROOT/trustzone_images/build/ms/bin/AAAAANAA/tz.mbn
$ROOT/common/build/gpt_main0.bin
$ROOT/common/build/gpt_backup0.bin
$ROOT/common/build/patch0.xml
$LNX_SRC_PATH/emmc_appsboot.mbn
$LNX_SRC_PATH/boot.img
$LNX_SRC_PATH/recovery.img"

for file in $cp_files
do
  cp $file $ROOT/common/build/bin/asic/sparse_images/
done

# Rename the folder
GEN_TIME=`date +%Y-%m-%d-%H%M%S`
gen_file=FlashPackage_${PRODUCT}_${GEN_TIME}

mv $ROOT/common/build/bin/asic/sparse_images/ $ROOT/common/build/bin/asic/$gen_file

#zip
cd $ROOT/common/build/bin/asic
zip -r $gen_file.zip $gen_file
cd $ROOT
mv $ROOT/common/build/bin/asic/$gen_file.zip ./

echo "Flash package:$ROOT/$gen_file.zip has created!"
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
高通平台WLAN驱动开发文档是用于指导开发人员在高通平台开发WLAN驱动程序的文档。WLAN驱动程序是一种软件,用于控制和管理无线局域网(WLAN)设备的操作和功能。 该开发文档提供了关于WLAN驱动程序开发的详细信息,括驱动程序的架构、功能、接口和具体的开发要求。它描述了WLAN设备与操作系统之间的通信方式,例如硬件抽象层(HAL)和操作系统驱动程序接口(OEM-OSI)等。此外,文档还提供了关于WLAN驱动程序编程接口(API)和相关函数的说明,以及如何实现WLAN功能集、网络管理和安全性等方面的指导。 开发人员可以根据这份文档中提供的信息,了解如何在高通平台开发WLAN驱动程序,并且根据自己的需求进行定制和优化。文档中会含一些常见问题和解决方案,以帮助开发人员克服开发过程中可能遇到的挑战。 由于WLAN驱动程序的开发涉及到硬件、操作系统和网络协议等多个领域的知识,因此该开发文档对于有经验的开发人员来说尤其有价值。通过合理利用这份文档,开发人员可以更高效地开发和调试WLAN驱动程序,从而提高WLAN设备的性能和稳定性。 总之,高通平台WLAN驱动开发文档是一份指导开发人员在高通平台开发WLAN驱动程序的详细文档,通过阅读并按照其中的指导进行开发开发人员可以更好地理解和掌握WLAN驱动程序的开发流程和技术要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值