1*d4f6d8e3SJoseph Chen#!/bin/bash 2*d4f6d8e3SJoseph Chen# 3*d4f6d8e3SJoseph Chen# Copyright (c) 2020 Rockchip Electronics Co., Ltd 4*d4f6d8e3SJoseph Chen# 5*d4f6d8e3SJoseph Chen# SPDX-License-Identifier: GPL-2.0 6*d4f6d8e3SJoseph Chen# 7*d4f6d8e3SJoseph Chenset -e 8*d4f6d8e3SJoseph Chen 9*d4f6d8e3SJoseph ChenOUT="out" 10*d4f6d8e3SJoseph Chen 11*d4f6d8e3SJoseph Chenfunction usage() 12*d4f6d8e3SJoseph Chen{ 13*d4f6d8e3SJoseph Chen echo 14*d4f6d8e3SJoseph Chen echo "usage:" 15*d4f6d8e3SJoseph Chen echo " $0 -f [Android boot.img] -o [FIT boot.img]" 16*d4f6d8e3SJoseph Chen echo 17*d4f6d8e3SJoseph Chen} 18*d4f6d8e3SJoseph Chen 19*d4f6d8e3SJoseph Chenfunction args_process() 20*d4f6d8e3SJoseph Chen{ 21*d4f6d8e3SJoseph Chen if [ $# -ne 4 ]; then 22*d4f6d8e3SJoseph Chen usage 23*d4f6d8e3SJoseph Chen exit 1 24*d4f6d8e3SJoseph Chen fi 25*d4f6d8e3SJoseph Chen 26*d4f6d8e3SJoseph Chen while [ $# -gt 0 ]; do 27*d4f6d8e3SJoseph Chen case $1 in 28*d4f6d8e3SJoseph Chen -f) 29*d4f6d8e3SJoseph Chen BOOT_IMG=$2 30*d4f6d8e3SJoseph Chen shift 2 31*d4f6d8e3SJoseph Chen ;; 32*d4f6d8e3SJoseph Chen -o) 33*d4f6d8e3SJoseph Chen FIT_IMG=$2 34*d4f6d8e3SJoseph Chen shift 2 35*d4f6d8e3SJoseph Chen ;; 36*d4f6d8e3SJoseph Chen *) 37*d4f6d8e3SJoseph Chen usage 38*d4f6d8e3SJoseph Chen exit 1 39*d4f6d8e3SJoseph Chen ;; 40*d4f6d8e3SJoseph Chen esac 41*d4f6d8e3SJoseph Chen done 42*d4f6d8e3SJoseph Chen 43*d4f6d8e3SJoseph Chen if [ ! -f ${BOOT_IMG} ]; then 44*d4f6d8e3SJoseph Chen echo "ERROR: No ${ITB}" 45*d4f6d8e3SJoseph Chen exit 1 46*d4f6d8e3SJoseph Chen fi 47*d4f6d8e3SJoseph Chen} 48*d4f6d8e3SJoseph Chen 49*d4f6d8e3SJoseph Chenfunction android2fit() 50*d4f6d8e3SJoseph Chen{ 51*d4f6d8e3SJoseph Chen if ! file ${BOOT_IMG} | grep "Android bootimg" ; then 52*d4f6d8e3SJoseph Chen echo "ERROR: ${BOOT_IMG} is not an Android Image" 53*d4f6d8e3SJoseph Chen file ${BOOT_IMG} 54*d4f6d8e3SJoseph Chen exit 1 55*d4f6d8e3SJoseph Chen fi 56*d4f6d8e3SJoseph Chen 57*d4f6d8e3SJoseph Chen rm ${OUT}/ -rf 58*d4f6d8e3SJoseph Chen ./scripts/unpack_bootimg --boot_img ${BOOT_IMG} --out ${OUT}/ 59*d4f6d8e3SJoseph Chen ./scripts/unpack_resource.sh ${OUT}/second ${OUT}/ 60*d4f6d8e3SJoseph Chen mv ${OUT}/second ${OUT}/resource 61*d4f6d8e3SJoseph Chen 62*d4f6d8e3SJoseph Chen rm images/ -rf && mkdir -p images/ 63*d4f6d8e3SJoseph Chen cp ${OUT}/kernel images/ 64*d4f6d8e3SJoseph Chen cp ${OUT}/resource images/ 65*d4f6d8e3SJoseph Chen cp ${OUT}/ramdisk images/ 66*d4f6d8e3SJoseph Chen cp ${OUT}/rk-kernel.dtb images/ 67*d4f6d8e3SJoseph Chen rm ${OUT}/ -rf 68*d4f6d8e3SJoseph Chen 69*d4f6d8e3SJoseph Chen ./make.sh fit 70*d4f6d8e3SJoseph Chen if [ "boot.img" != ${FIT_IMG} ]; then 71*d4f6d8e3SJoseph Chen mv boot.img ${FIT_IMG} 72*d4f6d8e3SJoseph Chen fi 73*d4f6d8e3SJoseph Chen 74*d4f6d8e3SJoseph Chen echo "Transform OK: Android(${BOOT_IMG}) ==> FIT(${FIT_IMG}) is ready" 75*d4f6d8e3SJoseph Chen echo 76*d4f6d8e3SJoseph Chen} 77*d4f6d8e3SJoseph Chen 78*d4f6d8e3SJoseph Chenargs_process $* 79*d4f6d8e3SJoseph Chenandroid2fit 80