This is a simple telnet-like server that can be executed on a Playstation 5 that has been jailbroken via the BD-J or the webkit entry points. The server provides connected clients with a couple of basic UNIX-like commands, e.g., cd, mkdir, stat, and the abillity to run payloads stored on the PS5 filesystem.
To deploy ps5-payload-shsrv, first make sure ps5-payload-elfldr is running, then load the payload and connect using a telnet client by issuing the following commands:
john@localhost:~$ export PS5_HOST=ps5
john@localhost:~$ wget -q -O - https://github.com/ps5-payload-dev/shsrv/releases/latest/download/Payload.zip | gunzip -c -d | nc -q0 $PS5_HOST 9021
john@localhost:~$ telnet $PS5_HOST 2323
There are a handful of rudimentary commands available, e.g., cd, ls, and mkdir.
Type help
in a connected telnet shell for more information. For example, to
get a list of running processes:
/$ ps
PID PPID PGID SID UID AuthId Emul State AppId TitleId Command
...
61 50 50 50 1 480000001000000e Native SELF SLEEP 000e 40112 SceSpZeroConf
60 50 50 50 0 4800000000000028 Native SELF SLEEP 000d 40153 ScePsNowClientDaemo
59 50 50 50 0 4800000000000019 Native SELF SLEEP 000c 40102 SceRemotePlay
58 50 50 50 0 4800000000001004 Native SELF SLEEP 000b 40039 SceMediaCoreServer
57 50 50 50 0 4800000000000014 Native SELF SLEEP 000a 40109 ScePartyDaemon
...
You can also run your own paylaods by placing them in a folder included in the PATH enviroment variable, which is initialized to /user/homebrew/bin and /mnt/usb0/homebrew/bin
To run payloads that use audio or video, you can use the hbldr command, e.g.,
/$ hbldr ffplay /data/clip.mp4
Also, if you wan't to debug such homebrew with gdb, you can launch them as follows:
/$ hbdbg ffplay /data/clip.mp4
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/shsrv$ sudo apt-get install xxd
john@localhost:ps5-payload-dev/shsrv$ export PS5_PAYLOAD_SDK=/opt/ps5-payload-sdk
john@localhost:ps5-payload-dev/shsrv$ make
The login session is not attached to a TTY, so you cannot run homebrew that alters terminal properties like window size etc. Furthermore, most of the commands are only partially implemented. If you find some limitation extra anoying, file a github issue and perhaps it will be addressed.
If you encounter problems with ps5-payload-shsrv, 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-shsrv is licensed under the GPLv3+.