18.0.0
The Switch 18.0.0 system update was released on March 26, 2024 (UTC). This Switch update was released for the following regions: CHN, and 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 “15 Minutes” as an option for “Auto-sleep when playing on TV” in Sleep Mode Settings.
- Added Korean as a supported language for “Nintendo Switch Parental Controls” introductory video.
- When the console language is set to Korean, the video can be accessed from Settings > Parental Controls.
- General system stability improvements to enhance the user's experience.
System Titles
- The following titles were updated:
- Sysmodules: usb, htc.stub, boot2.ProdBoot, settings, Bus, bluetooth, bcat, friends, nifm, ptm, bsdsocket, hid, audio, LogManager.Prod, wlan, ldn, nvservices, pcv, capmtp, nvnflinger, pcie, account, ns, nfc, psc, capsrv, am, ssl, nim, btm, erpt, vi, pctl, npns, eupld, glue, eclct, es, fatal, creport, ro, sdb, grc, migration, jpegdec, safemode, olsc, ngct, jit, pgl, omm, eth, ngc.
- SystemData (non-sysver): CertStore, ErrorMessage, MiiModel, Help, NgWord, SsidList, LocalNews, TimeZoneBinary, FontNintendoExtension, FontStandard, FontKorean, FontChineseTraditional, FontChineseSimple, FirmwareDebugSettings, BootImagePackage, BootImagePackageSafe, BootImagePackageExFat, FatalMessage, PlatformConfigIcosa, PlatformConfigCopper, PlatformConfigHoag, ControllerFirmware, NgWord2, BootImagePackageExFatSafe, PlatformConfigIcosaMariko, ContentActionTable, NgWordT, PlatformConfigAula, AulaDockFirmware.
- Applets: qlaunch, auth, cabinet, error, netConnect, playerSelect, overlayDisp, "starter" application.
NPDM changes (besides usual version-bump):
- ptm: Service access: removed ovln:snd.
- bsdsocket: Service server access: added bsd:a, dns:priv.
- ldn: Service access: added lm.
- ns: Service access: added ldn:s.
- ldn is currently unused in the main-codebin (on NX at least).
- psc: Service access: added ovln:snd, psc:m.
- ssl: Service access: added srepo:u, arp:r.
- es: Service access: added ssl:s.
- qlaunch: Service access: removed htcs.
- auth: Service access: added htcs:sys, removed htcs.
- cabinet: Service access: added htcs:sys, ngc:u, removed htcs.
- error: Service access: removed htcs.
- netConnect: Service access: added htcs:sys, removed htcs.
- playerSelect: Service access: removed htcs.
- overlayDisp: Service access: added htcs:sys, removed htcs.
RomFs changes:
- ErrorMessage: updated
- Help: "/legallines.htdocs/index.html" updated
- NgWord: "/0.txt" updated, "/common.txt" updated, "/version.dat" updated
- SystemVersion: All files updated.
- LocalNews: "/message/KRko/localNews.msbt.szs" updated, "/message/revision.txt" updated
- FirmwareDebugSettings: All files updated.
- NgWord2: "/ac_0_not_b_nx" updated, "/ac_common_b2_nx" updated, "/ac_common_not_b_nx" updated, "/version.dat" updated
- RebootlessSystemUpdateVersion: All files updated.
- NgWordT: All files updated.
- qlaunch applet:
- "/lyt/": Various data updated.
- "/message/": Various data updated.
- "/sound/qlaunch_action.bksnd" updated
- auth applet: "/lyt/Auth.szs" updated, "/lyt/common.szs" updated, "/message/KRko/auth.msbt.szs" updated, "/message/KRko/common.msbt.szs" updated, "/message/Ocean.msbp.szs" updated, "/sound/auth_action.bksnd" updated
- cabinet applet:
- "/common/shader/VarietyOceanShader_Nx.arc.szs" updated
- "/lyt/": Various data updated.
- "/message/": Various data updated.
- "/sound/cabinet_action.bksnd" updated
- error applet: "/lyt/common.szs" updated, "/lyt/Error.szs" updated, "/message/KRko/common.msbt.szs" updated, "/message/Ocean.msbp.szs" updated, "/sound/error_action.bksnd" updated
- netConnect applet: "/lyt/common.szs" updated, "/lyt/NetConnect.szs" updated, "/message/KRko/common.msbt.szs" updated, "/message/KRko/netConnect.msbt.szs" updated, "/message/Ocean.msbp.szs" updated, "/sound/netConnect_action.bksnd" updated
- playerSelect applet: "/lyt/common.szs" updated, "/message/KRko/common.msbt.szs" updated, "/message/Ocean.msbp.szs" updated, "/sound/playerSelect_action.bksnd" updated
- overlayDisp applet:
- "/lyt/": Various data updated.
- "/message/": Various data updated.
- "/sound/overlayDisp_action.bksnd" updated
- "starter" application:
- "/common/shader/VarietyOceanShader_Nx.arc.szs" updated
- "/lyt/": Various data updated.
- "/message/": Various data updated.
- "/sound/starter_action.bksnd" updated
IPC Interface Changes
- Interface Changed: nn::settings::ISettingsServer
- Added: 12 - buffer_entry_sizes: [0x1000], buffers: [0x16], inbytes: 0x4, outbytes: 0x0
- Interface Changed: nn::settings::ISystemSettingsServer
- Added: 251 - buffer_entry_sizes: [0x18], buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Added: 252 - buffer_entry_sizes: [0x18], buffers: [0x5], inbytes: 0x0, outbytes: 0x0
- Unknown Interface prev-version: 0x710007AF24
- Unknown Interface cur-version: 0x710007CD3C
- Interface Changed: nn::friends::detail::ipc::IFriendService
- Added: 10111 - buffers: [0x6], inbytes: 0x20, outbytes: 0x4
- Added: 10501 - buffer_entry_sizes: [0x100, 0x8], buffers: [0x6, 0x9], inbytes: 0x10, outbytes: 0x0
- Added: 11001 - inbytes: 0xA4, outbytes: 0xA0
- Interface Changed: nn::friends::detail::ipc::IServiceCreator
- Changed: 2 - outinterfaces: ['0x710007AF24'] -> ['0x710007CD3C'] (final state: inbytes: 0x0, outbytes: 0x0, outinterfaces: ['0x710007CD3C'])
- Interface Changed: nn::nifm::detail::IGeneralService
- Added: 44 - inbytes: 0x0, outbytes: 0x1
- Added: 45 - inbytes: 0x0, outbytes: 0x1
- Added: 46 - inbytes: 0x4, outbytes: 0x0
- Added: 49 - inbytes: 0x0, outbytes: 0x4
- Added: 50 - inbytes: 0x0, outbytes: 0x1
- Added: 51 - buffer_entry_sizes: [0x410], buffers: [0x15], inbytes: 0x1, outbytes: 0x8
- Added: 52 - inbytes: 0x8, outbytes: 0x0
- Interface Removed: nn::ts::server::IMeasurementServer
- Interface Added: nn::ts::server::ITsManager
- Interface Changed: nn::psm::IPsmServer
- Added: 19 - inbytes: 0x0, outbytes: 0x0
- Added: 20 - inbytes: 0x0, outbytes: 0x0
- Interface Removed: nn::socket::sf::IClient_MC
- Interface Added: nn::socket::resolver::IPrivateResolver
- Interface Added: nn::socket::sf::IClient
- Interface Changed: nn::hid::IHidDebugServer
- Added: 18 - buffer_entry_sizes: [0x28], buffers: [0x5], inbytes: 0x8, outbytes: 0x0, pid: True
- Changed: 225 - outbytes: 0x18 -> 0x20 (final state: inbytes: 0x8, outbytes: 0x20)
- Added: 601 - inbytes: 0x6, outbytes: 0x1
- Added: 602 - inbytes: 0x0, outbytes: 0x1
- Added: 603 - inbytes: 0x6, outbytes: 0x0
- Added: 604 - inbytes: 0x0, outbytes: 0x0
- Added: 605 - inbytes: 0x7, outbytes: 0x0
- Added: 606 - inbytes: 0x1, outbytes: 0x0
- Added: 607 - inbytes: 0x6, outbytes: 0x1
- Added: 608 - inbytes: 0x0, outbytes: 0x1
- Added: 609 - buffer_entry_sizes: [0x2C8], buffers: [0x15], inbytes: 0x0, outbytes: 0x0
- Added: 610 - buffer_entry_sizes: [0x2C8], buffers: [0x15], inbytes: 0x6, outbytes: 0x0
- Added: 611 - buffer_entry_sizes: [0x1C8], buffers: [0x15], inbytes: 0x6, outbytes: 0x0
- Added: 612 - buffer_entry_sizes: [0x1A0], buffers: [0x15], inbytes: 0x6, outbytes: 0x0
- Added: 613 - buffer_entry_sizes: [0x2C8], buffers: [0x16], inbytes: 0x0, outbytes: 0x0
- Added: 614 - buffer_entry_sizes: [0x2C8], buffers: [0x16], inbytes: 0x6, outbytes: 0x0
- Added: 615 - buffer_entry_sizes: [0x1C8], buffers: [0x16], inbytes: 0x6, outbytes: 0x0
- Added: 616 - buffer_entry_sizes: [0x1A0], buffers: [0x16], inbytes: 0x6, outbytes: 0x0
- Interface Changed: nn::hid::IHidServer
- Added: 92 - inbytes: 0x10, outbytes: 0x0, pid: True
- Interface Changed: nn::hid::IHidSystemServer
- Added: 813 - inbytes: 0x8, outbytes: 0x4
- Removed: 1200 - inbytes: 0x6, outbytes: 0x1
- Removed: 1201 - inbytes: 0x0, outbytes: 0x1
- Removed: 1202 - inbytes: 0x6, outbytes: 0x0
- Removed: 1203 - inbytes: 0x0, outbytes: 0x0
- Removed: 1204 - inbytes: 0x7, outbytes: 0x0
- Removed: 1205 - inbytes: 0x1, outbytes: 0x0
- Removed: 1206 - inbytes: 0x6, outbytes: 0x1
- Removed: 1207 - inbytes: 0x0, outbytes: 0x1
- Removed: 1208 - buffer_entry_sizes: [0x2C8], buffers: [0x15], inbytes: 0x0, outbytes: 0x0
- Removed: 1209 - buffer_entry_sizes: [0x2C8], buffers: [0x15], inbytes: 0x6, outbytes: 0x0
- Removed: 1211 - buffer_entry_sizes: [0x1A0], buffers: [0x15], inbytes: 0x6, outbytes: 0x0
- Removed: 1212 - buffer_entry_sizes: [0x2C8], buffers: [0x16], inbytes: 0x0, outbytes: 0x0
- Removed: 1213 - buffer_entry_sizes: [0x2C8], buffers: [0x16], inbytes: 0x6, outbytes: 0x0
- Removed: 1214 - buffer_entry_sizes: [0x1C8], buffers: [0x16], inbytes: 0x6, outbytes: 0x0
- Removed: 1215 - buffer_entry_sizes: [0x1A0], buffers: [0x16], inbytes: 0x6, outbytes: 0x0
- Added: 1308 - inbytes: 0x10, outbytes: 0x0
- Added: 1309 - inbytes: 0x8, outbytes: 0x1
- Removed: 12010 - buffer_entry_sizes: [0x1C8], buffers: [0x15], inbytes: 0x6, outbytes: 0x0
- Interface Changed: nn::audio::detail::IAudioDevice
- Added: 19 - inbytes: 0x1, outbytes: 0x0
- Added: 20 - inbytes: 0x0, outbytes: 0x1
- Interface Changed: nn::audio::detail::IAudioSystemManagerForApplet
- Added: 10 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Interface Changed: nn::audioctrl::detail::IAudioController
- Removed: 6 - inbytes: 0x4, outbytes: 0x1
- Interface Added: nn::ldn::detail::IClientProcessMonitor
- Interface Changed: nn::ldn::detail::ISystemLocalCommunicationService
- Added: 106 - inbytes: 0x4, outbytes: 0x0
- Added: 500 - inbytes: 0x80, outbytes: 0x0
- Added: 501 - inbytes: 0x0, outbytes: 0x0
- Added: 502 - buffers: [0x21], inbytes: 0x14, outbytes: 0x0
- Added: 503 - buffers: [0x22], inbytes: 0x4, outbytes: 0x18
- Added: 505 - inbytes: 0x4, outbytes: 0x0
- Added: 600 - inbytes: 0x2, outbytes: 0x0
- Added: 601 - inbytes: 0x0, outbytes: 0x0
- Interface Changed: nn::ldn::detail::ISystemServiceCreator
- Added: 1 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::ldn::detail::IClientProcessMonitor']
- Interface Changed: nn::ldn::detail::IUserLocalCommunicationService
- Added: 106 - inbytes: 0x4, outbytes: 0x0
- Added: 500 - inbytes: 0x80, outbytes: 0x0
- Added: 501 - inbytes: 0x0, outbytes: 0x0
- Added: 502 - buffers: [0x21], inbytes: 0x14, outbytes: 0x0
- Added: 503 - buffers: [0x22], inbytes: 0x4, outbytes: 0x18
- Added: 505 - inbytes: 0x4, outbytes: 0x0
- Added: 600 - inbytes: 0x2, outbytes: 0x0
- Added: 601 - inbytes: 0x0, outbytes: 0x0
- Interface Changed: nn::ldn::detail::IUserServiceCreator
- Added: 1 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::ldn::detail::IClientProcessMonitor']
- Unknown Interface prev-version: 0x7100005828
- Unknown Interface cur-version: 0x7100005438
- Interface Changed: nn::clkrst::IClkrstSession
- Added: 14 - inbytes: 0x0, outbytes: 0x0
- Added: 15 - inbytes: 0x0, outbytes: 0x0
- Interface Changed: nn::rtc::IRtcManager
- Added: 12 - inbytes: 0x8, outbytes: 0x0
- Added: 13 - inbytes: 0x8, outbytes: 0x0
- Interface Changed: nn::account::IAccountEntityServiceForAccountPolicy
- Added: 400 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0
- Added: 401 - inbytes: 0x10, outbytes: 0x4
- Added: 402 - buffers: [0x6], inbytes: 0x10, outbytes: 0x4
- Added: 410 - inbytes: 0x10, outbytes: 0x8
- Added: 411 - inbytes: 0x10, outbytes: 0x0
- Added: 412 - inbytes: 0x10, outbytes: 0x0
- Interface Changed: nn::account::IAccountServiceForAdministrator
- Added: 400 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0
- Added: 401 - inbytes: 0x10, outbytes: 0x4
- Added: 402 - buffers: [0x6], inbytes: 0x10, outbytes: 0x4
- Added: 410 - inbytes: 0x10, outbytes: 0x8
- Added: 411 - inbytes: 0x10, outbytes: 0x0
- Added: 412 - inbytes: 0x10, outbytes: 0x0
- Interface Changed: nn::account::IAccountServiceForSystemService
- Added: 401 - inbytes: 0x10, outbytes: 0x4
- Added: 402 - buffers: [0x6], inbytes: 0x10, outbytes: 0x4
- Interface Changed: nn::account::IAccountServiceForSystemServiceWithProfileEditor
- Added: 401 - inbytes: 0x10, outbytes: 0x4
- Added: 402 - buffers: [0x6], inbytes: 0x10, outbytes: 0x4
- Interface Changed: nn::account::baas::IAdministrator
- Added: 180 - buffer_entry_sizes: [0x1000, 0x100], buffers: [0x1A, 0x1A], inbytes: 0x4, outbytes: 0x0
- Interface Changed: nn::account::baas::IFloatingRegistrationRequest
- Added: 16 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Interface Changed: nn::account::baas::IGuestLoginRequest
- Added: 16 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Interface Changed: nn::account::baas::IManagerForSystemService
- Added: 180 - buffer_entry_sizes: [0x1000, 0x100], buffers: [0x1A, 0x1A], inbytes: 0x4, outbytes: 0x0
- Interface Changed: nn::account::nas::IOAuthProcedureForExternalNsa
- Added: 104 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Interface Changed: nn::account::nas::IOAuthProcedureForUserRegistration
- Added: 104 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Added: 230 - buffers: [0x5], inbytes: 0x21, outbytes: 0x0, outinterfaces: ['nn::account::detail::IAsyncContext']
- Interface Changed: nn::account::profile::IProfile
- Added: 20 - inbytes: 0x0, outbytes: 0x4
- Added: 21 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Added: 30 - inbytes: 0x0, outbytes: 0x10
- Interface Changed: nn::account::profile::IProfileEditor
- Added: 20 - inbytes: 0x0, outbytes: 0x4
- Added: 21 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Added: 30 - inbytes: 0x0, outbytes: 0x10
- Added: 110 - buffer_entry_sizes: [0x80, 0x0], buffers: [0x19, 0x5], inbytes: 0x38, outbytes: 0x0
- Interface Changed: nn::account::IAccountServiceForAdministrator
- Added: 400 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0
- Added: 401 - inbytes: 0x10, outbytes: 0x4
- Added: 402 - buffers: [0x6], inbytes: 0x10, outbytes: 0x4
- Added: 410 - inbytes: 0x10, outbytes: 0x8
- Added: 411 - inbytes: 0x10, outbytes: 0x0
- Added: 412 - inbytes: 0x10, outbytes: 0x0
- Interface Changed: nn::account::IAccountServiceForSystemService
- Added: 401 - inbytes: 0x10, outbytes: 0x4
- Added: 402 - buffers: [0x6], inbytes: 0x10, outbytes: 0x4
- Interface Changed: nn::account::baas::IAdministrator
- Added: 180 - buffer_entry_sizes: [0x1000, 0x100], buffers: [0x1A, 0x1A], inbytes: 0x4, outbytes: 0x0
- Interface Changed: nn::account::baas::IFloatingRegistrationRequest
- Added: 16 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Interface Changed: nn::account::baas::IGuestLoginRequest
- Added: 16 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Interface Changed: nn::account::baas::IManagerForSystemService
- Added: 180 - buffer_entry_sizes: [0x1000, 0x100], buffers: [0x1A, 0x1A], inbytes: 0x4, outbytes: 0x0
- Interface Changed: nn::account::nas::IOAuthProcedureForExternalNsa
- Added: 104 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Interface Changed: nn::account::nas::IOAuthProcedureForUserRegistration
- Added: 104 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Added: 230 - buffers: [0x5], inbytes: 0x21, outbytes: 0x0, outinterfaces: ['nn::account::detail::IAsyncContext']
- Interface Changed: nn::account::profile::IProfile
- Added: 20 - inbytes: 0x0, outbytes: 0x4
- Added: 21 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Added: 30 - inbytes: 0x0, outbytes: 0x10
- Interface Changed: nn::account::profile::IProfileEditor
- Added: 20 - inbytes: 0x0, outbytes: 0x4
- Added: 21 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Added: 30 - inbytes: 0x0, outbytes: 0x10
- Added: 110 - buffer_entry_sizes: [0x80, 0x0], buffers: [0x19, 0x5], inbytes: 0x38, outbytes: 0x0
- Interface Changed: nn::ns::detail::IApplicationManagerInterface
- Changed: 94 - inbytes: 0x48 -> 0x58 (final state: inbytes: 0x58, outbytes: 0x8)
- Changed: 95 - outbytes: 0x40 -> 0x50 (final state: inbytes: 0x8, outbytes: 0x50)
- Changed: 96 - outbytes: 0x40 -> 0x50 (final state: inbytes: 0x8, outbytes: 0x50)
- Changed: 97 - inbytes: 0x40 -> 0x50 (final state: inbytes: 0x50, outbytes: 0x1)
- Changed: 406 - inbytes: 0x48 -> 0x58 (final state: buffer_entry_sizes: [0x4000], buffers: [0x16], inbytes: 0x58, outbytes: 0x0)
- Changed: 2513 - inbytes: 0x40 -> 0x50 (final state: inbytes: 0x50, outbytes: 0x8)
- Changed: 2517 - inbytes: 0x40 -> 0x50 (final state: inbytes: 0x50, outbytes: 0x8)
- Added: 3015 - inbytes: 0x0, outbytes: 0x0, outhandles: [1]
- Added: 3104 - buffers: [0x6], inbytes: 0x8, outbytes: 0x8
- Added: 3105 - buffers: [0x6], inbytes: 0x8, outbytes: 0x8
- Added: 5000 - inbytes: 0x10, outbytes: 0x0, outhandles: [1], outinterfaces: ['nn::ns::detail::IAsyncData']
- Added: 5001 - inbytes: 0x8, outbytes: 0x0, outhandles: [1], outinterfaces: ['nn::ns::detail::IAsyncData']
- Interface Changed: nn::ns::detail::IDevelopInterface
- Removed: 8 - buffers: [0x5], inbytes: 0x4, outbytes: 0x8
- Removed: 9 - inbytes: 0x10, outbytes: 0x8
- Removed: 15 - buffers: [0x5], inbytes: 0x0, outbytes: 0x8
- Changed: 17 - outbytes: 0x40 -> 0x50 (final state: buffers: [0x5], inbytes: 0x4, outbytes: 0x50)
- Changed: 18 - inbytes: 0x40 -> 0x50 (final state: inbytes: 0x50, outbytes: 0x0, outhandles: [1])
- Changed: 19 - inbytes: 0x40 -> 0x50 (final state: inbytes: 0x50, outbytes: 0x0)
- Added: 21 - inbytes: 0x10, outbytes: 0x50
- Added: 22 - inbytes: 0x50, outbytes: 0x8
- Added: 23 - inbytes: 0x50, outbytes: 0x8
- Added: 24 - inbytes: 0x0, outbytes: 0x0
- Interface Changed: nn::ns::detail::IDynamicRightsInterface
- Added: 26 - inbytes: 0x0, outbytes: 0x1
- Interface Changed: nn::ns::detail::IVulnerabilityManagerInterface
- Added: 3100 - inbytes: 0x0, outbytes: 0x10
- Added: 3101 - inbytes: 0x0, outbytes: 0x0, outhandles: [1], outinterfaces: ['nn::ns::detail::IAsyncResult']
- Added: 3102 - inbytes: 0x0, outbytes: 0x0
- Interface Added: nn::hshl::IVsysVoltageSession
- Interface Changed: nn::hshl::IChargeSetterSession
- Added: 4 - inbytes: 0x1, outbytes: 0x0
- Interface Changed: nn::hshl::IManager
- Added: 11 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::hshl::IVsysVoltageSession']
- Added: 12 - inbytes: 0x0, outbytes: 0x1
- Interface Changed: nn::hshl::ISetterManager
- Added: 4 - inbytes: 0x0, outbytes: 0x0
- Added: 5 - inbytes: 0x0, outbytes: 0x0
- Interface Changed: nn::capsrv::sf::IAlbumAccessorService
- Added: 141 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Added: 151 - buffer_entry_sizes: [0x400], buffers: [0x16], inbytes: 0x18, outbytes: 0x40
- Added: 160 - buffers: [0x6], inbytes: 0x20, outbytes: 0x8
- Interface Changed: nn::capsrv::sf::IAlbumAccessorSession
- Added: 5000 - inbytes: 0x8, outbytes: 0x8
- Interface Changed: nn::capsrv::sf::IAlbumApplicationService
- Added: 148 - buffer_entry_sizes: [0x20], buffers: [0x6], inbytes: 0x20, outbytes: 0x8, pid: True
- Interface Changed: nn::capsrv::sf::IAlbumControlSession
- Added: 2435 - inbytes: 0x10, outbytes: 0x0
- Added: 5000 - inbytes: 0x8, outbytes: 0x8
- Interface Added: nn::am::service::INotificationReceiver
- Interface Added: nn::am::service::INotificationSender
- Interface Added: nn::am::service::IReceiverService
- Interface Added: nn::am::service::ISenderService
- Interface Changed: nn::am::service::IAppletCommonFunctions
- Added: 82 - inbytes: 0x1, outbytes: 0x0
- Added: 160 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::am::service::IReceiverService']
- Added: 161 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::am::service::ISenderService']
- Interface Changed: nn::am::service::IDebugFunctions
- Added: 53 - inbytes: 0x8, outbytes: 0x8
- Added: 410 - inbytes: 0x10, outbytes: 0x0
- Added: 411 - buffers: [0x22], inbytes: 0x10, outbytes: 0x8
- Added: 412 - buffers: [0x21], inbytes: 0x10, outbytes: 0x0
- Interface Changed: nn::am::service::IOverlayFunctions
- Added: 40 - buffers: [0x6], inbytes: 0x0, outbytes: 0x8
- Added: 41 - buffers: [0x6], inbytes: 0x0, outbytes: 0x8
- Interface Changed: nn::ssl::sf::ISslServiceForSystem
- Added: 103 - buffers: [0x5, 0x5, 0x5], inbytes: 0x0, outbytes: 0x0
- Interface Changed: nn::nim::detail::INetworkInstallManager
- Added: 147 - buffer_entry_sizes: [0x8], buffers: [0x5], inbytes: 0x0, outbytes: 0x0, outhandles: [1], outinterfaces: ['nn::nim::detail::IAsyncResult']
- Added: 148 - buffer_entry_sizes: [0x10], buffers: [0x5], inbytes: 0x0, outbytes: 0x0, outhandles: [1], outinterfaces: ['nn::nim::detail::IAsyncResult']
- Interface Changed: nn::capsrv::sf::IScreenShotControlService
- Added: 1100 - buffers: [0x45], inbytes: 0x28, outbytes: 0x0
- Changed: 1106 - buffer_entry_sizes: [0x400, 0x404, 0x0, 0x0, 0x0] -> [0x400, 0x404, 0x88, 0x0, 0x0, 0x0], buffers: [0x15, 0x15, 0x6, 0x46, 0x46] -> [0x15, 0x15, 0x15, 0x6, 0x46, 0x46] (final state: buffer_entry_sizes: [0x400, 0x404, 0x88, 0x0, 0x0, 0x0], buffers: [0x15, 0x15, 0x15, 0x6, 0x46, 0x46], inbytes: 0x68, outbytes: 0x18)
- Changed: 1107 - buffer_entry_sizes: [0x400, 0x404, 0x0, 0x0] -> [0x400, 0x404, 0x88, 0x0, 0x0], buffers: [0x15, 0x15, 0x6, 0x45] -> [0x15, 0x15, 0x15, 0x6, 0x45] (final state: buffer_entry_sizes: [0x400, 0x404, 0x88, 0x0, 0x0], buffers: [0x15, 0x15, 0x15, 0x6, 0x45], inbytes: 0x68, outbytes: 0x18)
- Added: 1108 - buffer_entry_sizes: [0x400, 0x404, 0x88, 0x0], buffers: [0x15, 0x15, 0x15, 0x6], inbytes: 0x70, outbytes: 0x18
- Interface Changed: nn::pctl::detail::ipc::IParentalControlService
- Added: 1475 - inbytes: 0x0, outbytes: 0x0, outhandles: [1]
- Added: 1954 - inbytes: 0x0, outbytes: 0x1
- Added: 1955 - inbytes: 0x0, outbytes: 0x8
- Added: 1956 - inbytes: 0x0, outbytes: 0x1
- Added: 1957 - inbytes: 0x0, outbytes: 0x1
- Added: 145601 - inbytes: 0x0, outbytes: 0x36
- Added: 195101 - inbytes: 0x36, outbytes: 0x0
- Interface Added: nn::npns::ISetNetworkServiceAccountIdTokenContext
- Interface Changed: nn::npns::INotificationReceiver
- Added: 5 - buffers: [0x9], inbytes: 0x0, outbytes: 0x0
- Interface Changed: nn::npns::INpnsSystem
- Added: 8 - buffers: [0x9], inbytes: 0x0, outbytes: 0x0
- Removed: 13 - buffers: [0x9], inbytes: 0x0, outbytes: 0x1
- Added: 14 - buffers: [0x9], inbytes: 0x8, outbytes: 0x0
- Added: 15 - buffers: [0x9], inbytes: 0x8, outbytes: 0x0
- Added: 16 - buffer_entry_sizes: [0x28], buffers: [0x6], inbytes: 0x8, outbytes: 0x4
- Added: 28 - buffers: [0x9], inbytes: 0x10, outbytes: 0x28
- Added: 29 - buffers: [0x9], inbytes: 0x10, outbytes: 0x0
- Added: 37 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0
- Added: 51 - buffers: [0x9], inbytes: 0x0, outbytes: 0x0
- Added: 106 - inbytes: 0x0, outbytes: 0x8
- Added: 107 - inbytes: 0x8, outbytes: 0x0
- Added: 156 - buffers: [0x9], inbytes: 0x10, outbytes: 0x0, outinterfaces: [None]
- Added: 301 - buffers: [0xA], inbytes: 0x0, outbytes: 0x0
- Added: 302 - buffer_entry_sizes: [0x10, 0x0], buffers: [0xA, 0xA], inbytes: 0x0, outbytes: 0x8
- Added: 303 - buffer_entry_sizes: [0x138, 0x138], buffers: [0x6, 0x6], inbytes: 0x0, outbytes: 0x8
- Added: 304 - inbytes: 0x0, outbytes: 0x50
- Added: 305 - buffer_entry_sizes: [0x48], buffers: [0x6], inbytes: 0x4, outbytes: 0x8
- Added: 306 - buffers: [0x6, 0x9], inbytes: 0x0, outbytes: 0x8
- Interface Changed: nn::npns::INpnsUser
- Added: 8 - buffers: [0x9], inbytes: 0x0, outbytes: 0x0
- Interface Changed: nn::es::IActiveRightsContext
- Changed: 901 - buffer_entry_sizes: [0x24] -> [0x2C] (final state: buffer_entry_sizes: [0x2C], buffers: [0x16], inbytes: 0x0, outbytes: 0x0)
- Interface Changed: nn::es::IETicketService
- Added: 101 - buffers: [0x5, 0x5], inbytes: 0x0, outbytes: 0x0
- Added: 102 - inbytes: 0x0, outbytes: 0x0
- Added: 103 - inbytes: 0x0, outbytes: 0x4
- Added: 104 - buffer_entry_sizes: [0x10], buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Added: 201 - buffers: [0x5, 0x5], inbytes: 0x0, outbytes: 0x0
- Added: 202 - inbytes: 0x0, outbytes: 0x0
- Added: 203 - inbytes: 0x0, outbytes: 0x4
- Added: 204 - buffer_entry_sizes: [0x10], buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Added: 1028 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0
- Interface Changed: nn::ndrm::low::detail::INdrmLowAdminInterface
- Added: 46 - inbytes: 0x8, outbytes: 0x1
- Interface Changed: nn::grcsrv::IGrcService
- Changed: 1 - inbytes: 0x20 -> 0x28 (final state: inbytes: 0x28, inhandles: [1], outbytes: 0x0, outinterfaces: ['nn::grcsrv::IContinuousRecorder'])
- Added: 10 - inbytes: 0x20, outbytes: 0x0, outinterfaces: ['nn::grcsrv::IContinuousRecorder']
- Interface Added: nn::sf::hipc::detail::IHipcManager
- Interface Changed: nn::capsrv::sf::IDecoderControlService
- Added: 4002 - buffers: [0x46, 0x5], inbytes: 0x30, outbytes: 0x8
- Interface Added: nn::olsc::srv::IServiceGetter
- Interface Changed: nn::spsm::detail::IPowerStateInterface
- Added: 15 - inbytes: 0x4, outbytes: 0x0
- Added: 16 - inbytes: 0x8, outbytes: 0x0
- Interface Added: nn::fssrv::sf::IMemoryStressor
- Interface Changed: nn::fssrv::sf::IDeviceOperator
- Added: 222 - buffers: [0x6], inbytes: 0x10, outbytes: 0x0
- Added: 302 - inbytes: 0x4, outbytes: 0x0
- Interface Changed: nn::fssrv::sf::IFileSystemProxy
- Added: 1020 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::IMemoryStressor']
- Removed: 1100 - buffers: [0x5], inbytes: 0x0, outbytes: 0x0
- Added: 1101 - buffers: [0x5], inbytes: 0x4, outbytes: 0x0
- Interface Changed: nn::fssrv::sf::ISaveDataDivisionExporter
- Removed: 70 - inbytes: 0x0, outbytes: 0x10
- Added: 74 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Interface Changed: nn::fssrv::sf::ISaveDataTransferManagerWithDivision
- Added: 8 - inbytes: 0x4, outbytes: 0x0
- Added: 9 - inbytes: 0x4, outbytes: 0x0
- Removed: 64 - buffers: [0x5], inbytes: 0x18, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::ISaveDataDivisionImporter']
- Removed: 65 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::ISaveDataDivisionImporter']
- Removed: 66 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::ISaveDataDivisionImporter']
- Interface Changed: nn::spl::detail::IEsInterface
- Added: 33 - buffers: [0x9, 0x9, 0x9], inbytes: 0x4, outbytes: 0x10
- Interface Added: nn::fssrv::sf::IMemoryStressor
- Interface Changed: nn::fssrv::sf::IDeviceOperator
- Added: 222 - buffers: [0x6], inbytes: 0x10, outbytes: 0x0
- Added: 302 - inbytes: 0x4, outbytes: 0x0
- Interface Changed: nn::fssrv::sf::IFileSystemProxy
- Added: 1020 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::IMemoryStressor']
- Removed: 1100 - buffers: [0x5], inbytes: 0x0, outbytes: 0x0
- Added: 1101 - buffers: [0x5], inbytes: 0x4, outbytes: 0x0
- Interface Changed: nn::fssrv::sf::ISaveDataDivisionExporter
- Removed: 70 - inbytes: 0x0, outbytes: 0x10
- Added: 74 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Interface Changed: nn::fssrv::sf::ISaveDataTransferManagerWithDivision
- Added: 8 - inbytes: 0x4, outbytes: 0x0
- Added: 9 - inbytes: 0x4, outbytes: 0x0
- Removed: 64 - buffers: [0x5], inbytes: 0x18, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::ISaveDataDivisionImporter']
- Removed: 65 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::ISaveDataDivisionImporter']
- Removed: 66 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::ISaveDataDivisionImporter']
- Interface Changed: nn::clkrst::IClkrstSession
- Added: 14 - inbytes: 0x0, outbytes: 0x0
- Added: 15 - inbytes: 0x0, outbytes: 0x0
- Interface Changed: nn::rtc::IRtcManager
- Added: 12 - inbytes: 0x8, outbytes: 0x0
- Added: 13 - inbytes: 0x8, outbytes: 0x0
- Interface Added: nn::hshl::IVsysVoltageSession
- Interface Changed: nn::hshl::IChargeSetterSession
- Added: 4 - inbytes: 0x1, outbytes: 0x0
- Interface Changed: nn::hshl::IManager
- Added: 11 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::hshl::IVsysVoltageSession']
- Added: 12 - inbytes: 0x0, outbytes: 0x1
- Interface Changed: nn::hshl::ISetterManager
- Added: 4 - inbytes: 0x0, outbytes: 0x0
- Added: 5 - inbytes: 0x0, outbytes: 0x0
- Interface Changed: nn::spl::detail::IEsInterface
- Added: 33 - buffers: [0x9, 0x9, 0x9], inbytes: 0x4, outbytes: 0x10
- Interface Added: nn::fssrv::sf::IMemoryStressor
- Interface Changed: nn::fssrv::sf::IDeviceOperator
- Added: 222 - buffers: [0x6], inbytes: 0x10, outbytes: 0x0
- Added: 302 - inbytes: 0x4, outbytes: 0x0
- Interface Changed: nn::fssrv::sf::IFileSystemProxy
- Added: 1020 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::IMemoryStressor']
- Removed: 1100 - buffers: [0x5], inbytes: 0x0, outbytes: 0x0
- Added: 1101 - buffers: [0x5], inbytes: 0x4, outbytes: 0x0
- Interface Changed: nn::fssrv::sf::ISaveDataDivisionExporter
- Removed: 70 - inbytes: 0x0, outbytes: 0x10
- Added: 74 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Interface Changed: nn::fssrv::sf::ISaveDataTransferManagerWithDivision
- Added: 8 - inbytes: 0x4, outbytes: 0x0
- Added: 9 - inbytes: 0x4, outbytes: 0x0
- Removed: 64 - buffers: [0x5], inbytes: 0x18, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::ISaveDataDivisionImporter']
- Removed: 65 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::ISaveDataDivisionImporter']
- Removed: 66 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::ISaveDataDivisionImporter']
- Interface Changed: nn::spl::detail::IEsInterface
- Added: 33 - buffers: [0x9, 0x9, 0x9], inbytes: 0x4, outbytes: 0x10
- Interface Added: nn::fssrv::sf::IMemoryStressor
- Interface Changed: nn::fssrv::sf::IDeviceOperator
- Added: 222 - buffers: [0x6], inbytes: 0x10, outbytes: 0x0
- Added: 302 - inbytes: 0x4, outbytes: 0x0
- Interface Changed: nn::fssrv::sf::IFileSystemProxy
- Added: 1020 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::IMemoryStressor']
- Removed: 1100 - buffers: [0x5], inbytes: 0x0, outbytes: 0x0
- Added: 1101 - buffers: [0x5], inbytes: 0x4, outbytes: 0x0
- Interface Changed: nn::fssrv::sf::ISaveDataDivisionExporter
- Removed: 70 - inbytes: 0x0, outbytes: 0x10
- Added: 74 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4
- Interface Changed: nn::fssrv::sf::ISaveDataTransferManagerWithDivision
- Added: 8 - inbytes: 0x4, outbytes: 0x0
- Added: 9 - inbytes: 0x4, outbytes: 0x0
- Removed: 64 - buffers: [0x5], inbytes: 0x18, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::ISaveDataDivisionImporter']
- Removed: 65 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::ISaveDataDivisionImporter']
- Removed: 66 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::ISaveDataDivisionImporter']
- Interface Changed: nn::clkrst::IClkrstSession
- Added: 14 - inbytes: 0x0, outbytes: 0x0
- Added: 15 - inbytes: 0x0, outbytes: 0x0
- Interface Changed: nn::rtc::IRtcManager
- Added: 12 - inbytes: 0x8, outbytes: 0x0
- Added: 13 - inbytes: 0x8, outbytes: 0x0
- Interface Added: nn::hshl::IVsysVoltageSession
- Interface Changed: nn::hshl::IChargeSetterSession
- Added: 4 - inbytes: 0x1, outbytes: 0x0
- Interface Changed: nn::hshl::IManager
- Added: 11 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::hshl::IVsysVoltageSession']
- Added: 12 - inbytes: 0x0, outbytes: 0x1
- Interface Changed: nn::hshl::ISetterManager
- Added: 4 - inbytes: 0x0, outbytes: 0x0
- Added: 5 - inbytes: 0x0, outbytes: 0x0
- Interface Changed: nn::spl::detail::IEsInterface
- Added: 33 - buffers: [0x9, 0x9, 0x9], inbytes: 0x4, outbytes: 0x10
BootImagePackages
RomFs changes: all files updated.
Using updated master-key: master_key_11 (previously master_key_10). See NCA for the KeyGeneration listing.
Kernel
- Compiler/libc was upgraded, this results in various minor optimizations throughout the whole kernel.
- Many, many minor changes that this is almost certainly the cause for, e.g. KThread::SuspendRequest now calculates requested value as (0x10 << suspend_type) instead of (1 << (suspend_type + 4)).
- Biggest one is that sp/lr are now much more commonly not saved to stack until actually needed, if a function has a return path which does not make calls/does not need lr/sp saved.
- Initialize0 changes:
- The physical base address of the kernel is now passed by KernelLdr for use during KernelSlab virtual memory region setup.
- This replaces the previous call to KInitialPageTable::GetPhysicalAddress.
- The physical base address of the kernel is now passed by KernelLdr for use during KernelSlab virtual memory region setup.
- SVC-handler accesses to the thread local region's disable count now use userspace access instructions.
- SvcSetHeapSize now only sets the output address on success.
- This wasn't a vulnerability before, because prior to this the ABI meant userland would receive whatever was in the userland register at call time.
- CreateProcessParameter now zeroes many fields before performing initialization.
- When making a deep copy of the KPageGroup for loading InitialProcess segments, a new helper with full error checking/etc is now used instead of doing the copy inline
- New CreateProcessFlag 0x2000 is "EnableReservedRegionExtraSize", when set the reserved region size is increased by (AddressSpaceSize / 8).
- Currently, CreateProcess will return svc::ResultInvalidState() unless all the following conditions are met:
- Address space type must be 39-bit
- System resource size must be > 0
- KTargetSystem::IsDebugMode() must be true.
- New InfoType (0x1C) "InfoType_ReservedRegionExtraSize" retrieves the extra size, which is a member of KPageTableBase.
- Loader does not currently support passing this flag in any capacity yet.
- nn::os::VammManager currently calculates the reserved region as [start, end - extra size], and will not map to the extra part of the region.
- Currently, CreateProcess will return svc::ResultInvalidState() unless all the following conditions are met:
- Various KPageTable(Base/Impl) changes:
- InitializeForProcess now takes in the create process flags directly instead of parsing as a bunch of bools.
- InitializeForProcess now performs much more complicated initialization/randomization of the four aslr'd regions, dividing them up before/after the process code using largest-region first selection for randomization order.
- KPageTableImpl's traversal functions now take an additional output byte (which is also a new member at +0x11 in the traversal block and in KMemoryRange), this is always set to zero.
- This byte is checked when traversing by ::Finalize and ::GetContiguousRangeWithMemoryState, but not other page table functions.
- This byte is also stored as a new member of the memory range struct returned by GetContiguousRangeWithMemoryState
- AllocateAndMapPagesImpl now takes in the page properties by reference instead of by value.
- Read/WriteReadDebugIoMemory now use simpler logic for determining the current readable size.
- The KMemoryBlock helper "ConvertToKMemoryPermission" was changed to only copy the user-write bit to KernelWrite.
- This fixes a longstanding bug where the input was AND'd with KMemoryPermission_UserReadWrite, and these bits were then ORR'd into the final permission <<='d with KernelShift.
- The intent here was to copy the user read/write permissions into the kernel read/write permissions, but KMemoryPermission_UserReadWrite is not bitmask 0x3, it's bitmask 0x1B (including the KernelRead/Write bits).
- Thus, previously this would allow an input with KernelRead bit to spuriously set the NotMapped bit, and an input with KernelWrite bit to spuriously set the unused top bit.
- This was unexploitable, except maybe for causing a kernel-mode access exception.
- HandleException now handles EsrEc_DataAbortEl0 specially when determining the debug exception type.
- When ESR_EL1.IFSC is 0b100001 ("Alignment Fault"), ExceptionType_UnalignedData is selected instead of ExceptionType_DataAbort.
- KMemoryManager(Impl)/KPageHeap changes:
- KPageHeap's heap_virtual_address member is now removed and is a part of KMemoryManagerImpl now (this is still unused in non-debug kernel).
- KMemoryManager::AllocatePageGroup now takes a parameter for the required minimum alignment for the page group.
- This is currently passed as 1 page (minimum alignment) at all callsites.
- SecureMonitor access was refactored, actual smc invocation is now in its own helper separate from interrupt disable/enable (and helpers which invoke without interrupt disable now exist).
audio
Besides IPC changes, vulns were fixed.
jit
Symbols were stripped from the main-codebin.
See Also
System update report(s):
Nintendo Switch System Versions | |
---|---|
1.0.0 | |
2.0.0 • 2.1.0 • 2.2.0 • 2.3.0 | |
3.0.0 • 3.0.1 • 3.0.2 | |
4.0.0 • 4.0.1 • 4.1.0 | |
5.0.0 • 5.0.1 • 5.0.2 • 5.1.0 | |
6.0.0 • 6.0.1 • 6.1.0 • 6.2.0 | |
7.0.0 • 7.0.1 | |
8.0.0 • 8.0.1 • 8.1.0 • 8.1.1 | |
9.0.0 • 9.0.1 • 9.1.0 • 9.2.0 | |
10.0.0 • 10.0.1 • 10.0.2 • 10.0.3 • 10.0.4 • 10.1.0 • 10.1.1 • 10.2.0 | |
11.0.0 • 11.0.1 | |
12.0.0 • 12.0.1 • 12.0.2 • 12.0.3 • 12.1.0 | |
13.0.0 • 13.1.0 • 13.2.0 • 13.2.1 | |
14.0.0 • 14.1.0 • 14.1.1 • 14.1.2 | |
15.0.0 • 15.0.1 | |
16.0.0 • 16.0.1 • 16.0.2 • 16.0.3 • 16.1.0 | |
17.0.0 • 17.0.1 | |
18.0.0 • 18.0.1 • 18.1.0 |