PS4 Developer @idc released scripts that invoke the PS4 kernel to decrypt the contents of an update file and pup unpacker scripts
PuP Decryption
Quote
pup_decryptA utility to invoke the PS4 kernel to decrypt the contents of an update file.
The default (hardcoded) operation is to decrypt /mnt/usb0/PS4UPDATE.PUP.
This will output a number of files (depending if a normal or a recovery update):
/mnt/usb0/PS4UPDATE1.PUP.dec
/mnt/usb0/PS4UPDATE2.PUP.dec
/mnt/usb0/PS4UPDATE3.PUP.dec
/mnt/usb0/PS4UPDATE4.PUP.dec
These decrypted updates can then be further unpacked using a tool capable of doing so.
Note
The PS4 will refuse to decrypt updates in some cases:
Versions older than the installed version (for the most part, there’s exceptions for things like beta versions).
Versions for a different product code (retail cannot decrypt test or debug updates).
PuP Unpacker
Quote
pup_unpackA utility to unpack PS4 update blobs that have been previously decrypted using pup_decrypt.
Note This utility will not unpack the contents of nested filesystems. The filesystem images in updates are FAT32, exFAT, etc images and can be mounted or unpacked with other tools.