Changes

1,286 bytes added ,  05:54, 20 January 2016
Line 14: Line 14:  
[[3DS_System_Flaws#Kernel11|memchunkhax2]] was fixed by reading the [[MemoryBlockHeader]] next pointer before it is mapped to userland.
 
[[3DS_System_Flaws#Kernel11|memchunkhax2]] was fixed by reading the [[MemoryBlockHeader]] next pointer before it is mapped to userland.
   −
The only updated FIRM sysmodules were fs and loader, for fs only a version-field in .code was updated used with a debug NOP-instruction. The loader process .text was previously 0x331C-bytes, it's now 0x36F0-bytes.
+
The only updated FIRM sysmodules were fs and loader, for fs only a version-field in .code was updated used with a debug NOP-instruction.
 +
 
 +
====loader====
 +
The loader process .text was previously 0x331C-bytes, it's now 0x36F0-bytes.
 +
 
 +
All code changes:
 +
* Some code using svcGetSystemTick was added, this appears to be debug code that wasn't disabled(the output from this is never used).
 +
* L_140022b8(L_14002234 in previous loader version): This is the function which calls L_140025f0. Code was added between the code which loads the memregion value from exheader, and the func call for mapping it(L_140025f0). This new code determines what to pass for the L_140025f0 insp4 flag. By default the value passed for that flag is 0.
 +
** When the process memregion is APPLICATION, the programID is for a CTR title, and the uniqueid matches the eShop system-application(''all'' regions including CHN), the flag is set to 1.
 +
** When the process memregion is SYSTEM, the flag is set to 1 when the reslimit_category is not LIB_APPLET.
 +
* L_140025f0(L_140024e4 in previous loader version) now calls another function(L_14002670) instead of svcControlMemory directly, for mapping the codebin memory. The insp4 flag from the L_140025f0 input is passed to L_14002670 as sp0.
 +
* L_14002670: New function used for mapping the codebin. When the insp0 flag is zero, this does the normal memory-mapping, otherwise a special memory-mapping codepath is used. This codepath still uses the same memregion specified in the exheader.
    
===NS===
 
===NS===