android 编译boot.img、dt.img、uboot.bin脚本

#!/bin/bash

function start_dtb()
{
    rm -rf $OUT_TARGET_DIR/obj/KERNEL_OBJ/customer/arch/$KERNEL_ARCH/boot/dts/X3_2g.dtb
    echo "delete $OUT_TARGET_DIR/obj/KERNEL_OBJ/customer/arch/$KERNEL_ARCH/boot/dts/X3_2g.dtb"
    rm -rf $OUT_TARGET_DIR/dt.img
    echo "delete $OUT_TARGET_DIR/dt.img"
    sed -i 's/^#include \\\"partition_.*/#include \\\"partition_mbox_normal_P_32.dtsi\\\"/' $DTS_PATH/X3_2g.dts;
    sed -i 's/^#include \\\"firmware_.*/#include \\\"firmware_system.dtsi\\\"/' $DTS_PATH/partition_mbox_normal_P_32.dtsi;

    if [ -f \"common/customer/arch/arm/boot/dts/X3_2g.dtd\" ]; then
    make -j32 -C common O=$KERNEL_OUT ARCH=$KERNEL_ARCH CROSS_COMPILE=$PREFIX_CROSS_COMPILE X3_2g.dtd;
    fi
    make -j32 -C common O=$KERNEL_OUT ARCH=$KERNEL_ARCH CROSS_COMPILE=$PREFIX_CROSS_COMPILE X3_2g.dtb;
    cp -f $KERNEL_OUT/customer/arch/arm/boot/dts/X3_2g.dtb $OUT_TARGET_DIR/dt.img
    echo "Install $OUT_TARGET_DIR/dt.img"
}


function start_boot()
{
    make -j32 -C common O=$KERNEL_OUT ARCH=$KERNEL_ARCH CROSS_COMPILE=$PREFIX_CROSS_COMPILE $BUILD_CONFIG
    echo "make config done!"
    make -j32 -C common O=$KERNEL_OUT ARCH=$KERNEL_ARCH CROSS_COMPILE=$PREFIX_CROSS_COMPILE modules uImage
    echo "make kernel image done!"
    rm -rf $OUT_TARGET_DIR/kernel
    rm -rf $OUT_TARGET_DIR/boot.img
    cp -rf $INTERMEDIATES_KERNEL $OUT_TARGET_DIR/kernel
    out/host/linux-x86/bin/mkbootimg --second out/target/product/projector/2ndbootloader --kernel out/target/product/projector/kernel --base 0x0 --os_version 9 --os_patch_level 2018-08-05 --cmdline \"androidboot.dtbo_idx=0\" --cmdline \"root=/dev/mmcblk0p18\" --output out/target/product/projector/boot.img
    echo "build boot.img done!"
}


function start_uboot()
{
    rm -rf $OUT_TARGET_DIR/bootloader.img
    rm -rf $ANDROID_PATH/device/customer/$PROJECTOR/bootloader.img
    cd $ANDROID_PATH/bootloader/uboot-repo
    ./mk obe_projector_X3 --systemroot
    cd $ANDROID_PATH
    cp -rf $UBOOT_PATH/build/u-boot.bin $OUT_TARGET_DIR/bootloader.img
    cp -rf $UBOOT_PATH/build/u-boot.bin $ANDROID_PATH/device/customer/projector/bootloader.img
    cp -rf $UBOOT_PATH/build/u-boot.bin.usb.bl2 $ANDROID_PATH/device/customer/projector/upgrade/u-boot.bin.usb.bl2
    cp -rf $UBOOT_PATH/build/u-boot.bin.usb.tpl $ANDROID_PATH/device/customer/projector/upgrade/u-boot.bin.usb.tpl
    cp -rf $UBOOT_PATH/build/u-boot.bin.sd.bin $ANDROID_PATH/device/customer/projector/upgrade/u-boot.bin.sd.bin
    echo "build bootloader.img done"
}

KERNEL_ARCH=arm
ANDROID_PATH=`cd $(dirname $0); pwd -P`
DTS_PATH=$ANDROID_PATH/common/customer/arch/$KERNEL_ARCH/boot/dts
PROJECTOR=projector
UBOOT_PATH=$ANDROID_PATH/bootloader/uboot-repo
OUT_TARGET_DIR=$ANDROID_PATH/out/target/product/$PROJECTOR
PREFIX_CROSS_COMPILE=/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
KERNEL_OUT=$OUT_TARGET_DIR/obj/KERNEL_OBJ
KERNEL_DEFCONFIG=meson64_projector_defconfig
INTERMEDIATES_KERNEL=${KERNEL_OUT}/arch/${KERNEL_ARCH}/boot/uImage

if [ -z "$1" ]; then
    echo "x3_build.sh [-h]"
    echo "dtb: start build dt.img"
    echo "boot: start build boot.img"
    echo "uboot: start build bootloader.img"
elif [ $1 == "uboot" ]; then
    echo "start make bootloader.img"
    start_uboot
elif [ $1 == "boot" ]; then
    echo "start make boot.img"
    start_boot
elif [ $1 == "dtb" ]; then
    echo "start make dt.img"
    start_dtb
else
    echo "Please enter a valid parameter"
fi



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值