The Switch 5.0.0 system update was released on March 12, 2018. This Switch update was released for the following regions: ALL.

Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.

Change-log

Official ALL change-log:

  • Added the following system functionality
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Nintendo Switch Pro Controller grip colors will now display in the Controllers menu
  • 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

System Titles

<fill this in (manually) later>

  • 0100000000000824(Mariko Config), 0100000000000825, 0100000000000826 were added.
    • 0100000000000824 provides configuration for the new "T214" SoC.
    • 0100000000000825 contains an empty "/blacklist.dat" file.
    • 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 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

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.

The following firm-sysmodules was added to both safemode-firm, which were originally in separate sysmodule-titles: Bus, PCV, and psc.

All firm-sysmodules were updated (might be due to updated (?) rtld).

Secure Monitor

The Memory layout was changed significantly:

  • .text, .rodata, and .data are now separate sections, instead of being mapped RWX.
  • Physical layout in TZRAM changed significantly, with pk2ldr being in low TZRAM instead of high TZRAM.

In addition, there were changes to the SMC interface:

  • smcLoadSecureExpModKey/smcLoadRsaOaepKey/smcDecryptRsaPrivateKey no longer exist.
  • smcLoadRsaOaepKey was replaced with smcEncryptRsaPrivateKeyForImport.
  • smcDecryptRsaPrivateKey was replaced with smcDecryptOrImportRsaPrivateKey.
    • 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:
  • -GetConfig(16) now does the following, 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
  • Getconfig(17) now checks whether package2 is plaintext or encrypted.

<fill in the rest later>

Kernel

  • 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.
  • 5 new syscalls.
    • SVCs 0x48/0x49 are accessible by AM-sysmodule.
  • 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.

Internet Browser

OSS/WebKit was updated.

In the NPDM, besides the RSA region the only changes were the kernel-release-version descriptor + {new ACID flag is set}.

In the "shareddata:/" title, the NROs are now compressed: "{name}.nro.lz4" instead of "{name}.nro".

qlaunch

RomFS changes:

  • "/common/shader/VarietyOceanShader_Nx.arc.szs" updated
  • "/lyt/common.szs" updated
  • "/lyt/DummyGameA.szs" and "/lyt/DummyGame.szs" were removed.
  • "/lyt/Entrance.szs" updated
  • "/lyt/Eula.szs" added
  • "/lyt/Flaunch.szs" updated
  • "/lyt/Gift.szs" updated
  • "/lyt/Interrupt.szs" updated
  • "/lyt/Migration.szs" updated
  • "/lyt/Notification.szs" updated
  • "/lyt/Option.szs"
  • "/lyt/ResidentMenu.szs"
  • "/lyt/Set.szs"
  • "/message/" Everything under here was updated.
  • "/message/Ocean.msbp.szs" added
  • "/sound/qlaunch_action.bksnd" and "/sound/qlaunch.bfsar" were updated.
  • "/texture" Directory was added, which contains images for Nintendo Switch Parental Controls:
    • "IcoPctl.bntx"
    • "LogoMoon{region/language-text}.bntx", for every region/language.

NPDM

New flags bit2/bit3 were added to the flags at ACID+0xC.

Keys

Keyblob 5 is now used, instead of 4. New NCA keydata is now used as well.

See Also

System update report(s):

Nintendo Switch System Versions
1.0.0
2.0.02.1.02.2.02.3.0
3.0.03.0.13.0.2
4.0.04.0.14.1.0
5.0.05.0.15.0.25.1.0
6.0.06.0.16.1.06.2.0
7.0.07.0.1
8.0.08.0.18.1.08.1.1
9.0.09.0.19.1.09.2.0
10.0.010.0.110.0.210.0.310.0.410.1.010.1.110.2.0
11.0.011.0.1
12.0.012.0.112.0.212.0.312.1.0
13.0.013.1.013.2.013.2.1
14.0.014.1.014.1.114.1.2
15.0.015.0.1
16.0.016.0.116.0.216.0.316.1.0
17.0.017.0.1
18.0.018.0.118.1.0
19.0.019.0.1