#!/bin/bash if [ -z "$1" ]; then PUPFILE="PS3UPDAT.PUP" else PUPFILE=$1 fi if [ ! -f "${PUPFILE}" ]; then echo "${PUPFILE} not found." exit 1; fi ZERO_FILE_SIZE=$(((256 * 1024 * 1024) - $(ls -l ${PUPFILE} | cut -d' ' -f5))) echo "Need to pad ${ZERO_FILE_SIZE} null bytes..." echo -n "Searching for optimal blocksize... " # try larger blocksizes BLOCKSIZE=${ZERO_FILE_SIZE} ZERO_FILE_MULTIPLIER=1 #while (( $ZERO_FILE_SIZE % $BLOCKSIZE != 0 )); do # ((BLOCKSIZE--)) #done; #ZERO_FILE_MULTIPLIER=$(($ZERO_FILE_SIZE / $BLOCKSIZE)) #echo "${BLOCKSIZE} bytes." TMPFILE="${PUPFILE}.TMP" echo "Creating null file..." dd if=/dev/zero of=${TMPFILE} bs=${BLOCKSIZE} count=${ZERO_FILE_MULTIPLIER} 2>/dev/null echo "Merging firmware and null file..." cat $PUPFILE $TMPFILE > "${PUPFILE}.disc" rm ${TMPFILE} echo "Done." echo "-----------------------------------------------" md5sum "${PUPFILE}.disc"