From ec89d8957024d2e00740165653a23508511b2f31 Mon Sep 17 00:00:00 2001
From: Nougat-Police
Date: Tue, 8 Mar 2016 18:52:50 +0100
Subject: [PATCH] Changes for FW 4.1.0 and 4.0.0
- added addresses to kernel_patches.S and launcher.c
- updated installer makefile
---
installer/Makefile | 2 +-
installer/kernel_patches.S | 26 +++++++++++++++++++++++++-
installer/launcher.c | 5 +++++
3 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/installer/Makefile b/installer/Makefile
index 66436da..1d6cde9 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
+all: clean setup main532 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" > $@
diff --git a/installer/kernel_patches.S b/installer/kernel_patches.S
index 238fcb4..4d2aba4 100644
--- a/installer/kernel_patches.S
+++ b/installer/kernel_patches.S
@@ -27,8 +27,32 @@
#define BAT_SET_NOP_ADDR_8 0xFFEE10B8
#define BAT_SET_NOP_ADDR_9 0xFFEE10BC
-#elif ( (VER == 400) || (VER == 410) )
+#elif VER == 410
#define BAT_SETUP_HOOK_ADDR 0xFFF1AD00
+
+ #define BAT_SET_NOP_ADDR_1 0xFFF06708
+ #define BAT_SET_NOP_ADDR_2 0xFFF06794
+ #define BAT_SET_NOP_ADDR_3 0xFFF003C8
+ #define BAT_SET_NOP_ADDR_4 0xFFF003CC
+ #define BAT_SET_NOP_ADDR_5 0xFFF1ADE8
+ #define BAT_SET_NOP_ADDR_6 0xFFF1AE04
+ #define BAT_SET_NOP_ADDR_7 0xFFF1AF08
+
+ #define BAT_SET_NOP_ADDR_8 0xFFEE10B8
+ #define BAT_SET_NOP_ADDR_9 0xFFEE10BC
+#elif VER == 400
+ #define BAT_SETUP_HOOK_ADDR 0xFFF1A440
+
+ #define BAT_SET_NOP_ADDR_1 0xFFF066FC
+ #define BAT_SET_NOP_ADDR_2 0xFFF06788
+ #define BAT_SET_NOP_ADDR_3 0xFFF003C8
+ #define BAT_SET_NOP_ADDR_4 0xFFF003CC
+ #define BAT_SET_NOP_ADDR_5 0xFFF1A528
+ #define BAT_SET_NOP_ADDR_6 0xFFF1A544
+ //define BAT_SET_NOP_ADDR_7 not present in 400
+
+ #define BAT_SET_NOP_ADDR_8 0xFFEE0F50
+ #define BAT_SET_NOP_ADDR_9 0xFFEE0F54
#else
#error Please define valid values for kernel setup.
#endif
diff --git a/installer/launcher.c b/installer/launcher.c
index 21c9aee..3a5959d 100644
--- a/installer/launcher.c
+++ b/installer/launcher.c
@@ -35,6 +35,11 @@
#elif ( (VER == 400) || (VER == 410) )
#define ADDRESS_OSTitle_main_entry_ptr 0x1005A8C0
#define ADDRESS_main_entry_hook 0x0101BD4C
+
+ #define KERN_SYSCALL_TBL_1 0xFFE84C90
+ #define KERN_SYSCALL_TBL_2 0xFFE85090
+ #define KERN_SYSCALL_TBL_3 0xFFE85C90
+ #define KERN_SYSCALL_TBL_4 0xFFE85490
#define KERN_SYSCALL_TBL_5 0xFFE85890 // works with browser
#endif // VER