
CFW framework for PS Vita
taiHEN — это фреймворк CFW для PS Vita™. При загрузке с помощью эксплойта ядра он действует как общая основа для патчинга системы. taiHEN предоставляет три основные возможности:
Последний пункт означает, что разработчики могут добавлять собственные патчи как в ядро, так и в системные приложения и игры.
Для сборки вам понадобится последняя версия тулчейна с поддержкой ядра. Затем просто используйте CMake для сборки.
$ mkdir build && cd build
$ cmake ../
$ make
Для запуска taiHEN требуется отдельный эксплойт ядра. Как только эксплойт
загрузит taihen.skprx в ядро, taiHEN позаботится обо всём остальном.
Дополнительную информацию см. в документации эксплойта.
Плагины загружаются либо в ядро после загрузки taiHEN, либо по требованию при
запуске приложения. taiHEN читает файл конфигурации ux0:tai/config.txt.
Конфигурация, определяющая, какие плагины загружать и в каком порядке,
находится в ux0:tai/config.txt. Формат очень простой и понятный.
# 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
Ключевые моменты, на которые следует обратить внимание:
# начинает комментарий, * начинает секцию, а любой другой символ начинает
путь.KERNEL — это особое имя секции, обозначающее загрузку плагина ядра при
запуске taiHEN. Все остальные имена секций — это идентификаторы title id
приложения/игры, в которое загружается плагин при запуске. Обратите внимание,
что у SceShell особый title id — main.ux0:tai или ux0:data/tai. Один и тот же плагин можно указать в нескольких
секциях, но разработчик должен убедиться, что плагин знает, в какое приложение
он загружен, если ему нужно действовать по-разному.taiHEN предоставляет интерфейс API как для ядра, так и для пользовательского
пространства. Этот интерфейс описан на [страницах документации](@ref taihen).
Также рекомендуем ознакомиться с руководством по использованию.
Вы можете скачать готовый релиз или собрать taiHEN самостоятельно. После этого
вы можете включить taihen.h в свой проект и слинковаться с libtaihen_stub.a
(для пользовательских модулей) или libtaihen_kernel_stub.a (для модулей ядра).