Changes

Jump to navigation Jump to search
1,279 bytes added ,  08:43, 25 August 2020
Line 36: Line 36:  
* The following 01000000000008XX titles were added:
 
* The following 01000000000008XX titles were added:
 
** 0100000000000800(SSL trusted certs), 0100000000000807(Hotspot List), 010000000000081E(Dummy file), 010000000000081F(Icosa system config), 0100000000000820(Copper system config), 0100000000000821(Hoag system config)
 
** 0100000000000800(SSL trusted certs), 0100000000000807(Hotspot List), 010000000000081E(Dummy file), 010000000000081F(Icosa system config), 0100000000000820(Copper system config), 0100000000000821(Hoag system config)
 +
* 010000000000081B ("exFAT FIRM") package2 is no longer "stubbed"/overwritten with garbage.
 +
 +
===FIRM===
 +
====Package1====
 +
The encrypted binaries' order and calculation for next stage's entrypoint was changed.
 +
 +
Old layout (before 2.0.0):
 +
1.- PK11 header
 +
2.- Secure Monitor blob
 +
3.- NX bootloader blob
 +
4.- Warmboot blob
 +
 +
NX bootloader entrypoint is calculated as:
 +
0x40013FE0 + 0x20 + 0x20 + NX bootloader blob's offset + Secure Monitor blob's size
 +
 +
New layout (2.0.0+):
 +
1.- PK11 header
 +
2.- Warmboot blob
 +
3.- NX bootloader blob
 +
4.- Secure Monitor blob
 +
 +
NX bootloader entrypoint is calculated as:
 +
0x40013FE0 + 0x20 + 0x20 + NX bootloader blob's offset + Warmboot blob's size
 +
 +
Some AES-ECB decryption related code was refactored.
    
==Kernel==
 
==Kernel==
Line 57: Line 82:  
** Creation doesn't use KIrqSingleton directly anymore.
 
** Creation doesn't use KIrqSingleton directly anymore.
 
** Instead it allocates a 0x20-byte entry, and then uses KIrqSingleton.
 
** Instead it allocates a 0x20-byte entry, and then uses KIrqSingleton.
** Probaly to do better cleanup.
+
** Probably to do better cleanup.
    
* Size-checks >= 0x180000000 was added to a bunch of syscalls.
 
* Size-checks >= 0x180000000 was added to a bunch of syscalls.
Line 79: Line 104:     
* Kernel stacks are now allocated with a slabheap.
 
* Kernel stacks are now allocated with a slabheap.
 +
 +
* KHeapArrange was changed. On 1.0.0 it held address/size for three pools ("base", "application", "system") and application/system were zero-sized/unused. Now it holds "pool management", "secure", "non-secure". Pool management and secure are now protected by the kernel carveout.
 +
** Secure pool size is dynamically calculated as size of all kips (including stacks) + 24 MB (FS sysmodule heap) + 1 MB (spare pages for e.g. IPC buffer usage).
 +
** If only one KIP is present, all memory goes to secure pool and non-secure pool does not exist.
    
{{NavboxVersions}}
 
{{NavboxVersions}}

Navigation menu