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