18b099091SJoseph Chen#!/bin/sh 28b099091SJoseph Chen# 38b099091SJoseph Chen# Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd 48b099091SJoseph Chen# 58b099091SJoseph Chen# SPDX-License-Identifier: GPL-2.0 68b099091SJoseph Chen# 78b099091SJoseph Chen 8b71a17c5SJoseph ChenRSCE_OLD=$1 9b71a17c5SJoseph ChenRSCE_NEW=resource.img 10*3bcf0b7cSJoseph Chen 11*3bcf0b7cSJoseph ChenBOOT_OLD=$1 12*3bcf0b7cSJoseph ChenBOOT_NEW=boot.img 13*3bcf0b7cSJoseph Chen 148b099091SJoseph ChenTOOL=../rkbin/tools/resource_tool 15b71a17c5SJoseph ChenIMAGES=./tools/images/ 16b71a17c5SJoseph ChenTMP_DIR=.resource_tmp 17*3bcf0b7cSJoseph ChenTMP_DIR2=.boot_tmp 188b099091SJoseph Chen 198b099091SJoseph Chenusage() 208b099091SJoseph Chen{ 218b099091SJoseph Chen echo "Usage:" 228b099091SJoseph Chen echo " ./pack_resource <input resource.img>" 238b099091SJoseph Chen} 248b099091SJoseph Chen 258b099091SJoseph Chenprepare() 268b099091SJoseph Chen{ 278b099091SJoseph Chen echo 28b71a17c5SJoseph Chen if [ "${RSCE_OLD}" = '--help' -o "${RSCE_OLD}" = '-h' -o "${RSCE_OLD}" = '--h' ]; then 298b099091SJoseph Chen usage 308b099091SJoseph Chen exit 0 31b71a17c5SJoseph Chen elif [ ! -d "${IMAGES}" ];then 32b71a17c5SJoseph Chen echo "ERROR: No ${RESOURCE}" 338b099091SJoseph Chen exit 1 34b71a17c5SJoseph Chen elif [ -z "${RSCE_OLD}" ];then 358b099091SJoseph Chen usage 368b099091SJoseph Chen exit 1 37b71a17c5SJoseph Chen elif [ ! -f "${RSCE_OLD}" ];then 38b71a17c5SJoseph Chen echo "ERROR: No ${RSCE_OLD}" 398b099091SJoseph Chen exit 1 408b099091SJoseph Chen fi 418b099091SJoseph Chen} 428b099091SJoseph Chen 43b71a17c5SJoseph Chenappend_images_to_resource() 448b099091SJoseph Chen{ 45b71a17c5SJoseph Chen rm -rf ${TMP_DIR} && mkdir -p ${TMP_DIR} 468b099091SJoseph Chen 47b71a17c5SJoseph Chen echo "Pack ${IMAGES} & ${RSCE_OLD} to ${RSCE_NEW} ..." 48b71a17c5SJoseph Chen if [ -f "${RSCE_OLD}" ];then 49b71a17c5SJoseph Chen echo "Unpacking old image(${RSCE_OLD}):" 50b71a17c5SJoseph Chen ${TOOL} --unpack --verbose --image=${RSCE_OLD} ${TMP_DIR} 2>&1 | grep entry | sed "s/^.*://" | xargs echo 518b099091SJoseph Chen fi 52b71a17c5SJoseph Chen 53b71a17c5SJoseph Chen if [ -d "${IMAGES}" ];then 54b71a17c5SJoseph Chen cp -r ${IMAGES}/* ${TMP_DIR} 558b099091SJoseph Chen else 56b71a17c5SJoseph Chen cp -r ${IMAGES} ${TMP_DIR} 578b099091SJoseph Chen fi 58b71a17c5SJoseph Chen ${TOOL} --pack --root=${TMP_DIR} --image=${RSCE_NEW} `find ${TMP_DIR} -type f|sort` 59b71a17c5SJoseph Chen 608b099091SJoseph Chen echo 61b71a17c5SJoseph Chen echo "Packed resources:" 62b71a17c5SJoseph Chen ${TOOL} --unpack --verbose --image=${RSCE_NEW} ${TMP_DIR} 2>&1 | grep entry | sed "s/^.*://" | xargs echo 63b71a17c5SJoseph Chen 64b71a17c5SJoseph Chen rm -rf ${TMP_DIR} 65b71a17c5SJoseph Chen echo 66b71a17c5SJoseph Chen echo "./resource.img with battery images is ready" 678b099091SJoseph Chen} 688b099091SJoseph Chen 69*3bcf0b7cSJoseph Chenappend_images_to_android_img() 70*3bcf0b7cSJoseph Chen{ 71*3bcf0b7cSJoseph Chen ./scripts/unpack_bootimg --boot_img ${BOOT_OLD} --out ${TMP_DIR2}/ 72*3bcf0b7cSJoseph Chen RSCE_OLD="${TMP_DIR2}/second" 73b71a17c5SJoseph Chen append_images_to_resource 74*3bcf0b7cSJoseph Chen ./scripts/repack-bootimg --boot_img ${BOOT_OLD} --second ${RSCE_NEW} -o ${BOOT_NEW} 75*3bcf0b7cSJoseph Chen rm -rf ${TMP_DIR2} 76*3bcf0b7cSJoseph Chen} 77*3bcf0b7cSJoseph Chen 78*3bcf0b7cSJoseph Chenappend_images_to_fit_img() 79*3bcf0b7cSJoseph Chen{ 80*3bcf0b7cSJoseph Chen ./scripts/fit-unpack.sh -f ${BOOT_OLD} -o ${TMP_DIR2}/ 81*3bcf0b7cSJoseph Chen RSCE_OLD="${TMP_DIR2}/resource" 82*3bcf0b7cSJoseph Chen append_images_to_resource 83*3bcf0b7cSJoseph Chen rm -rf ${TMP_DIR2}/* 84*3bcf0b7cSJoseph Chen mv ${RSCE_NEW} ${TMP_DIR2}/resource 85*3bcf0b7cSJoseph Chen ./scripts/fit-repack.sh -f ${BOOT_OLD} -d ${TMP_DIR2} 86*3bcf0b7cSJoseph Chen rm -rf ${TMP_DIR2} 87*3bcf0b7cSJoseph Chen} 88*3bcf0b7cSJoseph Chen 89*3bcf0b7cSJoseph Chenprepare 90*3bcf0b7cSJoseph Chenif file ${RSCE_OLD} | grep 'Android bootimg' >/dev/null 2>&1 ; then 91*3bcf0b7cSJoseph Chen append_images_to_android_img 92*3bcf0b7cSJoseph Chenelif file ${RSCE_OLD} | grep 'Device Tree Blob' >/dev/null 2>&1 ; then 93*3bcf0b7cSJoseph Chen append_images_to_fit_img 94*3bcf0b7cSJoseph Chenelif strings ${RSCE_OLD} | grep "RSCE" >/dev/null 2>&1 ; then 95*3bcf0b7cSJoseph Chen append_images_to_resource 96*3bcf0b7cSJoseph Chenfi 97b71a17c5SJoseph Chen 98