OpenOrbis PS4 Toolchain permite a los desarrolladores crear homebrew sin la necesidad de utilizar el SDK oficial de Sony. Contiene archivos de cabecera, librerías y herramientras para crear aplicaciones y librerías para Playstation 4.
Creating Homebrew Projects
For Windows, /extra provides Visual Studio templates which can be added into your VS installation's templates directory to allow easy creation of homebrew projects. You can also copy and modify the solutions from the provided samples.
For Linux and macOS, /extra contains a setup-project.sh script which will create a project directory based on the hello_world sample.
Each tool will have a dedicated README.md file for more specific information on the tool. Below is a generic overview of the tools included in the toolchain currently.
The create-eboot tool takes normal Executable Linkable Format (ELF) files and performs the necessary patches and relinking to create an Orbis ELF (OELF). It will further take this OELF and process it into a final wrapped Signed Executable Linkable Format (SELF). This was made possible thanks to flatz' previous work on the make-fself.py script, which can be found in /scripts. For more information on these formats, see the wiki or /docs.
Author: Specter + flatz (fself stuff)
The create-lib tool is similar to the create-eboot tool, however it produces Playstation Relocatable eXecutable (PRX) library files from a given ELF file.
Author: Specter + flatz (fself stuff)
The create-pkg tool takes a set of files that applications are expected to have (eboot.bin, param.sfo, necessary modules, etc.) and creates a package file (pkg) for them to install on the PS4.
The stub-generator generates the header files and shared libraries (.so) files for linking with PS4 system libraries. The output of this tool can be found in /include/orbis and /lib. These directories are essential to properly link with PS4 libraries.
The miralib library contains C# and Python code for interacting with Mira on the desktop side of things. This includes management of a local list of consoles, connecting to a console, and performing various actions once connected via RPC.
Author: Specter + Kiwi
Assistant is actually a suite of tools for aiding in developing PS4 homebrew. This includes a log viewer, a debugger, a launcher for Mira, and a tray application to easily launch all of these.
A replacement readelf tool for reading PS4-compatible ELFs, otherwise known as Orbis ELFs (OELF).
All scripts in the /scripts directory are Python 3 scripts, specifically targeting Python 3.7.0, with the exception of /scripts/make_fself.py. You will need Python installed on your system to run these scripts. Usage of these scripts can be found in /scripts/README.md.
autobuild.py - is an automated pkg generating script based on project dir content (may be unstable, wait for release build)
dynamic_entries.py - Gets a list of dynamic entries from the dynamic table of Orbis ELFs.
make_fself.py - Copy of flatz' script to generate fake SELF files. This functionality has now been integrated as a part of create-eboot and create-lib.
program_headers.py - Gets a list of program headers from the program header table of Orbis ELFs.
rela_entries.py - Gets a list of relocation with addend (RELA) entries from the relocation table of Orbis ELFs.
symbol_entries.py - Gets a list of symbols from the symbol table of Orbis ELFs.
This project is licensed under the GPLv3 license - see the LICENSE file for details.
The accompanying LLVM binaries are licensed under the Apache 2.0 license and is owned by LLVM. Under that license, redistribution is allowed.
Credits + Special Thanks
Specter: Create-eboot/lib relinker, miralib, assistant suite, readelf, samples and documentation
CrazyVoid: Stub generator, headers, samples and documentation
maxton: Create-pkg pkg and SFO generation tools
Kiwidog: Mira stuff, documentation
IDC: Lots of help with libraries and other bug fixes
flatz: Homebrew research and writeups, SELF reversing and documentation
m0rph3us1987: Help with debugging stuff
bigboss / psxdev: Library research and reverse engineering, used for reference by various samples
LightningMods / LM: Testing via APP_HOME and lib loading help on the Mira side
Lord Friky: Proper macOS support
MrSlick: Awesome logo ❤️
Other anonymous contributors