ps5-updates 0.9.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ps5_updates-0.9.0/.gitignore +134 -0
- ps5_updates-0.9.0/LICENSE +22 -0
- ps5_updates-0.9.0/PKG-INFO +140 -0
- ps5_updates-0.9.0/README.md +118 -0
- ps5_updates-0.9.0/ps5_updates/LICENSES.txt +23 -0
- ps5_updates-0.9.0/ps5_updates/__init__.py +22 -0
- ps5_updates-0.9.0/ps5_updates/data.py +240 -0
- ps5_updates-0.9.0/ps5_updates/pkg.py +538 -0
- ps5_updates-0.9.0/ps5_updates/title.py +488 -0
- ps5_updates-0.9.0/pyproject.toml +65 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
pip-wheel-metadata/
|
|
24
|
+
share/python-wheels/
|
|
25
|
+
*.egg-info/
|
|
26
|
+
.installed.cfg
|
|
27
|
+
*.egg
|
|
28
|
+
MANIFEST
|
|
29
|
+
|
|
30
|
+
# PyInstaller
|
|
31
|
+
# Usually these files are written by a python script from a template
|
|
32
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
33
|
+
*.manifest
|
|
34
|
+
*.spec
|
|
35
|
+
|
|
36
|
+
# Installer logs
|
|
37
|
+
pip-log.txt
|
|
38
|
+
pip-delete-this-directory.txt
|
|
39
|
+
|
|
40
|
+
# Unit test / coverage reports
|
|
41
|
+
htmlcov/
|
|
42
|
+
.tox/
|
|
43
|
+
.nox/
|
|
44
|
+
.coverage
|
|
45
|
+
.coverage.*
|
|
46
|
+
.cache
|
|
47
|
+
nosetests.xml
|
|
48
|
+
coverage.xml
|
|
49
|
+
*.cover
|
|
50
|
+
*.py,cover
|
|
51
|
+
.hypothesis/
|
|
52
|
+
.pytest_cache/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
target/
|
|
76
|
+
|
|
77
|
+
# Jupyter Notebook
|
|
78
|
+
.ipynb_checkpoints
|
|
79
|
+
|
|
80
|
+
# IPython
|
|
81
|
+
profile_default/
|
|
82
|
+
ipython_config.py
|
|
83
|
+
|
|
84
|
+
# pyenv
|
|
85
|
+
.python-version
|
|
86
|
+
|
|
87
|
+
# pipenv
|
|
88
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
89
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
90
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
91
|
+
# install all needed dependencies.
|
|
92
|
+
#Pipfile.lock
|
|
93
|
+
|
|
94
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
95
|
+
__pypackages__/
|
|
96
|
+
|
|
97
|
+
# Celery stuff
|
|
98
|
+
celerybeat-schedule
|
|
99
|
+
celerybeat.pid
|
|
100
|
+
|
|
101
|
+
# SageMath parsed files
|
|
102
|
+
*.sage.py
|
|
103
|
+
|
|
104
|
+
# Environments
|
|
105
|
+
.env
|
|
106
|
+
.venv
|
|
107
|
+
env/
|
|
108
|
+
venv/
|
|
109
|
+
ENV/
|
|
110
|
+
env.bak/
|
|
111
|
+
venv.bak/
|
|
112
|
+
|
|
113
|
+
# Spyder project settings
|
|
114
|
+
.spyderproject
|
|
115
|
+
.spyproject
|
|
116
|
+
|
|
117
|
+
# Rope project settings
|
|
118
|
+
.ropeproject
|
|
119
|
+
|
|
120
|
+
# mkdocs documentation
|
|
121
|
+
/site
|
|
122
|
+
|
|
123
|
+
# mypy
|
|
124
|
+
.mypy_cache/
|
|
125
|
+
.dmypy.json
|
|
126
|
+
dmypy.json
|
|
127
|
+
|
|
128
|
+
# Pyre type checker
|
|
129
|
+
.pyre/
|
|
130
|
+
|
|
131
|
+
# Project files
|
|
132
|
+
/*.json
|
|
133
|
+
discord/
|
|
134
|
+
data_dump/
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# MIT License
|
|
2
|
+
|
|
3
|
+
# Copyright (c) 2025-2026 andshrew
|
|
4
|
+
# https://github.com/andshrew/PS5-Updates-Python
|
|
5
|
+
|
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
# in the Software without restriction, including without limitation the rights
|
|
9
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
# furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
# copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
# SOFTWARE.
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ps5_updates
|
|
3
|
+
Version: 0.9.0
|
|
4
|
+
Summary: A package for accessing PS5 title update information
|
|
5
|
+
Project-URL: Homepage, https://github.com/andshrew/PS5-Updates-Python
|
|
6
|
+
Project-URL: Repository, https://github.com/andshrew/PS5-Updates-Python.git
|
|
7
|
+
Project-URL: GitHub, https://github.com/andshrew/PS5-Updates-Python
|
|
8
|
+
Project-URL: Issues, https://github.com/andshrew/PS5-Updates-Python/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/andshrew/PS5-Updates-Python/releases
|
|
10
|
+
Author-email: andshrew <7409326+andshrew@users.noreply.github.com>
|
|
11
|
+
License: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Requires-Python: >=3.8
|
|
17
|
+
Requires-Dist: requests>=2.31
|
|
18
|
+
Provides-Extra: test
|
|
19
|
+
Requires-Dist: pytest-cov>=4.0; extra == 'test'
|
|
20
|
+
Requires-Dist: pytest>=7.0; extra == 'test'
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
|
|
23
|
+
# PS5 Title Update Information
|
|
24
|
+
|
|
25
|
+
This Python package retrieves information about updates available for a PS5 title. The information is stored in a `Ps5TitleUpdate` object which you can integrate into your application.
|
|
26
|
+
|
|
27
|
+
A similar package for PS4 title updates is available here: https://github.com/andshrew/PS4-Updates-Python
|
|
28
|
+
|
|
29
|
+
## Installation
|
|
30
|
+
```
|
|
31
|
+
pip install ps5-updates
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Typical Usage
|
|
35
|
+
An example implementation is included in [`src/demo.py`](src/demo.py).
|
|
36
|
+
|
|
37
|
+
Create a `Ps5TitleUpdate` object using the titles update XML URL or a the URL to a specific updates `_sc.pkg` file.
|
|
38
|
+
|
|
39
|
+
Invoke `get_update()` on the object to download information about all currently available update packages. This will partially download the update `.pkg` file to extract
|
|
40
|
+
the `param.json` where metadata about the update is stored.
|
|
41
|
+
|
|
42
|
+
The latest update is available as a `ContentPackage` object in the `latest` attribute. If the title has multiple updates currently available (ie. there is a pre-download for an upcoming update, or a pre-release update) then each individual update is available as a `ContentPackage` object in the `packages` attribute.
|
|
43
|
+
|
|
44
|
+
Within the `ContentPackage` object, information about the update `.pkg` file is available as a `PKG` object on the `pkg` attribute.
|
|
45
|
+
|
|
46
|
+
Within the `PKG` object the `param.json` data is available as a `PKG_Param` object. Any information from this file which is not specifically mapped to attributes on the object can be accessed by invoking `get_property('name')`.
|
|
47
|
+
|
|
48
|
+
Titles can also include Additional Content (ie. DLC). If any Additional Content is available then it is available as an `AdditionalContent` object in the `additional_content` attribute of the `Ps5TitleUpdate` object. Accessing the update information then mirrors the above except it is accessed via the `AdditionalContent` objects `latest` or `packages` attributes.
|
|
49
|
+
|
|
50
|
+
## Limitations
|
|
51
|
+
This package is not intended for downloading entire PS5 title update files, although it can be used to download and save files from within an updates `_sc.pkg` file.
|
|
52
|
+
|
|
53
|
+
Only information about the currently available update version can be retrieved. However if you have the URL for an specific updates `_sc.pkg` file then you can create a `PKG` object directly from that and parse some information about the update.
|
|
54
|
+
|
|
55
|
+
Keep in mind when considering the attributes of a `PKG` (the features that it is flagged as supporting) that it does not necessarily mean that the game has a mode available which actually implements the feature. This is true at least for features like 120hz and PSSR; whereas other features like VRR, HDR, and Power Saver do always seem to be available whenever the `PKG` is flagged as supporting them.
|
|
56
|
+
|
|
57
|
+
Unlike PS4 and earlier titles the update XML URLs are not predetermined. They can only be obtained from the `app_sc.pkg` file on a PS5 game disc, from the `entitlement.db` file on an exploitable console, or from the `_sc.pkg` of an already known update.
|
|
58
|
+
|
|
59
|
+
## Usage Examples
|
|
60
|
+
|
|
61
|
+
An example implementation is included in [`src/demo.py`](src/demo.py).
|
|
62
|
+
|
|
63
|
+
### Create `Ps5TitleUpdate` object and retrieve latest update information
|
|
64
|
+
```python
|
|
65
|
+
from ps5_updates import title as ps5up
|
|
66
|
+
|
|
67
|
+
url = 'https://sgst.prod.dl.playstation.net/sgst/prod/00/np/PPSA07632_00/53d40bc7-7b1a-403c-8260-4b293b1711fd-version.xml'
|
|
68
|
+
title = ps5up.Ps5TitleUpdate.from_url(url)
|
|
69
|
+
title.get_update()
|
|
70
|
+
print(f'Title Id: {title.title_id}')
|
|
71
|
+
print(f'Content Id: {title.content_id}')
|
|
72
|
+
print(f'Name: {title.latest.pkg.param.name}')
|
|
73
|
+
print(f'Version: {title.latest.version}')
|
|
74
|
+
print(f'Creation Date: {title.latest.pkg.param.creation_date}')
|
|
75
|
+
print(f'System Version: {title.latest.system_version}')
|
|
76
|
+
print(f'Size: {title.latest.update_size}')
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
#### Console Output
|
|
80
|
+
```
|
|
81
|
+
Title Id: PPSA07632_00
|
|
82
|
+
Content Id: UP9000-PPSA07632_00-SAROS00000000000
|
|
83
|
+
Name: SAROS
|
|
84
|
+
Version: 01.004.003
|
|
85
|
+
Creation Date: 2026-05-14 00:37:26
|
|
86
|
+
System Version: 13.20.00.06
|
|
87
|
+
Size: 78.27 GiB
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Create a `PKG` object and retrieve information about a specific update
|
|
91
|
+
```python
|
|
92
|
+
from ps5_updates import pkg as ps5pkg
|
|
93
|
+
|
|
94
|
+
url = 'https://sgst.prod.dl.playstation.net/sgst/prod/00/PPSA18654_00/app/info/95/f_23e129465f761a049d5477f4f4ec67db738a31927e981faa7ffb5b7eec9cb4c5/UP6312-PPSA18654_00-0220083948426038_sc.pkg'
|
|
95
|
+
pkg = ps5pkg.PKG.from_url(url)
|
|
96
|
+
print(f'Title Id: {pkg.param.title_id}')
|
|
97
|
+
print(f'Content Id: {pkg.param.content_id}')
|
|
98
|
+
print(f'Name: {pkg.param.name}')
|
|
99
|
+
print(f'Version: {pkg.param.content_version}')
|
|
100
|
+
print(f'Creation Date: {pkg.param.creation_date}')
|
|
101
|
+
print(f'System Version: {pkg.param.required_system_version}')
|
|
102
|
+
print(f'Update URL: {pkg.param.version_url}')
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
#### Console Output
|
|
106
|
+
```
|
|
107
|
+
Title Id: PPSA18654
|
|
108
|
+
Content Id: UP6312-PPSA18654_00-0220083948426038
|
|
109
|
+
Name: Age of Empires II: Definitive Edition
|
|
110
|
+
Version: 01.029.000
|
|
111
|
+
Creation Date: 2026-04-24 19:24:29
|
|
112
|
+
System Version: 13.00.00.00
|
|
113
|
+
Update URL: https://sgst.prod.dl.playstation.net/sgst/prod/00/np/PPSA18654_00/935e23b3-169e-439b-99d8-ae2b8b534b37-version.xml
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Development
|
|
117
|
+
|
|
118
|
+
_All commands after step 1 should be run from the root of the git repo_
|
|
119
|
+
|
|
120
|
+
**1. Clone the repo**
|
|
121
|
+
```
|
|
122
|
+
git clone git@github.com:andshrew/PS5-Updates-Python.git
|
|
123
|
+
```
|
|
124
|
+
**2. Create and load a virtual python environment**
|
|
125
|
+
```
|
|
126
|
+
python -m venv .venv
|
|
127
|
+
source .venv/bin/activate
|
|
128
|
+
```
|
|
129
|
+
**3. Install the package in editable mode**
|
|
130
|
+
```
|
|
131
|
+
pip install -e ".[test]"
|
|
132
|
+
```
|
|
133
|
+
**4. Build the package**
|
|
134
|
+
```
|
|
135
|
+
pip install build
|
|
136
|
+
python -m build
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Additional Thanks
|
|
140
|
+
[psdevwiki](https://www.psdevwiki.com/ps4) - documentation on [PKG file format](https://www.psdevwiki.com/ps4/PKG_files) and [param.json files](https://www.psdevwiki.com/ps5/Param.json)
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# PS5 Title Update Information
|
|
2
|
+
|
|
3
|
+
This Python package retrieves information about updates available for a PS5 title. The information is stored in a `Ps5TitleUpdate` object which you can integrate into your application.
|
|
4
|
+
|
|
5
|
+
A similar package for PS4 title updates is available here: https://github.com/andshrew/PS4-Updates-Python
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
```
|
|
9
|
+
pip install ps5-updates
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Typical Usage
|
|
13
|
+
An example implementation is included in [`src/demo.py`](src/demo.py).
|
|
14
|
+
|
|
15
|
+
Create a `Ps5TitleUpdate` object using the titles update XML URL or a the URL to a specific updates `_sc.pkg` file.
|
|
16
|
+
|
|
17
|
+
Invoke `get_update()` on the object to download information about all currently available update packages. This will partially download the update `.pkg` file to extract
|
|
18
|
+
the `param.json` where metadata about the update is stored.
|
|
19
|
+
|
|
20
|
+
The latest update is available as a `ContentPackage` object in the `latest` attribute. If the title has multiple updates currently available (ie. there is a pre-download for an upcoming update, or a pre-release update) then each individual update is available as a `ContentPackage` object in the `packages` attribute.
|
|
21
|
+
|
|
22
|
+
Within the `ContentPackage` object, information about the update `.pkg` file is available as a `PKG` object on the `pkg` attribute.
|
|
23
|
+
|
|
24
|
+
Within the `PKG` object the `param.json` data is available as a `PKG_Param` object. Any information from this file which is not specifically mapped to attributes on the object can be accessed by invoking `get_property('name')`.
|
|
25
|
+
|
|
26
|
+
Titles can also include Additional Content (ie. DLC). If any Additional Content is available then it is available as an `AdditionalContent` object in the `additional_content` attribute of the `Ps5TitleUpdate` object. Accessing the update information then mirrors the above except it is accessed via the `AdditionalContent` objects `latest` or `packages` attributes.
|
|
27
|
+
|
|
28
|
+
## Limitations
|
|
29
|
+
This package is not intended for downloading entire PS5 title update files, although it can be used to download and save files from within an updates `_sc.pkg` file.
|
|
30
|
+
|
|
31
|
+
Only information about the currently available update version can be retrieved. However if you have the URL for an specific updates `_sc.pkg` file then you can create a `PKG` object directly from that and parse some information about the update.
|
|
32
|
+
|
|
33
|
+
Keep in mind when considering the attributes of a `PKG` (the features that it is flagged as supporting) that it does not necessarily mean that the game has a mode available which actually implements the feature. This is true at least for features like 120hz and PSSR; whereas other features like VRR, HDR, and Power Saver do always seem to be available whenever the `PKG` is flagged as supporting them.
|
|
34
|
+
|
|
35
|
+
Unlike PS4 and earlier titles the update XML URLs are not predetermined. They can only be obtained from the `app_sc.pkg` file on a PS5 game disc, from the `entitlement.db` file on an exploitable console, or from the `_sc.pkg` of an already known update.
|
|
36
|
+
|
|
37
|
+
## Usage Examples
|
|
38
|
+
|
|
39
|
+
An example implementation is included in [`src/demo.py`](src/demo.py).
|
|
40
|
+
|
|
41
|
+
### Create `Ps5TitleUpdate` object and retrieve latest update information
|
|
42
|
+
```python
|
|
43
|
+
from ps5_updates import title as ps5up
|
|
44
|
+
|
|
45
|
+
url = 'https://sgst.prod.dl.playstation.net/sgst/prod/00/np/PPSA07632_00/53d40bc7-7b1a-403c-8260-4b293b1711fd-version.xml'
|
|
46
|
+
title = ps5up.Ps5TitleUpdate.from_url(url)
|
|
47
|
+
title.get_update()
|
|
48
|
+
print(f'Title Id: {title.title_id}')
|
|
49
|
+
print(f'Content Id: {title.content_id}')
|
|
50
|
+
print(f'Name: {title.latest.pkg.param.name}')
|
|
51
|
+
print(f'Version: {title.latest.version}')
|
|
52
|
+
print(f'Creation Date: {title.latest.pkg.param.creation_date}')
|
|
53
|
+
print(f'System Version: {title.latest.system_version}')
|
|
54
|
+
print(f'Size: {title.latest.update_size}')
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
#### Console Output
|
|
58
|
+
```
|
|
59
|
+
Title Id: PPSA07632_00
|
|
60
|
+
Content Id: UP9000-PPSA07632_00-SAROS00000000000
|
|
61
|
+
Name: SAROS
|
|
62
|
+
Version: 01.004.003
|
|
63
|
+
Creation Date: 2026-05-14 00:37:26
|
|
64
|
+
System Version: 13.20.00.06
|
|
65
|
+
Size: 78.27 GiB
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Create a `PKG` object and retrieve information about a specific update
|
|
69
|
+
```python
|
|
70
|
+
from ps5_updates import pkg as ps5pkg
|
|
71
|
+
|
|
72
|
+
url = 'https://sgst.prod.dl.playstation.net/sgst/prod/00/PPSA18654_00/app/info/95/f_23e129465f761a049d5477f4f4ec67db738a31927e981faa7ffb5b7eec9cb4c5/UP6312-PPSA18654_00-0220083948426038_sc.pkg'
|
|
73
|
+
pkg = ps5pkg.PKG.from_url(url)
|
|
74
|
+
print(f'Title Id: {pkg.param.title_id}')
|
|
75
|
+
print(f'Content Id: {pkg.param.content_id}')
|
|
76
|
+
print(f'Name: {pkg.param.name}')
|
|
77
|
+
print(f'Version: {pkg.param.content_version}')
|
|
78
|
+
print(f'Creation Date: {pkg.param.creation_date}')
|
|
79
|
+
print(f'System Version: {pkg.param.required_system_version}')
|
|
80
|
+
print(f'Update URL: {pkg.param.version_url}')
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
#### Console Output
|
|
84
|
+
```
|
|
85
|
+
Title Id: PPSA18654
|
|
86
|
+
Content Id: UP6312-PPSA18654_00-0220083948426038
|
|
87
|
+
Name: Age of Empires II: Definitive Edition
|
|
88
|
+
Version: 01.029.000
|
|
89
|
+
Creation Date: 2026-04-24 19:24:29
|
|
90
|
+
System Version: 13.00.00.00
|
|
91
|
+
Update URL: https://sgst.prod.dl.playstation.net/sgst/prod/00/np/PPSA18654_00/935e23b3-169e-439b-99d8-ae2b8b534b37-version.xml
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Development
|
|
95
|
+
|
|
96
|
+
_All commands after step 1 should be run from the root of the git repo_
|
|
97
|
+
|
|
98
|
+
**1. Clone the repo**
|
|
99
|
+
```
|
|
100
|
+
git clone git@github.com:andshrew/PS5-Updates-Python.git
|
|
101
|
+
```
|
|
102
|
+
**2. Create and load a virtual python environment**
|
|
103
|
+
```
|
|
104
|
+
python -m venv .venv
|
|
105
|
+
source .venv/bin/activate
|
|
106
|
+
```
|
|
107
|
+
**3. Install the package in editable mode**
|
|
108
|
+
```
|
|
109
|
+
pip install -e ".[test]"
|
|
110
|
+
```
|
|
111
|
+
**4. Build the package**
|
|
112
|
+
```
|
|
113
|
+
pip install build
|
|
114
|
+
python -m build
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Additional Thanks
|
|
118
|
+
[psdevwiki](https://www.psdevwiki.com/ps4) - documentation on [PKG file format](https://www.psdevwiki.com/ps4/PKG_files) and [param.json files](https://www.psdevwiki.com/ps5/Param.json)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
https://github.com/andshrew/PS4-Updates-Python/blob/v1.1.0/LICENSE
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2023, 2025 andshrew
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
SOFTWARE.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# MIT License
|
|
2
|
+
|
|
3
|
+
# Copyright (c) 2025 andshrew
|
|
4
|
+
# https://github.com/andshrew/PS5-Updates-Python
|
|
5
|
+
|
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
# in the Software without restriction, including without limitation the rights
|
|
9
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
# furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
# copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
# SOFTWARE.
|