From abc7751c71b23354c3ba184c710e270a09c301d3 Mon Sep 17 00:00:00 2001 From: dimok789 Date: Thu, 31 Mar 2016 21:34:56 +0200 Subject: [PATCH] added support for 5.5.x firmwares (thanks to NWPlayer123 providing the necessary addresses) --- installer/Makefile | 5 ++++- installer/kernel_patches.S | 17 ++++++++++++++++- installer/kexploit.h | 6 ++++++ installer/launcher.c | 9 +++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/installer/Makefile b/installer/Makefile index 1d6cde9..4d04c96 100644 --- a/installer/Makefile +++ b/installer/Makefile @@ -16,7 +16,7 @@ sd_loader_elf := ../sd_loader/sd_loader.elf CFLAGS += -DUSE_SD_LOADER ASFLAGS += -DUSE_SD_LOADER -all: clean setup main532 main500 main410 main400 +all: clean setup main532 main550 main500 main410 main400 sd_loader.h: $(sd_loader_elf) xxd -i $< | sed "s/unsigned/static const unsigned/g;s/loader/loader/g;s/build_//g" > $@ @@ -27,6 +27,9 @@ $(sd_loader_elf): setup: mkdir -p $(root)/bin/ +main550: + make main FIRMWARE=550 + main540: make main FIRMWARE=532 diff --git a/installer/kernel_patches.S b/installer/kernel_patches.S index 4d2aba4..009a24d 100644 --- a/installer/kernel_patches.S +++ b/installer/kernel_patches.S @@ -1,4 +1,19 @@ -#if ((VER == 532) || (VER == 540)) +#if (VER == 550) + #define BAT_SETUP_HOOK_ADDR 0xFFF1D624 + # not all of those NOP address are required for every firmware + # mainly these should stop the kernel from removing our IBAT4 and DBAT5 + #define BAT_SET_NOP_ADDR_1 0xFFF06B6C + #define BAT_SET_NOP_ADDR_2 0xFFF06BF8 + #define BAT_SET_NOP_ADDR_3 0xFFF003C8 + #define BAT_SET_NOP_ADDR_4 0xFFF003CC + #define BAT_SET_NOP_ADDR_5 0xFFF1D70C + #define BAT_SET_NOP_ADDR_6 0xFFF1D728 + #define BAT_SET_NOP_ADDR_7 0xFFF1D82C + + #define BAT_SET_NOP_ADDR_8 0xFFEE11C4 + #define BAT_SET_NOP_ADDR_9 0xFFEE11C8 + +#elif ((VER == 532) || (VER == 540)) #define BAT_SETUP_HOOK_ADDR 0xFFF1D638 # not all of those NOP address are required for every firmware diff --git a/installer/kexploit.h b/installer/kexploit.h index fa73cd3..c6482c1 100644 --- a/installer/kexploit.h +++ b/installer/kexploit.h @@ -69,6 +69,12 @@ #define KERN_CODE_WRITE 0xFFF02294 #define KERN_ADDRESS_TBL 0xFFEAAA10 #define KERN_HEAP 0xFF200000 +#elif VER == 550 + #define KERN_SYSCALL_TBL 0xFFEAAE60 + #define KERN_CODE_READ 0xFFF023D4 + #define KERN_CODE_WRITE 0xFFF023F4 + #define KERN_ADDRESS_TBL 0xFFEAB7A0 + #define KERN_HEAP 0xFF200000 #else #error "Unsupported Wii U software version" #endif diff --git a/installer/launcher.c b/installer/launcher.c index 3a5959d..581688e 100644 --- a/installer/launcher.c +++ b/installer/launcher.c @@ -32,6 +32,15 @@ #define KERN_SYSCALL_TBL_3 0xFFE85470 // works with loader #define KERN_SYSCALL_TBL_4 0xFFEA9120 // works with home menu #define KERN_SYSCALL_TBL_5 0xFFEA9520 // works with browser (previously KERN_SYSCALL_TBL) +#elif (VER == 550) + #define ADDRESS_OSTitle_main_entry_ptr 0x1005E040 + #define ADDRESS_main_entry_hook 0x0101c56c + + #define KERN_SYSCALL_TBL_1 0xFFE84C70 // unknown + #define KERN_SYSCALL_TBL_2 0xFFE85070 // works with games + #define KERN_SYSCALL_TBL_3 0xFFE85470 // works with loader + #define KERN_SYSCALL_TBL_4 0xFFEAAA60 // works with home menu + #define KERN_SYSCALL_TBL_5 0xFFEAAE60 // works with browser (previously KERN_SYSCALL_TBL) #elif ( (VER == 400) || (VER == 410) ) #define ADDRESS_OSTitle_main_entry_ptr 0x1005A8C0 #define ADDRESS_main_entry_hook 0x0101BD4C