mirror of
https://github.com/wiiu-env/MochaPayload.git
synced 2024-11-21 23:49:15 +01:00
Load the root.rpx and men.rpx from the environment path
This commit is contained in:
parent
d135f300f1
commit
598ae98912
@ -1,3 +1,3 @@
|
|||||||
FROM wiiuenv/devkitppc:20220601
|
FROM wiiuenv/devkitppc:20220605
|
||||||
|
|
||||||
WORKDIR project
|
WORKDIR project
|
@ -4,11 +4,12 @@
|
|||||||
This a version of the [original mocha](https://github.com/dimok789/mocha) to be used with the [EnvironmentLoader](https://github.com/wiiu-env/EnvironmentLoader).
|
This a version of the [original mocha](https://github.com/dimok789/mocha) to be used with the [EnvironmentLoader](https://github.com/wiiu-env/EnvironmentLoader).
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
Place the `00_mocha.rpx` in the `[ENVIRONMENT]/modules/setup` folder and run the [EnvironmentLoader](https://github.com/wiiu-env/EnvironmentLoader).
|
([ENVIRONMENT] is a placeholder for the actual environment name.)
|
||||||
- Requires [PayloadFromRPX](https://github.com/wiiu-env/PayloadFromRPX) as `sd:/wiiu/root.rpx` to support returning from the system settings.
|
1. Place the `00_mocha.rpx` in the `sd:/wiiu/environments/[ENVIRONMENT]/modules/setup` folder and run the [EnvironmentLoader](https://github.com/wiiu-env/EnvironmentLoader).
|
||||||
|
2. Requires [PayloadFromRPX](https://github.com/wiiu-env/PayloadFromRPX) as `sd:/wiiu/environments/[ENVIRONMENT]/root.rpx` to support returning from the system settings.
|
||||||
|
|
||||||
## Patches
|
## Patches
|
||||||
- You can also place a RPX as `men.rpx` in the `sd:/wiiu` folder which will replace the Wii U Menu.
|
- You can also place a RPX as `men.rpx` in the `sd:/wiiu/environments/[ENVIRONMENT]/` folder which will replace the Wii U Menu.
|
||||||
- RPX redirection
|
- RPX redirection
|
||||||
- overall sd access
|
- overall sd access
|
||||||
- wupserver and own IPC which can be used with [libiosuhax](https://github.com/wiiu-env/libiosuhax).
|
- wupserver and own IPC which can be used with [libiosuhax](https://github.com/wiiu-env/libiosuhax).
|
||||||
|
@ -226,7 +226,6 @@ typedef struct {
|
|||||||
#define IPC_CUSTOM_START_MCP_THREAD 0xFE
|
#define IPC_CUSTOM_START_MCP_THREAD 0xFE
|
||||||
#define IPC_CUSTOM_MEN_RPX_HOOK_COMPLETED 0xFD
|
#define IPC_CUSTOM_MEN_RPX_HOOK_COMPLETED 0xFD
|
||||||
#define IPC_CUSTOM_LOAD_CUSTOM_RPX 0xFC
|
#define IPC_CUSTOM_LOAD_CUSTOM_RPX 0xFC
|
||||||
#define IPC_CUSTOM_META_XML_READ 0xFB
|
|
||||||
#define IPC_CUSTOM_START_USB_LOGGING 0xFA
|
#define IPC_CUSTOM_START_USB_LOGGING 0xFA
|
||||||
#define IPC_CUSTOM_COPY_ENVIRONMENT_PATH 0xF9
|
#define IPC_CUSTOM_COPY_ENVIRONMENT_PATH 0xF9
|
||||||
|
|
||||||
|
@ -72,10 +72,6 @@ int kernel_syscall_0x81(u32 command, u32 arg1, u32 arg2, u32 arg3) {
|
|||||||
kernel_memcpy((void *) arg1, (void *) arg2, arg3);
|
kernel_memcpy((void *) arg1, (void *) arg2, arg3);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case KERNEL_GET_CFW_CONFIG: {
|
|
||||||
//kernel_memcpy((void*)arg1, &cfw_config, sizeof(cfw_config));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case KERNEL_READ_OTP: {
|
case KERNEL_READ_OTP: {
|
||||||
int (*read_otp_internal)(int index, void *out_buf, u32 size) = (int (*)(int, void *, u32)) 0x08120248;
|
int (*read_otp_internal)(int index, void *out_buf, u32 size) = (int (*)(int, void *, u32)) 0x08120248;
|
||||||
read_otp_internal(0, (void *) (arg1), 0x400);
|
read_otp_internal(0, (void *) (arg1), 0x400);
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
OUTPUT_ARCH(arm)
|
OUTPUT_ARCH(arm)
|
||||||
|
|
||||||
|
PROVIDE(snprintf = 0x05059010);
|
||||||
|
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
.text 0x05116000 : {
|
.text 0x05116000 : {
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "ipc_types.h"
|
#include "ipc_types.h"
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
#include "svc.h"
|
#include "svc.h"
|
||||||
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
int (*const real_MCP_LoadFile)(ipcmessage *msg) = (void *) 0x0501CAA8 + 1; //+1 for thumb
|
int (*const real_MCP_LoadFile)(ipcmessage *msg) = (void *) 0x0501CAA8 + 1; //+1 for thumb
|
||||||
@ -74,10 +75,13 @@ int _MCP_LoadFile_patch(ipcmessage *msg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (strncmp(request->name, "men.rpx", strlen("men.rpx")) == 0) {
|
if (strncmp(request->name, "men.rpx", strlen("men.rpx")) == 0) {
|
||||||
replace_path = "wiiu/root.rpx";
|
rpxpath[0] = '\0';
|
||||||
if (skipPPCSetup) {
|
if (skipPPCSetup) {
|
||||||
replace_path = "wiiu/men.rpx";
|
snprintf(rpxpath, sizeof(rpxpath) - 1, "%s/men.rpx", &((char *) 0x05119F00)[19]); // Copy in environment path
|
||||||
|
} else {
|
||||||
|
snprintf(rpxpath, sizeof(rpxpath) - 1, "%s/root.rpx", &((char *) 0x05119F00)[19]); // Copy in environment path
|
||||||
}
|
}
|
||||||
|
|
||||||
// At startup we want to hook into the Wii U Menu by replacing the men.rpx with a file from the SD Card
|
// At startup we want to hook into the Wii U Menu by replacing the men.rpx with a file from the SD Card
|
||||||
// The replacement may restart the application to execute a kernel exploit.
|
// The replacement may restart the application to execute a kernel exploit.
|
||||||
// The men.rpx is hooked until the "IPC_CUSTOM_MEN_RPX_HOOK_COMPLETED" command is passed to IOCTL 0x100.
|
// The men.rpx is hooked until the "IPC_CUSTOM_MEN_RPX_HOOK_COMPLETED" command is passed to IOCTL 0x100.
|
||||||
|
Loading…
Reference in New Issue
Block a user