• Stars
    star
    281
  • Rank 147,023 (Top 3 %)
  • Language
    C
  • License
    MIT License
  • Created about 8 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

CFW framework for PS Vita

大変

Build Status

taiHEN is a CFW framework for PS Vitaâ„¢. When loaded with a kernel exploit, it acts as a common substrate for patching the system. taiHEN provides three main facilities:

  1. It disables code signature checks to allow unsigned executables.
  2. It exposes kernel peek/poke syscalls to user applications and allows loading of kernel modules.
  3. Most importantly, it provides an API for hooking and replacing functions based off of substitute.

The last point means that developers can add custom patches to kernel, system applications, and games alike.

Building

To build, you need the latest version of the toolchain with kernel support. Then just use CMake to build.

$ mkdir build && cd build
$ cmake ../
$ make

Installation

taiHEN requires a separate kernel exploit to run. Once the exploit loads taihen.skprx to the kernel, taiHEN will take care of the rest. Please refer to documentations for the exploit for more information.

Plugins

Plugins are loaded either into kernel after taiHEN is loaded or on demand when an application is launched. taiHEN reads the configuration file in ux0:tai/config.txt.

The configuration that determines the plugins to load and the load order can be found in ux0:tai/config.txt. The format is very simple and self explanatory.

# 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

The key things to note are

  1. # begins a comment, * begins a section, and any other character begins a path.
  2. KERNEL is a special section name denoting to load a kernel plugin when taiHEN is started up. All other section names are the title id of the application/game in which to load the plugin at startup. Note that SceShell has a special title id of main.
  3. In each section, there is a list of plugin paths that will be loaded in order. Paths can be anywhere but it is recommended that plugins reside in ux0:tai or ux0:data/tai. It is valid to have one plugin in multiple sections but the developer must ensure that the plugin knows which application it is loaded in if it needs to do things differently.

API

taiHEN exports an API interface both to kernel and to user. This interface is found in the [documentation pages](@ref taihen). You should also read the usage guide for more details. You can either download the release or build taiHEN yourself. After that, you can include taihen.h in your project and link with libtaihen_stub.a (for user modules) or libtaihen_kernel_stub.a (for kernel modules).

More Repositories

1

psvimgtools

Decrypt Vita CMA backups
C
206
star
2

usbmc

USB storage as Vita memory card
C
122
star
3

KindleTool

Tool for creating/extracting Kindle updates and more
C
106
star
4

psvsd

84
star
5

VitaMTP

Library to interact with Vita's USB MTP protocol
C
81
star
6

PSXperia

This tool will take a PSX image that you legally own and convert it to be playable on the Xperia Play with the emulator extracted from the packaged game "Crash Bandicoot."
Java
78
star
7

UVLoader

Userland Vita Loader for loading unsigned executables on your Vita
C
73
star
8

Spider3DSTools

Tools to work with 3DS 9.x Spider exploit
Assembly
70
star
9

3ds_injector

Open source implementation of loader module with code injection support
C
51
star
10

netcheck_bypass

C
45
star
11

Fastboot-Kindle

Fastboot tool for the Kindle
C
42
star
12

KindleLauncher

GUI launcher for Kindle Touch
Java
36
star
13

VitaDefiler

An RPC for Vita that supports ARM userland code execution
C#
27
star
14

OpenBlanket

Open API for Kindle's libBlanket
C
20
star
15

KindleEPUBReader

EPUB reader plugin for Kindle Touch
Java
18
star
16

libMTP

libmtp is a LGPL library implementation of the Media Transfer Protocol (MTP), a superset of the Picture Transfer Protocol (PTP).
C
18
star
17

ARMv7_MMU_Dumper

Bare metal ARMv7 MMU Translation Table dumper
C
17
star
18

Rejuvenate

Run homebrew on the Vita
C#
14
star
19

Polipo-iOS

iOS port of Polipo caching HTTP proxy
C
14
star
20

ngptv

Because VitaTV is already taken
Python
13
star
21

3DSSystemTools

C++
12
star
22

PSMSigner

Locally sign PSMDA cache files
C
12
star
23

VitaInjector

Inject userland ARM code through PSM
C#
10
star
24

DumpMemory

Visual Studio extension to dump and load memory for debug targets
C#
9
star
25

ropdetect

Detecting ROP execution using performance monitors
TeX
8
star
26

PSXPeria-Wrapper

Loads injected PSX games on Xperia Play
C++
7
star
27

usb_detect

USB probing for Vita
C
7
star
28

yifanlu.github.io

Personal blog
CSS
5
star
29

LibiMX50USB

Library to interact with iMX50 USB download mode
C
5
star
30

TinyForward

A fast, small, and portable HTTP forwarding proxy.
C
4
star
31

Josh

Native console access wrapper for Java
Java
3
star
32

CollegesMap

Facebook app to display friends' colleges on a map
PHP
2
star
33

Histogram

Minimal POSIX file histogram generation tool
C
1
star