1#!/bin/sh 2# 3# Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd 4# 5# SPDX-License-Identifier: GPL-2.0 6# 7 8RSCE_OLD=$1 9RSCE_NEW=resource.img 10 11BOOT_OLD=$1 12BOOT_NEW=boot.img 13 14TOOL=../rkbin/tools/resource_tool 15IMAGES=./tools/images/ 16TMP_DIR=.resource_tmp 17TMP_DIR2=.boot_tmp 18 19usage() 20{ 21 echo "Usage:" 22 echo " ./pack_resource <input resource.img>" 23} 24 25prepare() 26{ 27 echo 28 if [ "${RSCE_OLD}" = '--help' -o "${RSCE_OLD}" = '-h' -o "${RSCE_OLD}" = '--h' ]; then 29 usage 30 exit 0 31 elif [ ! -d "${IMAGES}" ];then 32 echo "ERROR: No ${RESOURCE}" 33 exit 1 34 elif [ -z "${RSCE_OLD}" ];then 35 usage 36 exit 1 37 elif [ ! -f "${RSCE_OLD}" ];then 38 echo "ERROR: No ${RSCE_OLD}" 39 exit 1 40 fi 41} 42 43append_images_to_resource() 44{ 45 rm -rf ${TMP_DIR} && mkdir -p ${TMP_DIR} 46 47 echo "Pack ${IMAGES} & ${RSCE_OLD} to ${RSCE_NEW} ..." 48 if [ -f "${RSCE_OLD}" ];then 49 echo "Unpacking old image(${RSCE_OLD}):" 50 ${TOOL} --unpack --verbose --image=${RSCE_OLD} ${TMP_DIR} 2>&1 | grep entry | sed "s/^.*://" | xargs echo 51 # promise rk-kernel.dtb to be the first one after calling "find ${TMP_DIR} -type f|sort" when repack. 52 mv ${TMP_DIR}/rk-kernel.dtb ${TMP_DIR}/aaa-rk-kernel.dtb 53 fi 54 55 if [ -d "${IMAGES}" ];then 56 cp -r ${IMAGES}/* ${TMP_DIR} 57 else 58 cp -r ${IMAGES} ${TMP_DIR} 59 fi 60 ${TOOL} --pack --root=${TMP_DIR} --image=${RSCE_NEW} `find ${TMP_DIR} -type f|sort` 61 62 echo 63 echo "Packed resources:" 64 ${TOOL} --unpack --verbose --image=${RSCE_NEW} ${TMP_DIR} 2>&1 | grep entry | sed "s/^.*://" | xargs echo 65 66 rm -rf ${TMP_DIR} 67 echo 68 echo "./resource.img with battery images is ready" 69} 70 71append_images_to_android_img() 72{ 73 ./scripts/unpack_bootimg --boot_img ${BOOT_OLD} --out ${TMP_DIR2}/ 74 RSCE_OLD="${TMP_DIR2}/second" 75 append_images_to_resource 76 ./scripts/repack-bootimg --boot_img ${BOOT_OLD} --second ${RSCE_NEW} -o ${BOOT_NEW} 77 rm -rf ${TMP_DIR2} 78} 79 80append_images_to_fit_img() 81{ 82 ./scripts/fit-unpack.sh -f ${BOOT_OLD} -o ${TMP_DIR2}/ 83 RSCE_OLD="${TMP_DIR2}/resource" 84 append_images_to_resource 85 rm -rf ${TMP_DIR2}/* 86 mv ${RSCE_NEW} ${TMP_DIR2}/resource 87 ./scripts/fit-repack.sh -f ${BOOT_OLD} -d ${TMP_DIR2} 88 rm -rf ${TMP_DIR2} 89} 90 91prepare 92if file ${RSCE_OLD} | grep 'Android bootimg' >/dev/null 2>&1 ; then 93 append_images_to_android_img 94elif file ${RSCE_OLD} | grep 'Device Tree Blob' >/dev/null 2>&1 ; then 95 append_images_to_fit_img 96elif strings ${RSCE_OLD} | grep "RSCE" >/dev/null 2>&1 ; then 97 append_images_to_resource 98fi 99 100