Remove the anti-DG check on 11.0 firmware (and future ones)
This commit is contained in:
parent
a3ae38520c
commit
7ea2a0a278
@ -290,6 +290,9 @@ static inline void patchNativeFirm(u32 nandType, u32 emuHeader, u32 a9lhMode)
|
|||||||
//Apply signature patches
|
//Apply signature patches
|
||||||
patchSignatureChecks(process9Offset, process9Size);
|
patchSignatureChecks(process9Offset, process9Size);
|
||||||
|
|
||||||
|
//Apply anti-anti-DG patches for >= 11.0 firmwares
|
||||||
|
if(nativeFirmType == 1) patchTitleInstallMinVersionCheck(process9Offset, process9Size);
|
||||||
|
|
||||||
//Apply emuNAND patches
|
//Apply emuNAND patches
|
||||||
if(nandType)
|
if(nandType)
|
||||||
{
|
{
|
||||||
|
@ -34,6 +34,15 @@ void patchSignatureChecks(u8 *pos, u32 size)
|
|||||||
off2[1] = sigPatch[1];
|
off2[1] = sigPatch[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void patchTitleInstallMinVersionCheck(u8 *pos, u32 size)
|
||||||
|
{
|
||||||
|
const u8 pattern[] = {0x89, 0x0A, 0x81, 0x42, 0x02, 0xD2};
|
||||||
|
|
||||||
|
u8 *off = memsearch(pos, pattern, size, 6);
|
||||||
|
|
||||||
|
if(off != NULL) off[5] = 0xE0;
|
||||||
|
}
|
||||||
|
|
||||||
void patchFirmlaunches(u8 *pos, u32 size, u32 process9MemAddr)
|
void patchFirmlaunches(u8 *pos, u32 size, u32 process9MemAddr)
|
||||||
{
|
{
|
||||||
//Look for FIRM reboot code
|
//Look for FIRM reboot code
|
||||||
|
@ -17,6 +17,7 @@ typedef struct patchData {
|
|||||||
|
|
||||||
u8 *getProcess9(u8 *pos, u32 size, u32 *process9Size, u32 *process9MemAddr);
|
u8 *getProcess9(u8 *pos, u32 size, u32 *process9Size, u32 *process9MemAddr);
|
||||||
void patchSignatureChecks(u8 *pos, u32 size);
|
void patchSignatureChecks(u8 *pos, u32 size);
|
||||||
|
void patchTitleInstallMinVersionCheck(u8 *pos, u32 size);
|
||||||
void patchFirmlaunches(u8 *pos, u32 size, u32 process9MemAddr);
|
void patchFirmlaunches(u8 *pos, u32 size, u32 process9MemAddr);
|
||||||
void patchFirmWrites(u8 *pos, u32 size);
|
void patchFirmWrites(u8 *pos, u32 size);
|
||||||
void patchFirmWriteSafe(u8 *pos, u32 size);
|
void patchFirmWriteSafe(u8 *pos, u32 size);
|
||||||
|
Reference in New Issue
Block a user