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