
CFW framework for PS Vita
taiHEN ist ein CFW-Framework für PS Vita™. Wenn es mit einem Kernel-Exploit geladen wird, dient es als gemeinsame Grundlage zum Patchen des Systems. taiHEN bietet drei Hauptfunktionen:
Der letzte Punkt bedeutet, dass Entwickler benutzerdefinierte Patches für den Kernel, Systemanwendungen und Spiele gleichermaßen hinzufügen können.
Zum Erstellen benötigst du die neueste Version der Toolchain mit Kernel-Unterstützung. Verwende dann einfach CMake zum Erstellen.
$ mkdir build && cd build
$ cmake ../
$ make
taiHEN benötigt einen separaten Kernel-Exploit, um ausgeführt zu werden. Sobald der Exploit taihen.skprx in den Kernel lädt, kümmert sich taiHEN um den Rest. Weitere Informationen findest du in der Dokumentation des Exploits.
Plugins werden entweder nach dem Laden von taiHEN in den Kernel geladen oder bei Bedarf, wenn eine Anwendung gestartet wird. taiHEN liest die Konfigurationsdatei unter ux0:tai/config.txt.
Die Konfiguration, die bestimmt, welche Plugins geladen werden und in welcher Reihenfolge, findest du in ux0:tai/config.txt. Das Format ist sehr einfach und selbsterklärend.
# ignored line starting with #
# Kernel plugins are started with taiHEN and are in this section
*KERNEL
ux0:app/MLCL00001/henkaku.skprx
ux0:path/to/another.skprx
ux0:tai/plugin3.skprx
ux0:data/tai/plugin4.skprx
ux0:data/tai/plugin5.skprx
# titleid for SceSettings
*NPXS10015
ux0:app/MLCL00001/henkaku.suprx
ux0:data/tai/some_settings_plugin.suprx
# titleid for Package Installer
*NPXS10031
ux0:path/to/some_pkg_installer_plgin.suprx
# titleid for SceShell is special (does not follow the XXXXYYYYY format)
*main
ux0:app/MLCL00001/henkaku.skprx
ux0:data/tai/shell_plgin.skprx
Die wichtigsten Punkte sind:
# beginnt einen Kommentar, * beginnt einen Abschnitt, und jedes andere Zeichen beginnt einen Pfad.KERNEL ist ein spezieller Abschnittsname, der angibt, dass beim Start von taiHEN ein Kernel-Plugin geladen wird. Alle anderen Abschnittsnamen sind die Titel-ID der Anwendung/des Spiels, in der/dem das Plugin beim Start geladen werden soll. Beachte, dass SceShell die spezielle Titel-ID main hat.ux0:tai oder ux0:data/tai abgelegt werden. Es ist zulässig, ein Plugin in mehreren Abschnitten zu haben, aber der Entwickler muss sicherstellen, dass das Plugin weiß, in welcher Anwendung es geladen wird, falls es etwas anders machen muss.taiHEN exportiert eine API-Schnittstelle sowohl für den Kernel als auch für Benutzeranwendungen. Diese Schnittstelle findest du auf den [Dokumentationsseiten](@ref taihen). Du solltest außerdem die Nutzungsanleitung lesen, um weitere Details zu erfahren. Du kannst entweder das Release herunterladen oder taiHEN selbst erstellen. Danach kannst du taihen.h in dein Projekt einbinden und mit libtaihen_stub.a (für Benutzermodule) oder libtaihen_kernel_stub.a (für Kernelmodule) linken.