Changes

3,691 bytes added ,  17:56, 21 May 2018
Line 5: Line 5:  
==Change-log==
 
==Change-log==
 
[http://en-americas-support.nintendo.com/app/answers/detail/a_id/22525/p/897 Official] ALL change-log:
 
[http://en-americas-support.nintendo.com/app/answers/detail/a_id/22525/p/897 Official] ALL change-log:
* Added the following system functionality
+
*Added the following system functionality
* Facebook and Twitter friends that also use Nintendo Switch can now be added through Friend Suggestions  
+
:* Facebook and Twitter friends that also use Nintendo Switch can now be added through Friend Suggestions  
* Friend suggestions are based on the Facebook and Twitter accounts you have linked to your Nintendo Account
+
::* Friend suggestions are based on the Facebook and Twitter accounts you ''have linked to your Nintendo Account''
* To view your friend suggestions, from the top left of the HOME Menu head to your User Page  > Friend Suggestions
+
::* To view your friend suggestions, from the top left of the HOME Menu head to your User Page  > Friend Suggestions
* You must be 13 or older to use this feature
+
::* You must be 13 or older to use this feature
* Select from 24 new ARMS and the Kirby series icons for your user
+
:* Select from 24 new ARMS and the Kirby series icons for your user
* To edit your user icon, head to your My Page on the top left of the Home Menu > Profile
+
::* To edit your user icon, head to your My Page on the top left of the Home Menu > Profile
* Digital software purchases made from a PC or smart device will start downloading sooner than previously, even if the Nintendo Switch console is in Sleep Mode  
+
:* Digital software purchases made from a PC or smart device will start downloading sooner than previously, even if the Nintendo Switch console is in Sleep Mode
* Filter News to view only unread news or news from specific channels
+
:* Filter News to view only unread news or news from specific channels
* To keep the Parental Controls PIN private, the default method for PIN entry has been changed to entering using the Control Stick and buttons instead of the on-screen number pad
+
:* To keep the Parental Controls PIN private, the default method for PIN entry has been changed to entering using the Control Stick and buttons instead of the on-screen number pad
* When prompted to enter you Parental Controls PIN, press and hold the + Button to change between input methods  
+
::* When prompted to enter you Parental Controls PIN, press and hold the + Button to change between input methods  
* Captured videos in the Album will be restricted by Parental Controls depending on the Restricted Software setting and Software Rating Organization
+
:* Captured videos in the Album will be restricted by Parental Controls depending on the Restricted Software setting and Software Rating Organization
* Using the Nintendo Switch Parental Controls app, add specific software titles to your whitelist to exclude them from the console’s Parental Controls Restricted Software setting
+
:* ''Using the Nintendo Switch Parental Controls app'', add specific software titles to your whitelist to exclude them from the console’s Parental Controls Restricted Software setting
* Play-Time Limit restrictions will still apply even when the software title has been whitelisted.
+
::* Play-Time Limit restrictions will still apply even when the software title has been whitelisted.
* Receive notification when pre-purchased software is ready to play
+
:* Receive notification when pre-purchased software is ready to play
* Nintendo Switch Pro Controller grip colors will now display in the Controllers menu
+
:* Nintendo Switch Pro Controller grip colors will now display in the Controllers menu
 
* General system stability improvements to enhance the user's experience, including:
 
* General system stability improvements to enhance the user's experience, including:
* Resolved an issue that caused Play Activity to display incorrectly in the Profile section of your User Page
+
:* Resolved an issue that caused Play Activity to display incorrectly in the Profile section of your User Page
    
==System Titles==
 
==System Titles==
<fill this in (manually) later>
+
All 01000000000010XX titles and most 01000000000008XX titles were updated. Some 8XX titles were just rebuilt with the new NCA crypto without actual RomFS-content changes.
    
* 0100000000000824(Mariko Config), 0100000000000825, 0100000000000826 were added.
 
* 0100000000000824(Mariko Config), 0100000000000825, 0100000000000826 were added.
Line 32: Line 32:  
** 0100000000000826 contains a 0x40-byte "/version" file, this is all-zero except for '0' at offset 0x20.
 
** 0100000000000826 contains a 0x40-byte "/version" file, this is all-zero except for '0' at offset 0x20.
   −
The built codebins now have padding in .text after every function for 0x10-byte alignment.
+
The only 8XX titles with actual changes are (besides sysver-title, see below for FIRM):
 +
* 801 (Support Error Codes)
 +
* 803 (web-applet "shareddata:/")
 +
* 804 (HTML resources for "Intellectual Property Notices" / "Health & Safety Information")
 +
** "/legallines.htdocs/index.html" was updated with a Twitter mention, and a license section for "Software License for The Fraunhofer FDK AAC Codec Library for Android" was added.
 +
** "/safe.htdocs/html/EU{XX}/index.html" was updated.
 +
* 806 (Bad words)
 +
* 807 ([[Hotspot List]])
 +
** This was updated with more hotspots (these networks use encryption): "nintendoappdebug1", "Nintendo App Debug2", "Nintendo App Debug3", and "NCL-NZSERVICE1-5GHZ".
 +
* 80A (Chara)
 +
* 80B (Offline news)
 +
* 80E (Geo Zoneinfo)
 +
* 810-814 (All fonts)
 +
* 818 (System-config)
 +
* 81E (Controller gfx/icon data + dummy file)
 +
** "/lyt/ColorTable" and "/lyt/footer/controllerIcon.bntx" were updated. The "01-00" image showing handheld-mode with detached joy-cons was replaced with a blank image.
 +
* 81F (Icosa system config)
 +
* 820 (Copper system config)
 +
* 821 (Hoag system config)
 +
* 822 (Firmware binaries for peripherals)
 +
** The following was updated: "FirmwareInfo.csv", "tera_ota.bin", "tera_ota_iap.bin", and "ukyosakyo_ep2_ota.bin".
 +
* 823
 +
 
 +
The built codebins now have padding in .text after every function for 0x10-byte alignment (and other compiler changes).
 +
 
 +
The SDK included with titles (main-codebin) for NV changed/updated NVIDIA hw strings:
 +
 
 +
Previous version:
 +
  00000000: 4e56 4944 4941 2054 6567 7261 204b 3100  NVIDIA Tegra K1.
 +
  00000010: 4e56 4944 4941 2054 6567 7261 2058 31    NVIDIA Tegra X1
 +
 
 +
Current version:
 +
  00000000: 4e56 4944 4941 2054 6567 7261 2f4e 696e  NVIDIA Tegra/Nin
 +
  00000010: 7465 6e64 6f20 5377 6974 6368 004e 5649  tendo Switch.NVI
 +
  00000020: 4449 4120 5465 6772 6120 5832 0047 5031  DIA Tegra X2.GP1
 +
  00000030: 3042 0047 5031 3036 0047 5031 3036 2d41  0B.GP106.GP106-A
 +
  00000040: 0047 6546 6f72 6365 2047 5458 2031 3036  .GeForce GTX 106
 +
  00000050: 3020 3347 4200 4765 466f 7263 6520 4754  0 3GB.GeForce GT
 +
  00000060: 5820 3130 3630 2036 4742 0047 6546 6f72  X 1060 6GB.GeFor
 +
  00000070: 6365 2047 5458 2031 3035 3000 4765 466f  ce GTX 1050.GeFo
 +
  00000080: 7263 6520 4754 5820 3130 3630 0047 6546  rce GTX 1060.GeF
 +
  00000090: 6f72 6365 2047 5458 2031 3035 3020 5469  orce GTX 1050 Ti
 +
  000000a0: 0047 5031 3036 474c 2d41 0051 7561 6472  .GP106GL-A.Quadr
 +
  000000b0: 6f20 5032 3030 3000 4750 3130 362d 4200  o P2000.GP106-B.
 +
  000000c0: 4750 3130 3647 4c2d 42                  GP106GL-B
    
===FIRM===
 
===FIRM===
Everything under RomFS was updated.
+
All FIRM titles were updated, and everything under RomFS was updated.
    
A new folder "a" was added, in addition to the existing "nx" folder, containing a separate "bct" and "package1". Both of these seem encrypted/meant for the new "Mariko" hardware that support was added for.
 
A new folder "a" was added, in addition to the existing "nx" folder, containing a separate "bct" and "package1". Both of these seem encrypted/meant for the new "Mariko" hardware that support was added for.
  −
The following firm-sysmodules was added to both safemode-firm, which were originally in separate sysmodule-titles: [[Bus_services|Bus]], [[PCV_services|PCV]], and [[PSC_services|psc]].
  −
  −
All firm-sysmodules were updated (might be due to updated (?) rtld).
      
====Secure Monitor====
 
====Secure Monitor====
 
The [[Memory_layout|Memory layout]] was changed significantly:
 
The [[Memory_layout|Memory layout]] was changed significantly:
* .text, .rodata, and .data are now separate sections, instead of being mapped RWX.
+
* .text, .rodata, and .data are now separate sections, mapped with correct permissions (RX, RO, RW, respectively), instead of being mapped RWX.
* Physical layout in TZRAM changed significantly, with pk2ldr being in low TZRAM instead of high TZRAM.
+
* Physical layout in TZRAM changed significantly, with pk2ldr being in low TZRAM instead of high TZRAM, etc.
    
In addition, there were changes to the [[SMC]] interface:
 
In addition, there were changes to the [[SMC]] interface:
    +
* smcGenerateSpecificAesKey was updated to support generating previous 4.x+ device key(s).
 
* smcLoadSecureExpModKey/smcLoadRsaOaepKey/smcDecryptRsaPrivateKey no longer exist.
 
* smcLoadSecureExpModKey/smcLoadRsaOaepKey/smcDecryptRsaPrivateKey no longer exist.
 
* smcLoadRsaOaepKey was replaced with smcEncryptRsaPrivateKeyForImport.
 
* smcLoadRsaOaepKey was replaced with smcEncryptRsaPrivateKeyForImport.
Line 55: Line 96:  
** All keys which were previously imported with specific keys now first call smcEncryptRsaPrivateKeyForImport with the appopriate enum member to get a sealed copy of the RSA key, then smcDecryptOrImportRsaPrivateKey to import/unseal the key when needed.
 
** All keys which were previously imported with specific keys now first call smcEncryptRsaPrivateKeyForImport with the appopriate enum member to get a sealed copy of the RSA key, then smcDecryptOrImportRsaPrivateKey to import/unseal the key when needed.
 
* smcGetConfig was extended with two new config items:
 
* smcGetConfig was extended with two new config items:
* -GetConfig(16) now does the following, which seems to check whether the Switch is running on a Tegra 210:
+
** GetConfig(16), which seems to check whether the Switch is running on a Tegra 210:
 
     return (FUSE_RESERVED_ODM4 & 0x800) &&  FUSE_RESERVED_ODM0 == 0x8E61ECAE &&  FUSE_RESERVED_ODM1  == 0xF2BA3BB2 ?  (FUSE_RESERVED_ODM2 & 0x1F) : 0
 
     return (FUSE_RESERVED_ODM4 & 0x800) &&  FUSE_RESERVED_ODM0 == 0x8E61ECAE &&  FUSE_RESERVED_ODM1  == 0xF2BA3BB2 ?  (FUSE_RESERVED_ODM2 & 0x1F) : 0
* Getconfig(17) now checks whether package2 is plaintext or encrypted.
+
** Getconfig(17), which returns the Package2 hash if booting from recovery mode.
    
<fill in the rest later>
 
<fill in the rest later>
Line 64: Line 105:  
* Kernel Address Space Layout Randomization was added.
 
* Kernel Address Space Layout Randomization was added.
 
** Instead of using a hardcoded address for per-CPU region, they now use x18 to point to the per-CPU region.
 
** Instead of using a hardcoded address for per-CPU region, they now use x18 to point to the per-CPU region.
* 5 new syscalls
+
* When using most [[SMC]]s, IRQs are now disabled first then restored to original state afterwards. x18 is also reinitialized right after most SMCs (see above).
 +
* 5 new syscalls.
 +
** Syscalls 0x48+0x49 (svcAllocateUserHeapMemory+svcFreeUserHeapMemory) are used by [[AM_services|AM]]-sysmodule.
 +
*** This is used to allocate Application pool.
 +
** Syscall 0x4A (svcSetUserHeapMemoryAllocationMax) is used by [[Process_Manager_services|PM]]-sysmodule.
 +
*** This allows PM to set a limit on the number of bytes AM can allocate from Application pool.
 +
** Syscall 0x6F (svcGetMemoryInfo) is used by FS, SM, and PM.
 +
** Syscall 0x2E (svcGetNextThreadInfo) was added, but it only works on dev units.
 +
*** Allows fetching how many bytes free/occupied by the different pools.
 +
** svcControlCodeMemory was [[SVC#svcControlCodeMemory|updated]].
 +
* NPDM irq_id's are no longer checked to be < 0x100, instead max-value is loaded from per-cpu state.
 +
* The order slabheaps are laid out in memory is now randomized.
 +
* There are now 4 memory pool partitions.
 +
** This fixes sysmodule takeover with GMMU hax.
    
===[[Internet Browser]]===
 
===[[Internet Browser]]===
Line 94: Line 148:  
** "IcoPctl.bntx"
 
** "IcoPctl.bntx"
 
** "LogoMoon{region/language-text}.bntx", for every region/language.
 
** "LogoMoon{region/language-text}.bntx", for every region/language.
 +
 +
===System Config===
 +
New fields were added to [[Settings_services#System_Config|System Config]].
    
==[[NPDM]]==
 
==[[NPDM]]==