Skip to content
Userland Vita Loader for loading unsigned executables on your Vita
C C++ Objective-C Other
Failed to load latest commit information.
.gitignore Fixed weak imports resolving Feb 6, 2016
Doxyfile Added doxygen makefile Sep 14, 2012
LICENSE Added license information and readme. Sep 12, 2012
Makefile Fixed weak imports resolving Feb 6, 2016
README.md Bumped version number Aug 2, 2015
cleanup.c Updated Jan 24, 2016
cleanup.h Fix a warning about implicit function declaration. Jul 30, 2015
config.h PSM Unity support (1.05 and 1.06) Jul 28, 2015
debugnet.c Fixed weak imports resolving Feb 6, 2016
debugnet.h Fixed weak imports resolving Feb 6, 2016
linker.x Added linker script and binary output. Sep 5, 2012
load.c Updated Jan 24, 2016
load.h Updated Jan 24, 2016
nidcache-169.h Removed need to separate 3.xx builds. Find SceLibKernel NID automatic… Jun 17, 2015
nidcache-3xx.h Removed need to separate 3.xx builds. Find SceLibKernel NID automatic… Jun 17, 2015
nidcache.h Removed need to separate 3.xx builds. Find SceLibKernel NID automatic… Jun 17, 2015
relocate.c Removed unneeded stuff Jun 11, 2015
relocate.h Used uvl_segment_write to copy to segment from loader May 21, 2015
resolve.c Fixed weak imports resolving Feb 6, 2016
resolve.h Updated Jan 24, 2016
scefuncs.c Fixed weak imports resolving Feb 6, 2016
scefuncs.h Fixed weak imports resolving Feb 6, 2016
types.h Removed 2MB homebrew limit Jun 11, 2015
utils.c Fixed bug in memstr where alphabet length is too small Mar 27, 2016
utils.h Changes ux0:/patch to app0:/ path conversion for module reloading not… Aug 10, 2015
uvloader.c Fixed weak imports resolving Feb 6, 2016
uvloader.h Fixed weak imports resolving Feb 6, 2016

README.md

Userland Vita Loader 1.1.0

What's new?

Version 1.1.0

  • Added Unity PSM cleanup code (thanks Netrix)

Version 1.0.1

  • Added support for multiple loads (stacked homebrew loading)

Version 1.0.0

  • Relocatable ELF (ET_SCE_RELEXEC) support
  • ARM relocation resolving
  • SceLibKernel NID cache database (for NID poison bypass)
  • Library reloading (another NID antidote technique)
  • UVL custom exports (code alloc, icache flush, logging via USB)

Version 0.1.0

  • Initial release

What is this?

In short, this is a loader that allows running homebrew games on the Vita using save-file exploits or similar methods where there is no access to the system loader functions (which are found in the kernel). UVL does this by hooking on to functions and API calls imported by the running game and passing them to the homebrew being loader. This is not a way to run backups or pirated games as that is not only wrong to do, but also because UVL does not and can not decrypt content nor can it do dynamic linking or other sophisticated things that the system loader does.

How do I run it?

UVL is designed to work with any userland exploit with little configuration. However, you should check with the developer of the exploit who ported UVL to see how to use it. UVL cannot do anything by itself, it is simply a payload that is executed by an exploit to run homebrews unmodified.

How can I call UVL API functions from my homebrew?

Import uvloader.h into your project and you'll have access to the exported functions.

How do I port UVL?

If you have an exploit for the Vita (not the PSP emulator as UVL does not work on that), then you should be able to port the exploit by finding a couple of memory addresses for some API calls and passing them to the config file. More information will be available when the time comes...

How do I compile UVL?

First of all, be aware that it is impossible to use UVL without an exploit, but once you have that and need a payload, all you need to do is modify the Makefile to point to your ARM toolchain and run "make". The toolchain that is tested with is https://launchpad.net/gcc-arm-embedded/+download.

Who's responsible for this?

This project is based heavily off of Half Byte Loader for the PSP. Some code is ripped from the Bionic libc project. The project is started by Yifan Lu with thanks to the following people for their contribution. (Apologies for those forgotten.)

Thanks To

  • Davee for many ideas and help
  • Proxima for module reloading NID antidote method
  • naehrwert for some code snippets and programming help
  • roxfan for finding structures
  • Netrix for Unity cleanup code
  • anyone in #vitadev who answered my stupid questions
Something went wrong with that request. Please try again.