What's Changed
PKG file Parsing
The package now parses the header of an update PKG file in order to locate the additional files of interest (ie. changeinfo.xml
).
The header details all of the files that are bundled within the PKG file, including their exact location within the file. This implementation is made possible thanks to the work documenting the PKG file format on psdeveloperwiki.com. See this page for additional information on the PKG file.
Since the package is no longer speculatively seeking the location of changeinfo.xml
and cdate
, the default byte_limit
on Ps4TitleUpdate
objects has been increased from 30000000
to 50000000
(30MB to 50MB). Note that if a PKG file is found, it will always download the remainder of the header regardless of the byte_limit
(so between 0.01MB and 0.02MB will usually be downloaded). The byte_limit
is only considered when initially seeking the PKG file, and when downloading the content of the PKG file.
param.sfo
Since it is now possible to locate specific files within the PKG file, the package now also captures and parses the param.sfo
file. Previously only the cdate
was captured (which is data stored within the param.sfo
file). The param.sfo
file contains an assortment of technical information relating to the update PKG.
Each individual entry within the param.sfo
file is parsed into an SFO_Entry
object. These objects are appended to entries
attribute of the SFO
object located in the update_pkg_param_sfo
attribute of the Ps4TitleUpdate
object.
If you want to access this information from your application, you will need to further parse the entries that are of interest to you. See here for an example parsing the SAVE_DATA_TRANSFER_TITLE_ID_LIST
entry.
For further details on the information that might be in the param.sfo
file, see the Parameter Descriptions on psdevwiki.com
New attribute update_pkg_bytes_exceeded
The update_pkg_bytes_exceeded
attribute has been added to the Ps4TitleUpdate
object. This will be set to True
if either the changeinfo.xml
or param.sfo
have been located in the PKG file, but where their location extends past the current byte_limit
. In such cases neither file will be downloaded, even if one were to reside within the byte_limit
. Adjust the byte_limit
accordingly and attempt to download again.
Other Details
Related Pull Requests: #2
Full Changelog: v1.0.0...v1.1.0