VPFS (Vita PKG File System) is a virtual file system for the Sony PlayStation Vita that allows access to PKG archives (such as the kind you get from PSN) without having to go through a costly decryption and installation process.
In other words, VPFS is designed to grant PS Vita users complete access to PKG files as if they had been installed on one's system.
This is achieved by:
- First, creating a small
.vpfs
content database for each archive - Second, running a kernel module that consumes the
.vpfs
data and, along with the original.pkg
file can reconstruct the virtual data, such as file listing, decrypted data and so on, and present it as local file system content
GNU General Public License (GPL) version 3.
ON HIATUS
Unfortunately, promotion does not rely on SceIo...
calls, or even ksceVfsOpen()
and friends, which means
that this whole endeavour has become pointless, since our goal was to enable the running of .pkg
files,
just like .iso
/.cso
could be run on PSP, without having to extract anything...
There are just too many levels of file system access indirection on the Vita, and our time is too limited to try to figure how to override them all.
So while you can use this project to browse and read data from .pkg
without having to exract them, in
VitaShell, you cannot use it to promote or run apps because there are unknown file system calls which we
don't know how to override (and we have now moved to working on other non PS Vita related stuff).
- Download the Ridge Racer game installer pkg from here (777 MB).
- Rename the file to
UP0700-PCSE00001_00-RIDGERACERPSVITA.pkg
. - Compile the
vpfs
PC application from the root directory. - On PC, run the command
vpfs UP0700-PCSE00001_00-RIDGERACERPSVITA.pkg
to create thePCSE00001.vpfs
file. You can also add the zRIF if you want awork.bin
to be embedded in the.vpfs
. - Copy
UP0700-PCSE00001_00-RIDGERACERPSVITA.pkg
toux0:pkg/
(you may need to create this directory) andPCSE00001.vpfs
toux0:app/
. - Compile the module application in
module/
(vpfs.skprx
) and copy it toux0:tai/
. - Compile the test application in
test/
(vpfs_test.vpk
) and install it on your Vita. - Run the test application which will load the kernel module, run a series of tests, and then unload the kernel module.
Alternatively, you can choose to close the application when it asks you to press X
to continue with the
tests to keep the kernel module loaded. Then you can try to open VitaShell, which should let you navigate
to ux0:app/PCSE00001/
and let your browse the content of the PKG, even as it has not been installed.
- Complete the overrides (async calls and so on).
- Validate that VPFS content can be promoted if
work.bin
is present. - Validate that a promoted application can run as a VPFS.
- File/directory deletion.
- Create an SceShell module/plugin/app that detects
.pkg
and creates the relevant.vpfs
. - Double buffering for read + AES-CTR decription and other optimisation.
- Support other types of archives besides
.pkg
(e.g..zip
).
- mmozeiko for pkg2zip on which the
vpfs
PC application is based. - yifanlu for taiHEN.
- TheFlow, CelesteBlue and dots-tb for their awesome work on varions applications that have been invaluable for the creation of the kernel plugin.
- Everyone who contributed to the Vita SDK.