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 103bcf0b7cSJoseph Chen 113bcf0b7cSJoseph ChenBOOT_OLD=$1 123bcf0b7cSJoseph ChenBOOT_NEW=boot.img 133bcf0b7cSJoseph Chen 148b099091SJoseph ChenTOOL=../rkbin/tools/resource_tool 15b71a17c5SJoseph ChenIMAGES=./tools/images/ 16b71a17c5SJoseph ChenTMP_DIR=.resource_tmp 173bcf0b7cSJoseph 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 51*5867a88fSJoseph Chen # promise rk-kernel.dtb to be the first one after calling "find ${TMP_DIR} -type f|sort" when repack. 52*5867a88fSJoseph Chen mv ${TMP_DIR}/rk-kernel.dtb ${TMP_DIR}/aaa-rk-kernel.dtb 538b099091SJoseph Chen fi 54b71a17c5SJoseph Chen 55b71a17c5SJoseph Chen if [ -d "${IMAGES}" ];then 56b71a17c5SJoseph Chen cp -r ${IMAGES}/* ${TMP_DIR} 578b099091SJoseph Chen else 58b71a17c5SJoseph Chen cp -r ${IMAGES} ${TMP_DIR} 598b099091SJoseph Chen fi 60b71a17c5SJoseph Chen ${TOOL} --pack --root=${TMP_DIR} --image=${RSCE_NEW} `find ${TMP_DIR} -type f|sort` 61b71a17c5SJoseph Chen 628b099091SJoseph Chen echo 63b71a17c5SJoseph Chen echo "Packed resources:" 64b71a17c5SJoseph Chen ${TOOL} --unpack --verbose --image=${RSCE_NEW} ${TMP_DIR} 2>&1 | grep entry | sed "s/^.*://" | xargs echo 65b71a17c5SJoseph Chen 66b71a17c5SJoseph Chen rm -rf ${TMP_DIR} 67b71a17c5SJoseph Chen echo 68b71a17c5SJoseph Chen echo "./resource.img with battery images is ready" 698b099091SJoseph Chen} 708b099091SJoseph Chen 713bcf0b7cSJoseph Chenappend_images_to_android_img() 723bcf0b7cSJoseph Chen{ 733bcf0b7cSJoseph Chen ./scripts/unpack_bootimg --boot_img ${BOOT_OLD} --out ${TMP_DIR2}/ 743bcf0b7cSJoseph Chen RSCE_OLD="${TMP_DIR2}/second" 75b71a17c5SJoseph Chen append_images_to_resource 763bcf0b7cSJoseph Chen ./scripts/repack-bootimg --boot_img ${BOOT_OLD} --second ${RSCE_NEW} -o ${BOOT_NEW} 773bcf0b7cSJoseph Chen rm -rf ${TMP_DIR2} 783bcf0b7cSJoseph Chen} 793bcf0b7cSJoseph Chen 803bcf0b7cSJoseph Chenappend_images_to_fit_img() 813bcf0b7cSJoseph Chen{ 823bcf0b7cSJoseph Chen ./scripts/fit-unpack.sh -f ${BOOT_OLD} -o ${TMP_DIR2}/ 833bcf0b7cSJoseph Chen RSCE_OLD="${TMP_DIR2}/resource" 843bcf0b7cSJoseph Chen append_images_to_resource 853bcf0b7cSJoseph Chen rm -rf ${TMP_DIR2}/* 863bcf0b7cSJoseph Chen mv ${RSCE_NEW} ${TMP_DIR2}/resource 873bcf0b7cSJoseph Chen ./scripts/fit-repack.sh -f ${BOOT_OLD} -d ${TMP_DIR2} 883bcf0b7cSJoseph Chen rm -rf ${TMP_DIR2} 893bcf0b7cSJoseph Chen} 903bcf0b7cSJoseph Chen 913bcf0b7cSJoseph Chenprepare 923bcf0b7cSJoseph Chenif file ${RSCE_OLD} | grep 'Android bootimg' >/dev/null 2>&1 ; then 933bcf0b7cSJoseph Chen append_images_to_android_img 943bcf0b7cSJoseph Chenelif file ${RSCE_OLD} | grep 'Device Tree Blob' >/dev/null 2>&1 ; then 953bcf0b7cSJoseph Chen append_images_to_fit_img 963bcf0b7cSJoseph Chenelif strings ${RSCE_OLD} | grep "RSCE" >/dev/null 2>&1 ; then 973bcf0b7cSJoseph Chen append_images_to_resource 983bcf0b7cSJoseph Chenfi 99b71a17c5SJoseph Chen 100