This is a simple web server that can be executed on a Playstation 5 that has been jailbroken via the BD-J or the webkit entry points. It can be used to launch homebrew via the Webkit browser embedded with the PS5, or remotely from your PC, phone, etc.
To deploy ps5-payload-websrv, first make sure ps5-payload-elfldr is running, then load the payload as follows:
john@localhost:~$ export PS5_HOST=ps5
john@localhost:~$ wget -q -O - https://github.com/ps5-payload-dev/websrv/releases/download/v0.14/Payload.zip | gunzip -c -d | nc -q0 $PS5_HOST 9021
To interact with ps5-payload-websrv, either install the Launcher PKG on your PS5, or point your browser to one of the available services exemplified below.
Examples:
- http://ps5:8080/index.html - Launch Homebrew
- http://ps5:8080/elfldr - Launch ELF Payloads
- http://ps5:8080/fs/ - Browser the filesystem (html)
- http://ps5:8080/fs/?fmt=json - Browser the filesystem (json)
- http://ps5:8080/fs/system_ex/app/NPXS40028/redis.conf - Download a file
The web server will search for homebrew in /data/homebrew, and makes a couple of assumtions on the filestructure. More specifically, suppose you have a homebrew called MyHomebrew, the loader assumes that the following files exist:
- /data/homebrew/MyHomebrew/eboot.elf - Payload to run, compiled with ps5-payload-sdk.
- /data/homebrew/MyHomebrew/sce_sys/icon0.png - An icon to be rendered at /index.html.
You can also add your own custom UI extentions by specifying a javascript file named:
- /data/homebrew/MyHomebrew/homebrew.js
This is useful when the payload accepts different command line options, e.g., an emulator that expects arguments for loading roms. For an example on available capabillitiles, see:
For real-world homebrew, checkout the latest release at:
Assuming you have the ps5-payload-sdk installed on a Debian-flavored operating system, the payload can be compiled using the following commands:
john@localhost:ps5-payload-dev/websrv$ export PS5_PAYLOAD_SDK=/opt/ps5-payload-sdk
john@localhost:ps5-payload-dev/websrv$ ./libmicrohttpd.sh # build and install libmicrohttpd to $PS5_PAYLOAD_SDK
john@localhost:ps5-payload-dev/websrv$ make
- Homebrew sometimes crashes when there is already a previous homebrew running.
- The kernel can panic if you go into restmode and back again while a homebrew is running.
If you encounter problems with ps5-payload-websrv, please file a github issue. If you plan on sending pull requests which affect more than a few lines of code, please file an issue before you start to work on you changes. This will allow us to discuss the solution properly before you commit time and effort.
ps5-payload-websrv uses smoothscroll and xterm.js to render its web interface, both which are licenced under the MIT licence. Unless otherwhise explicitly specified inside induvidual files, The rest is the source code included with ps5-payload-websrv are licensed under the GPLv3+.