1、在Android根目录下添加OTA增量包编译脚本:
build_release_incremental_ota.sh
#!/bin/bash
#
# Copyright (c) 2012, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
MSM8953_64="out/target/product/msm8953_64"
TARGET_FILE_INTERMEDIATES="out/target/product/msm8953_64/obj/PACKAGING/target_files_intermediates"
OTA_FROM_FILES="./build/tools/releasetools/ota_from_target_files"
#开始编译Android版本
#make clean;
source build/envsetup.sh;
lunch 42;
make -j64;
#结束编译Android版本
make otapackage;#开始制作新的整包*.zip
#rm $MSM8953_64/*.img #删除MSM8953_64目录中img文件
rm $TARGET_FILE_INTERMEDIATES/incremental_ota_update.zip #删除TARGET_FILE_INTERMEDIATES目录中zip文件
cp $TARGET_FILE_INTERMEDIATES/msm8953_64-target_files-eng.*/IMAGES/*.img $MSM8953_64/ #为升级ota差分基础固件做准备
mv $TARGET_FILE_INTERMEDIATES/msm8953_64-target_files-eng.*.zip $TARGET_FILE_INTERMEDIATES/msm8953_64-target_files-eng.new.zip #重命名全量文件包
cp $TARGET_FILE_INTERMEDIATES/msm8953_64-target_files-eng.new.zip ota/msm8953_64-target_files-eng.new.zip #copy新生成的整包到ota目录下
rm $TARGET_FILE_INTERMEDIATES/msm8953_64-target_files-eng.new.zip
$OTA_FROM_FILES -i ota/msm8953_64-target_files-eng.old.zip ota/msm8953_64-target_files-eng.new.zip ota/incremental_ota_update.zip #制作ota增量包
cp ota/incremental_ota_update.zip $TARGET_FILE_INTERMEDIATES/
rm ota/incremental_ota_update.zip
rm ota/msm8953_64-target_files-eng.old.zip
mv ota/msm8953_64-target_files-eng.new.zip ota/msm8953_64-target_files-eng.old.zip
2、用于备份全量固件包文件放置在/ota中
如:/ota/debug/msm8953_64-target_files-eng.old.zip
/ota/release/msm8953_64-target_files-eng.old.zip
3、生产的OTA增量包位于
如:/out/target/product/msm8953_64/obj/PACKAGING/target_files_intermediates/incremental_ota_update.zip
msm8953_64只是一个版本信息,需要根据你的实际固件做相应修改