zefie icon

PSFW PUP Web2Disc

zefie | PRO | 09/21/21 10:05:30 PM UTC | 0 ⭐ | 6178 👁️ | Never ⏰ | []
Bash |

1.24 KB

|

None

|

0 👍

/

0 👎

#!/bin/bash
if [ -z "$1" ] || [ -z "$2" ]; then 
    echo "Usage: ${0} [PS3|PS4|PS5] PUPFILE"
    echo "Example: ${0} PS4 PS4UPDATE.PUP"
    exit 1;
fi
PSSYS="$(echo "${1}" | tr '[:lower:]' '[:upper:]')"
PUPFILE="${2}"
 
if [ ! -f "${PUPFILE}" ]; then
    echo "${PUPFILE} not found."
    exit 1;
fi
 
case "${PSSYS}" in
    PS3)
        DEST_SIZE=256
        ;;
    PS4)
        DEST_SIZE=1024
        ;;
    PS5)
        DEST_SIZE=2048
        ;;
    *)
        echo "Unknown system: ${PSSYS}"
        exit 1;
        ;;
esac
 
ZERO_FILE_SIZE=$(((DEST_SIZE * 1024 * 1024) - $(ls -l ${PUPFILE} | cut -d' ' -f5)))
echo "Need to pad ${ZERO_FILE_SIZE} null bytes (${PSSYS} Mode)..."
 
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"
 

Comments