4 TOTA_UPG_DIR="$(readlink -m $1)"
5 TARGET_DIR="$TOTA_UPG_DIR/recovery/target/$2"
6 if [ ! -d "$TARGET_DIR" ]; then
7 echo "[ERROR] : $TARGET_DIR not exist, please check tota_upg_path and target"
11 TEMP_DIR="$TARGET_DIR/tmp"
12 RESULT_DIR="$TARGET_DIR/result"
13 BOOT_DIR="$TARGET_DIR/boot"
14 PLATFORM_DIR="$TARGET_DIR/platform"
15 CONFIG_DIR="$TARGET_DIR/cfg"
17 CONFIG_NAME="recovery.cfg"
18 IMAGE_NAME="tizen-recovery.img"
19 PRE_SCRIPT_NAME="pre.sh"
21 CONFIG_PATH="$CONFIG_DIR/$CONFIG_NAME"
22 PRE_SCRIPT_PATH="$CONFIG_DIR/$PRE_SCRIPT_NAME"
25 rm -rf $TEMP_DIR $RESULT_DIR
26 mkdir -p $TEMP_DIR $RESULT_DIR
28 echo "[INFO] Target directory : $TARGET_DIR"
29 echo "[INFO] Result directory : $RESULT_DIR"
32 function __unpack__() {
33 image_dirs=("$BOOT_DIR/*.tar.gz" "$PLATFORM_DIR/*.tar.gz")
35 for image_dir in ${image_dirs[@]}; do
36 for image in $image_dir; do
37 tar -zvxf $image --directory=$TEMP_DIR
39 echo "[ERROR] Failed to extract $image, please check image file"
42 echo "[INFO] Success to extract : $image"
48 BINARY_LIST="$CONFIG_NAME"
49 while read LABEL BINARY DEV || [ -n "$LABEL" ]
51 # Ignore empty or comment line
52 if [ -z "$LABEL" ] || [[ "$LABEL" == "#"* ]]; then
56 if [ ! -f "$TEMP_DIR/$BINARY" ]; then
57 echo "[ERROR] not found $BINARY, please check image file"
61 BINARY_LIST="$BINARY_LIST $BINARY"
63 echo "[INFO] Success to check all image file exists"
64 echo "[INFO] Binary list : $BINARY_LIST"
66 cp $CONFIG_PATH $TEMP_DIR
67 if [ -f $PRE_SCRIPT_PATH ]; then
68 cp $PRE_SCRIPT_PATH $TEMP_DIR
69 BINARY_LIST="$BINARY_LIST $PRE_SCRIPT_NAME"
73 mksquashfs $BINARY_LIST $IMAGE_NAME
75 mv $IMAGE_NAME $RESULT_DIR
81 if [ "z$SIGN_PKCS_FILE" != "z" ]; then
82 if [ "z$SIGN_PKCS_PASSWORD" != "z" ]; then
83 SIGNER_OPTIONAL_ARGUMENT="-p $SIGN_PKCS_PASSWORD"
86 ./mk_delta/common/bin/sign_img.sh -k $SIGN_PKCS_FILE -i $RESULT_DIR/$IMAGE_NAME $SIGNER_OPTIONAL_ARGUMENT
90 function __cleanup__() {
93 echo "[WARN] Failed to remove $TEMP_DIR"
99 echo "Usage : generate_package.sh TOTA_UPG_PATH TARGET [SIGN_PKCS_FILE SIGN_PKCS_PASSWORD]"