Editing PKG 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 159: | Line 159: | ||
== Delivery == | == Delivery == | ||
=== Title | === Title XML === | ||
The PS4 fetches information about | The PS4 fetches information about package files (including where to download them) from an XML file. This XML file contains information such as if the latest patch is mandatory, the latest package version, the manifest, as well as information in a param.sfo file. Below is an example of a typical title XML file: | ||
<titlepatch titleid="CUSAXXXXX"> | <titlepatch titleid="CUSAXXXXX"> | ||
<tag name="37" mandatory="true"><br> | <tag name="37" mandatory="true"><br> | ||
Line 177: | Line 175: | ||
</tag> | </tag> | ||
</titlepatch> | </titlepatch> | ||
Notes: | Notes: | ||
* The 'size' attribute of the 'package' node is in bytes | * The 'size' attribute of the 'package' node is in bytes | ||
* The 'system_ver' attribute of the 'package' node | * The 'system_ver' attribute of the 'package' node should be converted to hexadecimal for system firmware version | ||
* The 'delta_info_set' node | * The 'delta_info_set' node may or may not be present depending on the package | ||
=== | === Manifest === | ||
It should be noted that PS4 package files have a maximum size of 4GB (or 4096MB), therefore large (most) games are split into chunks or pieces. This is kept track of in the manifest file, which contains JSON fields which document things such as the size of the final package after the chunks are spliced together, the digest of the final package, the number of chunks, as well as information for each chunk such as the package file URL, offset for splicing, size of the file, and the sha1 hash value of the individual chunk. | |||
originalFileSize: [size] | originalFileSize: [size] | ||
packageDigest: "[sha256 digest]" | packageDigest: "[sha256 digest]" | ||
Line 200: | Line 195: | ||
fileSize: [size, often 4294967296 until last chunk] | fileSize: [size, often 4294967296 until last chunk] | ||
hashValue: "[sha1 hash of chunk]" | hashValue: "[sha1 hash of chunk]" | ||
== Tools == | == Tools == | ||
Line 206: | Line 200: | ||
=== UnPKG tool by flatz === | === UnPKG tool by flatz === | ||
UnPKG is an open source python2 library made by flatz to extract a PS4 ?release and/or debug? NPDRM PKG file. It maybe extracts only partially the PKG or maybe requires a per-content key. | UnPKG is an open source python2 library made by flatz to extract a PS4 ?release and/or debug? NPDRM PKG file. It maybe only extracts only partially the PKG or maybe requires a per-content key. | ||
<source lang="python"> | <source lang="python"> | ||
Line 548: | Line 542: | ||
== Sample Packages == | == Sample Packages == | ||
=== Games | === Apps/Games === | ||
* Amazon/LOVEFiLM App | * Amazon/LOVEFiLM App | ||
Line 569: | Line 563: | ||
=== Themes === | === Themes === | ||
* 20th Anniversary Dynamic Theme | |||
http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01501_00/5/f_3074fd8eb8322540c8742865a722c6773b031f68d517df3e18d7037fe58af7b0/f/EP9000-CUSA01501_00-20THANNITHEME001.pkg | |||
* AR-Roboter Dynamic Theme | |||
http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA00001_00/13/f_aef3a991112dfa798166c951f32b20870b1313f586bdc7788678ba6659671259/f/IP9100-CUSA00001_00-PLAYROOM0THEME01.pkg | |||
* Rechtecke Dynamic Theme | |||
http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01501_00/3/f_65216ee84a210c1541f395558498b451952b1a81fd4a9a0ae77e32b97aeb6122/f/EP9000-CUSA01501_00-0000000000000002.pkg | |||
* Papierskulptur Dynamic Theme | |||
http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01501_00/2/f_fc5c05478edf8847dc118d07225d6e58c630f088f5eae4d0559c88bdda674de6/f/EP9000-CUSA01501_00-0000000000000001.pkg | |||
* Spiralen Dynamic Theme | |||
http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01501_00/1/f_a6fb07c75a9776ca2f71e557a98620318bf11378c69d812f147c9f0fe12ee1c6/f/EP9000-CUSA01501_00-0000000000000003.pkg | |||
== See also == | == See also == | ||
Line 576: | Line 583: | ||
* [https://gist.github.com/hosamn/255a5c29c5b3e47a50641a804813bf32 PS4 PKGs CUSA1-10000.csv (2022-11-28)] | * [https://gist.github.com/hosamn/255a5c29c5b3e47a50641a804813bf32 PS4 PKGs CUSA1-10000.csv (2022-11-28)] | ||
* [https://gist.github.com/hosamn/8e22e39353bbbe3285f9bd603e3e0b70 PS4 PKGs CUSA1-10000.csv (2018-04-13)] | * [https://gist.github.com/hosamn/8e22e39353bbbe3285f9bd603e3e0b70 PS4 PKGs CUSA1-10000.csv (2018-04-13)] | ||
* [https://gist.github.com/hosamn/cadee497bacff249ccf95bad73b0f923 ps4_theme_links.csv] | |||
* [https://gist.github.com/hosamn/2b7e30f095bd2c68908c18276ea19aed ps4_theme_links_private.csv] | |||
{{File Formats}} | {{File Formats}} | ||
<noinclude>[[Category:Main]]</noinclude> | <noinclude>[[Category:Main]]</noinclude> |