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