Online Connections: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
m (Reverted edits by 10.0.2.2 (talk) to last revision by Roxanne)
Tag: Rollback
No edit summary
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{wikify}}
See also [https://www.psdevwiki.com/ps5/Online_Connections PS5 Online Connections].


'''Note:''' there is some reference on the [[Talk:Online_Connections|talk page]]
= PS Store Activation =


== URLs ==


==Online Connections==
PS Store content activation is often refered to as NP KDC.


===Game Related===
On PS3, PSP and PS Vita:
'''Playroom used as example for Game Update URLs'''
* https://commerce.np.ac.playstation.net/cap.m
* https://commerce.np.ac.playstation.net/cdp.m
* https://commerce.np.ac.playstation.net/kdp.m


Game Description File:
On PS4, the servers files are:
http://tmdb.np.dl.playstation.net/tmdb2/CUSA00001_00_C32A667A087A40C2AD1889435907AA4B0D9DBA1F/CUSA00001_00.json
* /tcap.m for acttype 1 and 3
* /tcdp.m for acttype 2 and 4
* /tkdp.m for acttype 5 and 6


Game Update Description File:
Usage on PS3, PSP and PS Vita:
http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00001_00/4/f_3b8e420561f0b85ff65ac428a15092895f3131e8c4cfd63b1547b32adb6d8370/f/IP9100-CUSA00001_00-PLAYROOM00000000-A0102-V0100.json
* cap should be Console Activation Point. Posting loginid, password (or epassword) and consoleid to tcap.m returns act.dat file.
* cdp = Console Deactivation Point. Same as cap but the console removes the act.dat from the console after this is executed.
* kdp = ?Key Download/Drop Point?. RIF files are obtained from here


Game Update .pkg File:
= Image =
http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00001_00/4/f_3b8e420561f0b85ff65ac428a15092895f3131e8c4cfd63b1547b32adb6d8370/f/IP9100-CUSA00001_00-PLAYROOM00000000-A0102-V0100.pkg


'''Final Fantasy XV Holiday Pack (Free) used as example for DLC related URLs'''
Sony servers provide an API to convert any image available on internet to another file format. Here is an example:
<pre>
https://image.api.np.km.playstation.net/images/?format=png&w=4096&h=2160&image=https://pbs.twimg.com/profile_images/785892918645129216/1bmhzm0t.jpg
</pre>
<pre>
https://image.api.np.km.playstation.net/dis/images/?format=png&w=4096&h=2160&image=https://pbs.twimg.com/profile_images/785892918645129216/1bmhzm0t.jpg
</pre>


DLC Descrption File:
Supported arguments are:
http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01633_00/19/f_4176f85e114c462425174e17f4434b7ba201d6af8226a549388552e169b4c85d/f/UP0082-CUSA01633_00-HOLIDAYFREE00001.json
* image (mandatory): URL to the image
* format: "png" or "jpg"
* w: width in pixel. It is limited to 4096.
* h: height in pixel. It is limited to 2160.


DLC Package File:
The maximum size may be 8847360 pixels (4096 times 2160).
http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01633_00/19/f_4176f85e114c462425174e17f4434b7ba201d6af8226a549388552e169b4c85d/f/UP0082-CUSA01633_00-HOLIDAYFREE00001.pkg


DLC SHA Validation File:
= Game and applications =
http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01633_00/19/f_4176f85e114c462425174e17f4434b7ba201d6af8226a549388552e169b4c85d/f/UP0082-CUSA01633_00-HOLIDAYFREE00001.sha


=== Guides ===
PlayStation 4 games and applications induce connection to internet to download updates, be downloaded in the case of contents bought on the PlayStation store, and some specific games use more connections for online gaming or diverse additional contents.
* http://wololo.net/2013/12/05/howto-use-a-proxy-server-with-your-ps4-to-sniff-psn-traffic-skfu-pr0xy/
 
== Title Database JSON ==
 
Format:
* http://tmdb.np.dl.playstation.net/tmdb2/<NP Title ID>_<NP Title ID Hash>/<NP Title ID>.json
 
Example:
* http://tmdb.np.dl.playstation.net/tmdb2/CUSA00001_00_C32A667A087A40C2AD1889435907AA4B0D9DBA1F/CUSA00001_00.json
 
== Game Base Descriptive Files ==
 
The listed files are non-exhaustive as there may be more images, more descriptive files involved depending on the application.
 
=== Icon ===
 
Format:
* http://gs2-sec.ww.prod.dl.playstation.net/gs2-sec/appkgo/prod/<NP Title ID>/<Revision>/i_<Hash>/i/icon0.png
 
Example:
* http://gs2-sec.ww.prod.dl.playstation.net/gs2-sec/appkgo/prod/CUSA00001_00/1/i_f10c33e5f30e3b3900a201af324a2a0e3912e843c1090d66e13f378151c1afa1/i/icon0.png
 
=== Pronunciation ===
 
Format:
* http://gs2-sec.ww.prod.dl.playstation.net/gs2-sec/appkgo/prod/<NP Title ID>/<Revision>/i_<Hash>/i/pronunciation.xml
 
Example:
* http://gs2-sec.ww.prod.dl.playstation.net/gs2-sec/appkgo/prod/CUSA00001_00/1/i_f10c33e5f30e3b3900a201af324a2a0e3912e843c1090d66e13f378151c1afa1/i/pronunciation.xml
 
=== Background Image ===
 
Format:
* http://gs2-sec.ww.prod.dl.playstation.net/gs2-sec/appkgo/prod/<NP Title ID>/<Revision>/i_<Hash>/i/pic0.png
 
Example:
* http://gs2-sec.ww.prod.dl.playstation.net/gs2-sec/appkgo/prod/CUSA00001_00/1/i_f10c33e5f30e3b3900a201af324a2a0e3912e843c1090d66e13f378151c1afa1/i/pic0.png
 
=== Background Music ===
 
Format:
* http://gs2-sec.ww.prod.dl.playstation.net/gs2-sec/appkgo/prod/<NP Title ID>/<Revision>/i_<Hash>/i/snd0.at9
 
Example:
* http://gs2-sec.ww.prod.dl.playstation.net/gs2-sec/appkgo/prod/CUSA00001_00/1/i_f10c33e5f30e3b3900a201af324a2a0e3912e843c1090d66e13f378151c1afa1/i/snd0.at9
 
== Game Base JSON ==
 
Format 1:
* http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/<NP Title ID>/<Revision>/f_<Hash>/f/<Content ID>.json
 
Format 2:
* "p" instead of "f"
 
Example 1:
* http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/CUSA00002_00/6/f_74aa3088026d5173abef0dd3efe1c244dbe6367a207ebdcc8f9db75f10d46270/f/EP9000-CUSA00002_00-KZ4RELEASE000041.json
* http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/CUSA00135_00/7/f_1c4c1e21047939a232efda8a5f36bbf352154696884b8b85520ef7ecb5726a6c/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT.json
 
Example 2:
* http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/NPXX51593_00/29/p_1d3de58acf7a876f49d493b6248c8a699131223d4ca2b6250614288d9b70ae3f/p/UX0001-NPXX51593_00-000000000RANDOM1.json
 
== Game Base PKG ==
 
Format 1:
* http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/<NP Title ID>/<Revision>/f_<Hash>/f/<Content ID><Suffix>.pkg
* It can be derived from the JSON URL by removing ".json" and appending "<Suffix>.pkg".
* Suffix can be blank or "_n" where n is a decimal digit representing the chunk number.
 
Format 2:
* "p" instead of "f"
 
Example 1:
* http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/CUSA00002_00/6/f_74aa3088026d5173abef0dd3efe1c244dbe6367a207ebdcc8f9db75f10d46270/f/EP9000-CUSA00002_00-KZ4RELEASE000041_0.pkg (from 0 to 9)
* http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/CUSA00135_00/7/f_1c4c1e21047939a232efda8a5f36bbf352154696884b8b85520ef7ecb5726a6c/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT_0.pkg (from 0 to 11)
 
Example 2:
* http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/NPXX51593_00/29/p_1d3de58acf7a876f49d493b6248c8a699131223d4ca2b6250614288d9b70ae3f/p/UX0001-NPXX51593_00-000000000RANDOM1.pkg
 
== Game Update XML ==
 
Contains link to the Delta Package if it exists, the PlayGo Manifest XML and the JSON.
 
Format:
* http://gs-sec.ww.np.dl.playstation.net/plo/np/<Title ID>/<Hash>/<Title ID>-ver.xml
 
Example:
* http://gs-sec.ww.np.dl.playstation.net/plo/np/CUSA00001/1123f23c1f00810a5e43fcb409ada7823bc5ad21b357817e314b6c4832cf6f9f/CUSA00001-ver.xml
* http://gs-sec.ww.np.dl.playstation.net/plo/np/CUSA00135/9228795a710cf58e86af98f8496dc2db2ec104abd199812ba9780b8b691327a9/CUSA00135-ver.xml
 
== Game Update JSON ==
 
Contains links to the chunks of PKG files for the non-cumulative patch.
 
Format:
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/<NP Title ID>/<Patch Revision>/f_<Hash>/f/<Content ID>-A<Application Version>-V<Version>.json
 
Example:
* http://gs2.ww.prod.dl.playstation.net:80/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT-A0114-V0100.json
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00135_00/21/f_06da3b33d65c72bc25dac70c5d3c5669addbe50a94e87cc644e5b9471101303f/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT-A0118-V0100.json
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00001_00/4/f_3b8e420561f0b85ff65ac428a15092895f3131e8c4cfd63b1547b32adb6d8370/f/IP9100-CUSA00001_00-PLAYROOM00000000-A0102-V0100.json
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00001_00/9/f_ef965b581d35637dabc96366f29f1f0ece58c8fa9158b0eb7de9407ae72272e8/f/IP9100-CUSA00001_00-PLAYROOM00000000-A0107-V0100.json
 
== Game Update Change Information XML ==
 
Format:
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/<Title ID>/<Patch Revision>/f_<Hash>/f/changeinfo<Language>.xml
* Language can be blank for English and a 2-digit decimal number for other languages
 
Example:
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/changeinfo.xml
* http://gs2.ww.prod.dl.playstation.net:80/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/changeinfo_02.xml
* http://gs2.ww.prod.dl.playstation.net:80/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/changeinfo_03.xml
* http://gs2.ww.prod.dl.playstation.net:80/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/changeinfo_04.xml
* http://gs2.ww.prod.dl.playstation.net:80/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/changeinfo_05.xml
* http://gs2.ww.prod.dl.playstation.net:80/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/changeinfo_08.xml
* http://gs2.ww.prod.dl.playstation.net:80/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/changeinfo_09.xml
* http://gs2.ww.prod.dl.playstation.net:80/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/changeinfo_16.xml
* http://gs2.ww.prod.dl.playstation.net:80/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/changeinfo_20.xml
* http://gs2.ww.prod.dl.playstation.net:80/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/changeinfo_22.xml
 
== Game Update PlayGo Manifest XML ==
 
Contains information on how the package should be downloaded and installed.
 
Format:
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/<NP Title ID>/<Patch Revision>/f_<Hash>/f/playgo-manifest.xml
 
Example:
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00001_00/4/f_3b8e420561f0b85ff65ac428a15092895f3131e8c4cfd63b1547b32adb6d8370/f/playgo-manifest.xml
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00001_00/9/f_ef965b581d35637dabc96366f29f1f0ece58c8fa9158b0eb7de9407ae72272e8/f/playgo-manifest.xml
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00135_00/21/f_06da3b33d65c72bc25dac70c5d3c5669addbe50a94e87cc644e5b9471101303f/f/playgo-manifest.xml
 
== Game Update PKG ==
 
Format:
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/<NP Title ID>/<Patch Revision>/f_<Hash>/f/<Content ID>-A<Application Version>-V<Version><Suffix>.pkg
* It can be derived from the JSON url by removing ".json" and appending "<Suffix>.pkg".
* Suffix can be blank or "-DP" for a Delta Package (i.e. a Cumulative Patch) or "_n" where n is a decimal digit representing the chunk number.
 
Example of a single non-cumulative update PKG:
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00001_00/4/f_3b8e420561f0b85ff65ac428a15092895f3131e8c4cfd63b1547b32adb6d8370/f/IP9100-CUSA00001_00-PLAYROOM00000000-A0102-V0100.pkg
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00001_00/9/f_ef965b581d35637dabc96366f29f1f0ece58c8fa9158b0eb7de9407ae72272e8/f/IP9100-CUSA00001_00-PLAYROOM00000000-A0107-V0100.pkg
 
Example of a single Delta Package update PKG:
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT-A0114-V0100-DP.pkg
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00135_00/18/f_4248951340c7506a173e93c5258dff3b7526105fa4fda3524e1d7203762bf62c/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT-A0115-V0100-DP.pkg
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00135_00/21/f_06da3b33d65c72bc25dac70c5d3c5669addbe50a94e87cc644e5b9471101303f/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT-A0118-V0100-DP.pkg
 
Example of chunks of non-cumulative update PKG:
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT-A0114-V0100_0.pkg
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00135_00/17/f_2551ac3f2bac6b845f1691279dac779e051ebd2587c64261d0bedc1b120d4667/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT-A0114-V0100_1.pkg
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00135_00/18/f_4248951340c7506a173e93c5258dff3b7526105fa4fda3524e1d7203762bf62c/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT-A0115-V0100_0.pkg
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00135_00/18/f_4248951340c7506a173e93c5258dff3b7526105fa4fda3524e1d7203762bf62c/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT-A0115-V0100_1.pkg
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00135_00/21/f_06da3b33d65c72bc25dac70c5d3c5669addbe50a94e87cc644e5b9471101303f/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT-A0118-V0100_0.pkg
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00135_00/21/f_06da3b33d65c72bc25dac70c5d3c5669addbe50a94e87cc644e5b9471101303f/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT-A0118-V0100_1.pkg
* http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00135_00/21/f_06da3b33d65c72bc25dac70c5d3c5669addbe50a94e87cc644e5b9471101303f/f/EP1018-CUSA00135_00-BATMANARKHAMKNHT-A0118-V0100_2.pkg
 
== Additional Content JSON ==
 
Format:
* http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/<NP Title ID>/<Addcont Revision>/f_<Hash>/f/<Content ID>.json
 
Example:
* http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA00135_00/312/f_c94f67a31c1380b702bf7afd2ec4e12ba15228414d0b7fb9c10e278cc8a28513/f/EP1018-CUSA00135_00-ETH0000000000079.json
 
* http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01633_00/19/f_4176f85e114c462425174e17f4434b7ba201d6af8226a549388552e169b4c85d/f/UP0082-CUSA01633_00-HOLIDAYFREE00001.json
 
== Additional Content PKG ==
 
Format:
* http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/<NP Title ID>/<Addcont Revision>/f_<Hash>/f/<Content ID>.pkg
 
Example:
* http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA00135_00/312/f_c94f67a31c1380b702bf7afd2ec4e12ba15228414d0b7fb9c10e278cc8a28513/f/EP1018-CUSA00135_00-ETH0000000000079.pkg
 
* http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01633_00/19/f_4176f85e114c462425174e17f4434b7ba201d6af8226a549388552e169b4c85d/f/UP0082-CUSA01633_00-HOLIDAYFREE00001.pkg
 
== Additional Content PKG Digest ==
 
Format:
* http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/<NP Title ID>/<Addcont Revision>/f_<Hash>/f/<Content ID>.sha
 
Example:
* http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA00135_00/312/f_c94f67a31c1380b702bf7afd2ec4e12ba15228414d0b7fb9c10e278cc8a28513/f/EP1018-CUSA00135_00-ETH0000000000079.sha
 
* http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01633_00/19/f_4176f85e114c462425174e17f4434b7ba201d6af8226a549388552e169b4c85d/f/UP0082-CUSA01633_00-HOLIDAYFREE00001.sha
 
== Planet Side 2 ==
 
The [https://en.wikipedia.org/wiki/PlanetSide_2 Planet Side 2] game on PS4 hosted some files on a server owned by Sony. Most URLs had the prefix
<pre>
http://pls.patch.station.sony.com/patch/sha/
</pre>
 
== Rocket League ==
 
See [[Bugs]].
 
== Final Fantasy XIV: A Realm Reborn ==
 
The game Final Fantasy XIV: A Realm Reborn tries to download an update patch before starting the game, instead of the official PKG way. It is yet to be confirmed which version of the game is affected, and if there is a demo available.
 
It uses HTTP not HTTPS so can be hijacked using a proxy or DNS. The signatures are maybe unverified.
 
=== vercheck.dat ===
 
The game executable downloads a file named vercheck.dat from
<pre>
https://web.archive.org/web/20171226083441/http://patch-bootver.ffxiv.com/http/ps4/ffxivneo_release_boot_eu/2014.04.02.0000.0000/ffxivpatch/02cbcb27/ffxivpatch/02cbcb27/vercheck.dat
</pre>
The content looks like a network transmission header:
<pre>
--477D80B1_38BC_41d4_8B48_5273ADB89CAC
Content-Type: application/octet-stream
Content-Location: ffxivpatch/02cbcb27/metainfo/D2014.04.02.0000.0000.http
X-Patch-Length: 62171712
 
62171712 62915700 3 3 2017.12.06.0000.0001 http://patch-dl.ffxiv.com/boot/02cbcb27/D2017.12.06.0000.0001.patch
--477D80B1_38BC_41d4_8B48_5273ADB89CAC--
</pre>
and from the URL
<pre>
https://web.archive.org/web/20171209090142/http://patch-bootver.ffxiv.com/http/ps4/ffxivneo_release_boot_eu/2014.04.02.0000.0000/?time=2014-04-04-11
</pre>
we have an older version dumped:
<pre>
--477D80B1_38BC_41d4_8B48_5273ADB89CAC
Content-Type: application/octet-stream
Content-Location: ffxivpatch/02cbcb27/metainfo/D2014.04.02.0000.0000.http
X-Patch-Length: 62171712
 
62171712 62915700 3 3 2017.11.24.0000.0001 http://patch-dl.ffxiv.com/boot/02cbcb27/D2017.11.24.0000.0001.patch
--477D80B1_38BC_41d4_8B48_5273ADB89CAC--
</pre>
as well as from
<pre>
https://web.archive.org/web/20170104080948/http://patch-bootver.ffxiv.com/http/ps4/ffxivneo_release_boot_eu/2014.04.02.0000.0000/?time=2014-04-04-11
</pre>
where the version is even older:
<pre>
--477D80B1_38BC_41d4_8B48_5273ADB89CAC
Content-Type: application/octet-stream
Content-Location: ffxivpatch/02cbcb27/metainfo/D2014.04.02.0000.0000.http
X-Patch-Length: 55610720
 
55610720 56493172 3 3 2016.12.08.0000.0001 http://patch-dl.ffxiv.com/boot/02cbcb27/D2016.12.08.0000.0001.patch
--477D80B1_38BC_41d4_8B48_5273ADB89CAC--
</pre>
 
The vercheck.dat file contains the URL to download the .patch file.
 
* https://web.archive.org/web/*/http://patch-bootver.ffxiv.com/*
* http://patch-bootver.ffxiv.com/http/ps4/ffxivneo_release_boot_eu/2014.04.02.0000.0000/?time=2014-04-04-11
* http://patch-bootver.ffxiv.com/http/ps4/ffxivneo_release_boot_eu/2014.04.02.0000.0000/ffxivpatch/02cbcb27/ffxivpatch/02cbcb27/vercheck.dat
* http://patch-bootver.ffxiv.com/http/ps4/ffxivneo_release_boot_eu/2014.04.02.0000.0000/ffxivpatch/02cbcb27/vercheck.dat
 
=== patch file ===
 
The patch is in ZIPATCH format. The patch may be RSA signed, but maybe the downloader executable or the checker is vulnerable to buffer overflows or other vulnerabilities.
 
* https://web.archive.org/web/*/http://patch-dl.ffxiv.com/*
 
=== Tools for patch file download and analysis ===
 
* https://xiv.dev/data-files/zipatch
* http://ffxivclassic.fragmenterworks.com/wiki/index.php/ZiPatch_File_Structure
* https://project-novum.github.io/game-patching/zipatch/
* https://project-novum.github.io/game-files/executables/ffxivboot/
* https://project-novum.github.io/game-patching/patching/
* https://github.com/Project-Novum/NovumZiPatchExplorer
* https://github.com/goatcorp/FFXIVQuickLauncher/blob/19c603de1ec038136bdb14d65924bd525131d3fb/src/XIVLauncher.Common.Tests/PatchAcquisitionTests.cs
* https://github.com/goatcorp/XIVLauncher.Core/issues/23
 
= TV and Video Service Applications =
 
See also [[Media Services]] and [[Internet Browser]].
 
As on the PS3, [http://www.psdevwiki.com/ps3/Online_Connections#TV.2FVideo_Services TV/Video_Services] can be directly installed to the console, seperately from browsing the PS store.
 
As a side reference, on PlayStation 3 (WebMAF), the user-agent of TV & Video applications used to be mostly <code>"Mozilla/5.0 (PlayStation 3) AppleWebKit/531.3 (KHTML, like Gecko) SCEE/1.0 Nuanti/2.0</code> whilst on PS4 it is mostly <code>Mozilla/5.0 (PlayStation 4) AppleWebKit/531.3 (KHTML, like Gecko) SCEE/1.0 Nuanti/2.0</code>.
 
== SnagFilms ==
 
See [[Bugs]].
 
== VidNow ==
 
See [[Bugs]].
 
= Commerce related =
 
== PS Store Content Icons ==
 
Format:
* https://commerce1.api.np.km.playstation.net/store/api/ps4/00_09_000/container/<PS Store Country>/<PS Store Language>/19/<Content ID>/image<Optional Arguments>
* PS Store Country must be uppercase whilst PS Store Language must be downcase.
* Optional Arguments must be URL-GET-formatted. Supported arguments are: w for width, h for height.
 
Example:
* https://commerce1.api.np.km.playstation.net/store/api/ps4/00_09_000/container/FR/fr/19/EP4389-CUSA08652_00-CAR0050000000000/image
* https://commerce1.api.np.km.playstation.net/store/api/ps4/00_09_000/container/FR/fr/19/EP4389-CUSA08652_00-CAR0050000000000/image?w=240&h=240
 
Remarks:
* 00_09_000 represents the version of the Chihiro/Kamaji PS Store.
 
= Unsorted =
 
== ps4-eb servicelist.xml ==
 
* https://ps4-eb.ww.np.dl.playstation.net/ps4-eb/servicelist/servicelist.xml
 
It is a white/black list for unknown usage.
 
Content:
<source lang=xml>
<?xml version="1.0" encoding="UTF-8"?>
<servicelist version="1.0" platform="ps4">
  <service name="SNS001" default="allow">
  </service>
  <service name="SNS002" default="allow">
  </service>
  <service name="SNS003" default="allow">
  </service>
  <service name="SNS004" default="allow">
  </service>
  <service name="SNS005" default="deny">
    <allow country="jp"/>
  </service>
  <service name="SYS001" default="allow">
    <deny country="de"/>
  </service>
</servicelist>
</source>
 
== ps4-eb applaunchlink.xml ==
 
* https://ps4-eb.ww.np.dl.playstation.net/ps4-eb/applaunchlink/applaunchlink.xml
 
It is a white/black list for unknown usage.


=== Tools ===
Content:
* [http://www.skfu.xxx/2013/11/release-skfus-pr0xy.html SKFU's Pr0xy]
<source lang=xml>
* [http://www.wireshark.org/ WireShark]
<?xml version="1.0" encoding="UTF-8"?>
* [http://www.charlesproxy.com/ CharlesProxy]
<applaunchlink version="1.0">
  <system_info min_system_ver="01.700.000"/>
  <title_black_list>
  </title_black_list>
</applaunchlink>
</source>


=== Network connections by system ===
= Network connections by the System =


{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
! useragent !! header !! host
! User-agent !! Header !! Host
|-
|-
| btest/1.0 libhttp/1.50 (PlayStation 4)  
| btest/1.0 libhttp/1.50 (PlayStation 4)  
Line 114: Line 469:
** https://ps4updptl.jp.sp-int.community.playstation.net/updptl/ps4/
** https://ps4updptl.jp.sp-int.community.playstation.net/updptl/ps4/


=== Useragent of applications under "TV & Video" ===
= Port usage =
This should cover all [[Media Services]] useragent:
{| class="wikitable sortable"
|-
! useragent !! version !! vulnerability
|-
|  || [[1.000.051]] ||
|-
|  || [[1.01]] ||
|-
|  || [[1.06]] ||
|-
|  || [[1.07]] ||
|-
|  || [[1.500.000]] ||
|-
|  || [[1.501.000]] ||
|-
|  || [[1.510.000]] ||
|-
|  || [[1.520.000]] ||
|-
|  || [[1.600.000]] ||
|-
|  || [[1.610.000]] ||
|-
|  || [[1.620.000]] ||
|-
| || [[1.700.000]] ||
|-
|  || [[1.710.000]] ||
|-
|  || [[1.720.000]] ||
|-
|  || [[1.740.000]] ||
|-
|  || [[1.750.000]] ||
|-
|  || [[1.760.000]] ||
|-
|  || [[2.000.000]] || ?
|-
|  || [[2.010.000]] || ?
|-
|  || [[2.020.000]] || ?
|-
| Mozilla/5.0 (PlayStation 4) AppleWebKit/531.3 (KHTML, like Gecko) SCEE/1.0 Nuanti/2.0 || [[2.030.000]] || ?
|-
|  || [[2.040.000]] || ?
|-
|  || [[2.501.000]] || ?
|-
|  || [[2.508.000]] || ?
|-
|  || [[2.510.000]] || ?
|-
|  || [[2.550.000]] || ?
|-
|  || [[2.570.000]] || ?
|-
|  || [[3.000.000]] || ?
|-
|  || [[3.008.000]] || ?
|-
|  || [[3.100.000]] || ?
|-
|  || [[3.110.000]] || ?
|-
|  || [[3.150.000]] || ?
|}
side reference: on Playstation 3 (WebMAF), the useragent is <code>"Mozilla/5.0 (PlayStation 3) AppleWebKit/531.3 (KHTML, like Gecko) SCEE/1.0 Nuanti/2.0</code>


=== Unsorted ===
''[http://www.psdevwiki.com/ps3/Online_Connections#Port_usage ps3 side reference]''
==== ps4-eb servicelist.xml ====
* https://ps4-eb.ww.np.dl.playstation.net/ps4-eb/servicelist/servicelist.xml
<source lang=xml>
<?xml version="1.0" encoding="UTF-8"?>
<servicelist version="1.0" platform="ps4">
  <service name="SNS001" default="allow">
  </service>
  <service name="SNS002" default="allow">
  </service>
  <service name="SNS003" default="allow">
  </service>
  <service name="SNS004" default="allow">
  </service>
  <service name="SNS005" default="deny">
    <allow country="jp"/>
  </service>
  <service name="SYS001" default="allow">
    <deny country="de"/>
  </service>
</servicelist>
</source>


==== ps4-eb applaunchlink.xml ====
== Generic Port usage ==
* https://ps4-eb.ww.np.dl.playstation.net/ps4-eb/applaunchlink/applaunchlink.xml
<source lang=xml>
<?xml version="1.0" encoding="UTF-8"?>
<applaunchlink version="1.0">
  <system_info min_system_ver="01.700.000"/>
  <title_black_list>
  </title_black_list>
</applaunchlink>
</source>


== Port usage ==
''[http://www.psdevwiki.com/ps3/Online_Connections#Port_usage ps3 side reference]''
=== Generic Port usage ===
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
Line 261: Line 513:
|}
|}


== PlayStation 4 Discovery and Wake-up Utility ==
= PlayStation 4 Discovery and Wake-up Utility =
{{PlayStation 4 Discovery and Wake-up Utility}}
 
See [[PlayStation 4 Discovery and Wake-up Utility]].


= Tools =
* [http://www.skfu.xxx/2013/11/release-skfus-pr0xy.html SKFU's Pr0xy]
* [http://www.wireshark.org/ WireShark]
* [http://www.charlesproxy.com/ CharlesProxy]
* Archive.org wayback machine allows to list every file it has archive for a specific subdomain by going to <code>https://web.archive.org/web/*/<DOMAIN>/*</code>. The same can be achieved in command line by installing the [https://github.com/akamhy/waybackpy waybackpy] python library and typing <code>waybackpy --url <DOMAIN> --user_agent "ua" --known_urls > <DOMAIN>.txt</code>.


= Guides =


* http://wololo.net/2013/12/05/howto-use-a-proxy-server-with-your-ps4-to-sniff-psn-traffic-skfu-pr0xy/





Latest revision as of 05:09, 26 December 2024

See also PS5 Online Connections.

PS Store Activation[edit | edit source]

URLs[edit | edit source]

PS Store content activation is often refered to as NP KDC.

On PS3, PSP and PS Vita:

On PS4, the servers files are:

  • /tcap.m for acttype 1 and 3
  • /tcdp.m for acttype 2 and 4
  • /tkdp.m for acttype 5 and 6

Usage on PS3, PSP and PS Vita:

  • cap should be Console Activation Point. Posting loginid, password (or epassword) and consoleid to tcap.m returns act.dat file.
  • cdp = Console Deactivation Point. Same as cap but the console removes the act.dat from the console after this is executed.
  • kdp = ?Key Download/Drop Point?. RIF files are obtained from here

Image[edit | edit source]

Sony servers provide an API to convert any image available on internet to another file format. Here is an example:

https://image.api.np.km.playstation.net/images/?format=png&w=4096&h=2160&image=https://pbs.twimg.com/profile_images/785892918645129216/1bmhzm0t.jpg
https://image.api.np.km.playstation.net/dis/images/?format=png&w=4096&h=2160&image=https://pbs.twimg.com/profile_images/785892918645129216/1bmhzm0t.jpg

Supported arguments are:

  • image (mandatory): URL to the image
  • format: "png" or "jpg"
  • w: width in pixel. It is limited to 4096.
  • h: height in pixel. It is limited to 2160.

The maximum size may be 8847360 pixels (4096 times 2160).

Game and applications[edit | edit source]

PlayStation 4 games and applications induce connection to internet to download updates, be downloaded in the case of contents bought on the PlayStation store, and some specific games use more connections for online gaming or diverse additional contents.

Title Database JSON[edit | edit source]

Format:

Example:

Game Base Descriptive Files[edit | edit source]

The listed files are non-exhaustive as there may be more images, more descriptive files involved depending on the application.

Icon[edit | edit source]

Format:

Example:

Pronunciation[edit | edit source]

Format:

Example:

Background Image[edit | edit source]

Format:

Example:

Background Music[edit | edit source]

Format:

Example:

Game Base JSON[edit | edit source]

Format 1:

Format 2:

  • "p" instead of "f"

Example 1:

Example 2:

Game Base PKG[edit | edit source]

Format 1:

  • http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/<NP Title ID>/<Revision>/f_<Hash>/f/<Content ID><Suffix>.pkg
  • It can be derived from the JSON URL by removing ".json" and appending "<Suffix>.pkg".
  • Suffix can be blank or "_n" where n is a decimal digit representing the chunk number.

Format 2:

  • "p" instead of "f"

Example 1:

Example 2:

Game Update XML[edit | edit source]

Contains link to the Delta Package if it exists, the PlayGo Manifest XML and the JSON.

Format:

Example:

Game Update JSON[edit | edit source]

Contains links to the chunks of PKG files for the non-cumulative patch.

Format:

Example:

Game Update Change Information XML[edit | edit source]

Format:

Example:

Game Update PlayGo Manifest XML[edit | edit source]

Contains information on how the package should be downloaded and installed.

Format:

Example:

Game Update PKG[edit | edit source]

Format:

  • http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/<NP Title ID>/<Patch Revision>/f_<Hash>/f/<Content ID>-A<Application Version>-V<Version><Suffix>.pkg
  • It can be derived from the JSON url by removing ".json" and appending "<Suffix>.pkg".
  • Suffix can be blank or "-DP" for a Delta Package (i.e. a Cumulative Patch) or "_n" where n is a decimal digit representing the chunk number.

Example of a single non-cumulative update PKG:

Example of a single Delta Package update PKG:

Example of chunks of non-cumulative update PKG:

Additional Content JSON[edit | edit source]

Format:

Example:

Additional Content PKG[edit | edit source]

Format:

Example:

Additional Content PKG Digest[edit | edit source]

Format:

Example:

Planet Side 2[edit | edit source]

The Planet Side 2 game on PS4 hosted some files on a server owned by Sony. Most URLs had the prefix

http://pls.patch.station.sony.com/patch/sha/

Rocket League[edit | edit source]

See Bugs.

Final Fantasy XIV: A Realm Reborn[edit | edit source]

The game Final Fantasy XIV: A Realm Reborn tries to download an update patch before starting the game, instead of the official PKG way. It is yet to be confirmed which version of the game is affected, and if there is a demo available.

It uses HTTP not HTTPS so can be hijacked using a proxy or DNS. The signatures are maybe unverified.

vercheck.dat[edit | edit source]

The game executable downloads a file named vercheck.dat from

https://web.archive.org/web/20171226083441/http://patch-bootver.ffxiv.com/http/ps4/ffxivneo_release_boot_eu/2014.04.02.0000.0000/ffxivpatch/02cbcb27/ffxivpatch/02cbcb27/vercheck.dat

The content looks like a network transmission header:

--477D80B1_38BC_41d4_8B48_5273ADB89CAC
Content-Type: application/octet-stream
Content-Location: ffxivpatch/02cbcb27/metainfo/D2014.04.02.0000.0000.http
X-Patch-Length: 62171712

62171712	62915700	3	3	2017.12.06.0000.0001	http://patch-dl.ffxiv.com/boot/02cbcb27/D2017.12.06.0000.0001.patch
--477D80B1_38BC_41d4_8B48_5273ADB89CAC--

and from the URL

https://web.archive.org/web/20171209090142/http://patch-bootver.ffxiv.com/http/ps4/ffxivneo_release_boot_eu/2014.04.02.0000.0000/?time=2014-04-04-11

we have an older version dumped:

--477D80B1_38BC_41d4_8B48_5273ADB89CAC
Content-Type: application/octet-stream
Content-Location: ffxivpatch/02cbcb27/metainfo/D2014.04.02.0000.0000.http
X-Patch-Length: 62171712

62171712	62915700	3	3	2017.11.24.0000.0001	http://patch-dl.ffxiv.com/boot/02cbcb27/D2017.11.24.0000.0001.patch
--477D80B1_38BC_41d4_8B48_5273ADB89CAC--

as well as from

https://web.archive.org/web/20170104080948/http://patch-bootver.ffxiv.com/http/ps4/ffxivneo_release_boot_eu/2014.04.02.0000.0000/?time=2014-04-04-11

where the version is even older:

--477D80B1_38BC_41d4_8B48_5273ADB89CAC
Content-Type: application/octet-stream
Content-Location: ffxivpatch/02cbcb27/metainfo/D2014.04.02.0000.0000.http
X-Patch-Length: 55610720

55610720	56493172	3	3	2016.12.08.0000.0001	http://patch-dl.ffxiv.com/boot/02cbcb27/D2016.12.08.0000.0001.patch
--477D80B1_38BC_41d4_8B48_5273ADB89CAC--

The vercheck.dat file contains the URL to download the .patch file.

patch file[edit | edit source]

The patch is in ZIPATCH format. The patch may be RSA signed, but maybe the downloader executable or the checker is vulnerable to buffer overflows or other vulnerabilities.

Tools for patch file download and analysis[edit | edit source]

TV and Video Service Applications[edit | edit source]

See also Media Services and Internet Browser.

As on the PS3, TV/Video_Services can be directly installed to the console, seperately from browsing the PS store.

As a side reference, on PlayStation 3 (WebMAF), the user-agent of TV & Video applications used to be mostly "Mozilla/5.0 (PlayStation 3) AppleWebKit/531.3 (KHTML, like Gecko) SCEE/1.0 Nuanti/2.0 whilst on PS4 it is mostly Mozilla/5.0 (PlayStation 4) AppleWebKit/531.3 (KHTML, like Gecko) SCEE/1.0 Nuanti/2.0.

SnagFilms[edit | edit source]

See Bugs.

VidNow[edit | edit source]

See Bugs.

Commerce related[edit | edit source]

PS Store Content Icons[edit | edit source]

Format:

Example:

Remarks:

  • 00_09_000 represents the version of the Chihiro/Kamaji PS Store.

Unsorted[edit | edit source]

ps4-eb servicelist.xml[edit | edit source]

It is a white/black list for unknown usage.

Content:

 <?xml version="1.0" encoding="UTF-8"?>
 <servicelist version="1.0" platform="ps4">
   <service name="SNS001" default="allow">
   </service>
   <service name="SNS002" default="allow">
   </service>
   <service name="SNS003" default="allow">
   </service>
   <service name="SNS004" default="allow">
   </service>
   <service name="SNS005" default="deny">
     <allow country="jp"/>
   </service>
   <service name="SYS001" default="allow">
     <deny country="de"/>
   </service>
 </servicelist>

ps4-eb applaunchlink.xml[edit | edit source]

It is a white/black list for unknown usage.

Content:

 <?xml version="1.0" encoding="UTF-8"?>
 <applaunchlink version="1.0">
   <system_info min_system_ver="01.700.000"/>
   <title_black_list>
   </title_black_list>
 </applaunchlink>

Network connections by the System[edit | edit source]

User-agent Header Host
btest/1.0 libhttp/1.50 (PlayStation 4) POST /networktest/post_128 HTTP/1.1

GET /networktest/get_2m HTTP/1.1

post.net.playstation.net

get.net.playstation.net

Download/1.00 libhttp/1.50 (PlayStation 4)
Download/1.00 libhttp/1.61 (PlayStation 4)
GET /update/ps4/list/us/ps4-updatelist.xml HTTP/1.1
GET /update/ps4/list/eu/ps4-updatelist.xml HTTP/1.1
fus01.ps4.update.playstation.net
feu01.ps4.update.playstation.net
SystemLogger/1.0 (PlayStation 4 1.501) libhttp/1.50 (PlayStation 4)
SystemLogger/1.0 (PlayStation 4 1.610) libhttp/1.61 (PlayStation 4)
GET /update/ps4/list/us/ps4-updatelist.xml HTTP/1.1
GET /update/ps4/list/eu/ps4-updatelist.xml HTTP/1.1
fus01.ps4.update.playstation.net
feu01.ps4.update.playstation.net
close /update/ps4/image/2014_0528/sys_ce90f2e9274e4614ffde6934e08e4b6e/PS4UPDATE.PUP?dest=eu /update/ps4/image/2014_0528/rec_7f84e2f63d1f6a5b4348bb528b35f2d7/PS4UPDATE.PUP?dest=eu deu01.ps4.update.playstation.net
CONNECT ps4updptl.eu.np.community.playstation.net:443 ps4updptl.eu.np.community.playstation.net
PS4TitleMetadata/1.00 libhttp/1.50 (PlayStation 4) GET /tmdb2/CUSA00080_00_4ED0D1374CB128AC8E277C9A3145505220D6D93A/CUSA00080_00.json HTTP/1.1

GET /tmdb2/CUSA00129_00_44DB6A4F9C773AF95F0D697E14652EABC80BAEFB/CUSA00129_00.json HTTP/1.1
GET /tmdb2/CUSA00001_00_C32A667A087A40C2AD1889435907AA4B0D9DBA1F/CUSA00001_00.json HTTP/1.1

tmdb.np.dl.playstation.net
Mozilla/5.0 (PlayStation 4 1.51) AppleWebKit/536.26 (KHTML, like Gecko) CONNECT themis.dl.playstation.net:443 HTTP/1.1 themis.dl.playstation.net:443
Mozilla/5.0 (PlayStation 4 1.51) AppleWebKit/536.26 (KHTML, like Gecko) CONNECT sf.api.np.km.playstation.net:443 HTTP/1.1 sf.api.np.km.playstation.net:443
CONNECT asm.np.community.playstation.net:443 HTTP/1.1 asm.np.community.playstation.net
Mozilla/5.0 (PlayStation 4 1.51) AppleWebKit/536.26 (KHTML, like Gecko) CONNECT artcdnsecure.ribob01.net:443 HTTP/1.1 artcdnsecure.ribob01.net:443
Mozilla/5.0 (PlayStation 4 1.51) AppleWebKit/536.26 (KHTML, like Gecko) CONNECT api-p014.ribob01.net:443 HTTP/1.1 api-p014.ribob01.net:443
Mozilla/5.0 (PlayStation 4 1.51) AppleWebKit/536.26 (KHTML, like Gecko) CONNECT apicdn-p014.ribob01.net:443 HTTP/1.1 apicdn-p014.ribob01.net:443
CONNECT it-prof.np.community.playstation.net:443 HTTP/1.1 it-prof.np.community.playstation.net
CONNECT ps4updptl.eu.np.community.playstation.net:443 HTTP/1.1 ps4updptl.eu.np.community.playstation.net
CONNECT fswitch.dl.playstation.net:443 fswitch.dl.playstation.net

nonretail:

Port usage[edit | edit source]

ps3 side reference

Generic Port usage[edit | edit source]

Protocol Port(s) Usage Remarks
UDP 1-1023 System reserved local ports
TCP 80 PSN Shop / USB/BT headsets http web
TCP 443 PSN Shop https web ssl
TCP 1935 PSN generic
TCP/UDP 3478 Session Traversal Utilities for NAT / Simple Traversal of UDP Through NAT (STUN)
TCP/UDP 3478-3480 NP matching 2 utility default PSN Generic / PS Home
TCP 4000 groupMessaging Crossplatform Integration
TCP 8540-8579 System reserved local ports
TCP 8550 Deci Daemon
TCP over UDP-P2P 9293-9310 System reserved local ports
UDP-P2P virtual 32768-49999 Ephemeral ports
UDP-P2P virtual 32768-65535 System reserved local ports
TCP 49152-65535 Ephemeral ports
TCP over UDP-P2P 49152-65535 Ephemeral ports
UDP 49152-65535 Ephemeral ports
TCP over UDP-P2P 40000-65535 System reserved local ports

PlayStation 4 Discovery and Wake-up Utility[edit | edit source]

See PlayStation 4 Discovery and Wake-up Utility.

Tools[edit | edit source]

Guides[edit | edit source]