Skip to content

A simple web server for jailbroken PS5s that accepts connections on port 8080

License

Notifications You must be signed in to change notification settings

ps5-payload-dev/websrv

Repository files navigation

ps5-payload-websrv

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.

Quick-start

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.

Available services

Examples:

Installing Homebrew

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:

Building

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

Known Issues

  • 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.

Reporting Bugs

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.

License

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+.