Provided is a kernel loader that replicates vanilla functionality with added support for a custom module list read from a text file.
Custom modules are loaded after the base kernel, but started before the base kernel - this allows the modules to function as 'plugins' and patch the base kernel in a pristine state.
The provided loader also passes a hooking/patching 'API' from enso_ex to the user's custom modules, detailed in the developer readme.
In conjunction with enso_ex's custom kernel loader, this allows the user to add their own *.skprx plugins to the base kernel.
It is also possible to outright replace base kernel modules with decrypted/unsigned alternatives.
By default, provided are two plugins - a homebrew enabler and a bootlogo replacer, their functionality is detailed later in this readme.
Before the kernel loader, enso_ex attempts to load and run a raw code blob from the os0 partition.
This is intended to be used as an enso_ex extension that alters core information or functionality such as Firmware version, ConsoleID, QA flags, security coprocessor behavior, etc.
Included is a bootloader-level recovery mechanism.
When triggered, enso_ex will initialize and use the sd2vita as an emmc replacement, os0 replacement, or source of a recovery code blob.
This feature provides a safeguard against any kind of filesystem corruption, partition wipes, update failures, enso_ex bugs, and much more.
It also opens doors to more advanced mods and tinkering, such as hybrid firmware or 'dual nand'.
enso_ex "forces" base kernel boot, even if some modules fail to load or start.
This feature provides an additional recovery layer and unlocks the ability to boot vanilla firmwares of different types, such as testkit firmware on a retail unit.
A few useful toggles, triggered by holding certain key combinations, are detailed in the recovery readme.
Provided is a VPK file containing the enso_ex installer, which has the following options:
This option will:
boot_config.txt
in ur0:tai/
ux0:eex/
This option will uninstall enso_ex core and remove ur0:tai/boot_config.txt
This option will create a type-specific boot_config.txt
in ur0:tai/
This option will:
os0:ex/
ux0:eex/boot/*
to os0:
e2x_ckldr.skprx
or bootmgr.e2xp
are not present in ux0:eex/boot/
, they will be removed from os0:
ux0:eex/custom/*
to os0:ex/
This option will:
ux0:eex/recovery/rconfig.e2xp
to EMMC block 4ux0:eex/recovery/rblob.e2xp
to EMMC block 0x30+ux0:eex/recovery/rmbr.bin
to EMMC block 3
To add a custom base kernel plugin put it in ux0:eex/custom/
, add it to the ux0:eex/custom/boot_list.txt
and "Synchronize" via the enso_ex installer.
By default, enso_ex installer installs the following plugins:
os0:psp2config_%model%.skprx
to ur0:tai/boot_config.txt
ux0:eex/boot_config.txt
is used (also works in safe mode)ur0:tai/boot_config_kitv.txt
or ux0:eex/boot_config_kitv.txt
is usedos0:ex/bootlogo.raw
ux0:eex/custom/bootlogo.raw
and "Synchronize" via the enso_ex installerux0:eex/custom/bootlogo.raw
and "Synchronize" via the enso_ex installerux0:eex/custom/e2xculogo.skprx
and "Synchronize" via the enso_ex installer