Editing Package Files
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 7: | Line 7: | ||
typedef struct { | typedef struct { | ||
uint32_t pkg_magic; | uint32_t pkg_magic; // 0x000 | ||
uint16_t pkg_revision; // 0x004 | |||
uint32_t | uint16_t pkg_type; // 0x006 | ||
uint32_t pkg_file_count; | uint32_t pkg_unk; // 0x008 - unknown field | ||
uint32_t | uint32_t pkg_file_count; // 0x00C | ||
uint16_t | uint32_t pkg_table_ents; // 0x010 | ||
uint16_t | uint16_t pkg_sys_ents; // 0x014 | ||
uint32_t pkg_table_offset; | uint16_t pkg_unk; // 0x016 - unknown field | ||
uint32_t | uint32_t pkg_table_offset; // 0x018 - file table offset | ||
uint32_t pkg_ent_data_size; // 0x01C | |||
uint32_t pkg_unk; // 0x020 - unknown field | |||
uint32_t pkg_body_offset; // 0x024 - seems to always be 0x200 | |||
uint32_t pkg_body_unk; // 0x028 - unknown field | |||
uint32_t pkg_body_size; // 0x02C<br> | |||
unsigned char pkg_padding[0x10]; // 0x030 - 16 bytes padding | |||
unsigned char pkg_content_id[0x24]; // 0x040 - packages' content ID as a 36-byte string | unsigned char pkg_content_id[0x24]; // 0x040 - packages' content ID as a 36-byte string | ||
unsigned char pkg_padding[ | unsigned char pkg_padding[0x10]; // 0x064 - 16 bytes padding | ||
unsigned char pkg_unknown[0x8C]; // 0x074 - unknown data<br> | |||
/* Digest table */ | /* Digest table */ | ||
unsigned char digest_entries1[0x20]; // 0x100 - sha256 digest for main entry 1 | unsigned char digest_entries1[0x20]; // 0x100 - sha256 digest for main entry 1 | ||
Line 40: | Line 30: | ||
unsigned char digest_table_digest[0x20]; // 0x140 - sha256 digest for digest table | unsigned char digest_table_digest[0x20]; // 0x140 - sha256 digest for digest table | ||
unsigned char digest_body_digest[0x20]; // 0x160 - sha256 digest for main table | unsigned char digest_body_digest[0x20]; // 0x160 - sha256 digest for main table | ||
} | |||
} | |||
=== Files === | === Files === | ||
The file table | The file table contains a pointer to a list of files in a package file when the package is of "CNT" magic, this pointer can be found as a 32-bit unsigned integer at 0x2B30. File names are separated by null bytes, and packages typically contain the following files: | ||
param.sfo - contains information critical to the app / game | param.sfo - contains information critical to the app / game | ||
Line 83: | Line 45: | ||
icon0.png - small icon | icon0.png - small icon | ||
icon1.png - large icon | icon1.png - large icon | ||
== Delivery == | == Delivery == | ||
Line 170: | Line 121: | ||
'''Source:''' https://boerse.to/thema/datenbank-fuer-ps4-psn-links.1979635/ | '''Source:''' https://boerse.to/thema/datenbank-fuer-ps4-psn-links.1979635/ | ||
See also: [[ | See also: [[PKG_files/rawlist1]], [[PKG_files/rawlist2]] | ||
{{File Formats}} | {{File Formats}} | ||
<noinclude>[[Category:Main]]</noinclude> | <noinclude>[[Category:Main]]</noinclude> |