1#!/bin/sh 2# 3# Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd 4# 5# SPDX-License-Identifier: GPL-2.0 6# 7 8OLD_IMAGE=$1 9IMAGE=resource.img 10TOOL=../rkbin/tools/resource_tool 11RESOURCES=./tools/images/ 12 13usage() 14{ 15 echo "Usage:" 16 echo " ./pack_resource <input resource.img>" 17} 18 19prepare() 20{ 21 echo 22 if [ "$OLD_IMAGE" = '--help' -o "$OLD_IMAGE" = '-h' -o "$OLD_IMAGE" = '--h' ]; then 23 usage 24 exit 0 25 elif [ ! -f "$TOOL" ];then 26 echo "Can't find '../rkbin/' Responsity, please download it before pack image!" 27 echo "How to obtain? 3 ways:" 28 echo " 1. Login your Rockchip gerrit account: \"Projects\" -> \"List\" -> search \"rk/rkbin\" Responsity" 29 echo " 2. Github Responsity: https://github.com/rockchip-linux/rkbin" 30 echo " 3. Download full release SDK Responsity" 31 exit 1 32 elif [ ! -d "$RESOURCES" ];then 33 echo "Can't find resources: $RESOURCES" 34 exit 1 35 elif [ -z "$OLD_IMAGE" ];then 36 echo "Missing: <input image>" 37 usage 38 exit 1 39 elif [ ! -f "$OLD_IMAGE" ];then 40 echo "Can't find file: $OLD_IMAGE" 41 usage 42 exit 1 43 fi 44} 45 46append_resource() 47{ 48 local TMP_DIR=.resource_tmp 49 rm -r $TMP_DIR 2>/dev/null 50 mkdir $TMP_DIR 51 52 echo "Pack $RESOURCES & $OLD_IMAGE to $IMAGE ..." 53 if [ -f "$OLD_IMAGE" ];then 54 echo "Unpacking old image($OLD_IMAGE):" 55 $TOOL --unpack --verbose --image=$OLD_IMAGE $TMP_DIR 2>&1|grep entry|sed "s/^.*://"|xargs echo 56 fi 57 if [ -d "$RESOURCES" ];then 58 cp -r $RESOURCES/* $TMP_DIR 59 else 60 cp -r $RESOURCES $TMP_DIR 61 fi 62 $TOOL --pack --root=$TMP_DIR --image=$IMAGE `find $TMP_DIR -type f|sort` 63 echo "Packed resources:" 64 $TOOL --unpack --verbose --image=$IMAGE $TMP_DIR 2>&1|grep entry|sed "s/^.*://"|xargs echo 65 rm -r $TMP_DIR 2>/dev/null 66 echo 67 echo "resource.img is packed ready" 68} 69 70prepare 71append_resource