-
-
Notifications
You must be signed in to change notification settings - Fork 652
PKG Information
georgemoralis edited this page Jun 20, 2023
·
15 revisions
Some findings for PS4 PKG's and information i gathered around.
A PS4 PKG looks like this:
First 4.096 bytes (0x1000) are the PKG Header. PKG header appears to be in Big Endian (like it was in ps3) although PS4 generally is a Small Endian machine.
Field | Type | Size | Offset | Description |
---|---|---|---|---|
pkg_magic | U32 | 4 | 0x000 | Should be 0x7F434E54 to be PS4 valid |
pkg_flags | U32 | 4 | 0x004 | Check PKG Flags table below |
0x8 | U32 | 4 | 0x008 | ??? |
pkg_file_count | U32 | 4 | 0x00C | |
pkg_table_entry_count | U32 | 4 | 0x010 | Number of files inside PKG (doesn't include PFS) |
pkg_sc_entry_count | U16 | 2 | 0x014 | |
pkg_table_entry_count_2 | U16 | 2 | 0x016 | same as pkg_table_entry_count |
pkg_table_entry_offset | U32 | 4 | 0x018 | offset of the first pkg file entry Check File Table below |
pkg_sc_entry_data_size | U32 | |||
pkg_body_offset | U64 | |||
pkg_body_size | U64 | |||
pkg_content_offset | U64 | |||
pkg_content_size | U64 | |||
pkg_content_id | U08 | |||
pkg_padding | U08 | |||
pkg_drm_type | U32 | |||
pkg_content_type | U32 | |||
pkg_content_flags | U32 | |||
pkg_promote_size | U32 | |||
pkg_version_date | U32 | |||
pkg_version_hash | U32 | |||
pkg_0x088 | U32 | |||
pkg_0x08C | U32 | |||
pkg_0x090 | U32 | |||
pkg_0x094 | U32 | |||
pkg_iro_tag | U32 | |||
pkg_drm_type_version | U32 | |||
pkg_zeroes_1 | U08 | |||
digest_entries1 | U08 | |||
digest_entries2 | U08 | |||
digest_table_digest | U08 | |||
digest_body_digest | U08 | |||
pkg_zeroes_2 | U08 | |||
pkg_0x400 | U32 | |||
pfs_image_count | U32 | |||
pfs_image_flags | U64 | |||
pfs_image_offset | U64 | |||
pfs_image_size | U64 | |||
pkg_size | U64 | |||
pfs_signed_size | U32 | |||
pfs_cache_size | U32 | |||
pfs_image_digest | U08 | |||
pfs_signed_digest | U08 | |||
pfs_split_size_nth_0 | U64 | |||
pfs_split_size_nth_1 | U64 | |||
pkg_zeroes_3 | U08 | |||
pkg_digest | U08 |
Name | Value | Description |
---|---|---|
UNKNOWN | 0x01 | |
VER_1 | 0x01000000 | |
VER_2 | 0x02000000 | |
INTERNAL | 0x40000000 | |
FINALIZED | 0x80000000 |
The file table is a list of file entries. File entries start from pkg_table_entry_offset field of pkg header and it's increasing by 0x20 for each file entry . pkg_table_entry_count field of pkg header indicates the number of file entries. File Table values are also Big Endian
Field | Type | Size | Offset | Description |
---|---|---|---|---|
id | U32 | 4 | 0x000 | File ID, useful for files without a filename entry.Check ID to filename Table below |
filename_offset | U32 | 4 | 0x004 | Offset into the filenames table (ID 0x200) where this file's name is located |
flags1 | U32 | 4 | 0x008 | Flags including encrypted flag, etc |
flags2 | U32 | 4 | 0x00C | Flags including encryption key index, etc |
offset | U32 | 4 | 0x010 | Offset into PKG to find the file |
size | U32 | 4 | 0x014 | Size of the file |
padding | U64 | 8 | 0x018 | blank padding |
This table matches the id of File Table with filename
Id | Filename | Extra info |
---|---|---|
0x0001 | digests | |
0x0010 | entry_keys | |
0x0020 | image_key | |
0x0080 | general_digests | |
0x0100 | metas | |
0x0200 | entry_names | |
0x0400 | license.dat | |
0x0401 | license.info | |
0x0402 | nptitle.dat | |
0x0403 | npbind.dat | Contains NPCommID and some other info (???) |
0x0409 | psreserved.dat | |
0x1000 | param.sfo | contains information critical to the app / game |
0x1001 | playgo-chunk.dat | contains data regarding playgo |
0x1002 | playgo-chunk.sha | contains hash of playgo |
0x1003 | playgo-manifest.xml | contains manifest for playgo |
0x1004 | pronunciation.xml | contains word definitions for PS4's voice recognition software |
0x1005 | pronunciation.sig | signature of definition file |
0x1006 | pic1.png | large game preview icon |
0x1007 | pubtoolinfo.dat | |
0x100B | shareparam.json | |
0x100C | shareoverlayimage.png | |
0x100E | shareprivacyguardimage.png | |
0x1200 | icon0.png | small icon |
0x1220 | pic0.png | small game preview icon |
0x1240 | snd0.at9 | |
0x1280 | icon0.dds | |
0x12A0 | pic0.dds | |
0x12C0 | pic1.dds | |
0x1400 | trophy/trophy00.trp |