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 fi 52 53 if [ -d "${IMAGES}" ];then 54 cp -r ${IMAGES}/* ${TMP_DIR} 55 else 56 cp -r ${IMAGES} ${TMP_DIR} 57 fi 58 ${TOOL} --pack --root=${TMP_DIR} --image=${RSCE_NEW} `find ${TMP_DIR} -type f|sort` 59 60 echo 61 echo "Packed resources:" 62 ${TOOL} --unpack --verbose --image=${RSCE_NEW} ${TMP_DIR} 2>&1 | grep entry | sed "s/^.*://" | xargs echo 63 64 rm -rf ${TMP_DIR} 65 echo 66 echo "./resource.img with battery images is ready" 67} 68 69append_images_to_android_img() 70{ 71 ./scripts/unpack_bootimg --boot_img ${BOOT_OLD} --out ${TMP_DIR2}/ 72 RSCE_OLD="${TMP_DIR2}/second" 73 append_images_to_resource 74 ./scripts/repack-bootimg --boot_img ${BOOT_OLD} --second ${RSCE_NEW} -o ${BOOT_NEW} 75 rm -rf ${TMP_DIR2} 76} 77 78append_images_to_fit_img() 79{ 80 ./scripts/fit-unpack.sh -f ${BOOT_OLD} -o ${TMP_DIR2}/ 81 RSCE_OLD="${TMP_DIR2}/resource" 82 append_images_to_resource 83 rm -rf ${TMP_DIR2}/* 84 mv ${RSCE_NEW} ${TMP_DIR2}/resource 85 ./scripts/fit-repack.sh -f ${BOOT_OLD} -d ${TMP_DIR2} 86 rm -rf ${TMP_DIR2} 87} 88 89prepare 90if file ${RSCE_OLD} | grep 'Android bootimg' >/dev/null 2>&1 ; then 91 append_images_to_android_img 92elif file ${RSCE_OLD} | grep 'Device Tree Blob' >/dev/null 2>&1 ; then 93 append_images_to_fit_img 94elif strings ${RSCE_OLD} | grep "RSCE" >/dev/null 2>&1 ; then 95 append_images_to_resource 96fi 97 98