xref: /rk3399_rockchip-uboot/scripts/pack_resource.sh (revision cfcc706c901d603707657919484e4f65467be9ff)
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