20.1.0: Difference between revisions

Created page with "The Switch 20.1.0 system update was released on May 28, 2025 (UTC). 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== [https://en-americas-support.nintendo.com/app/answers/detail/a_id/22525/kw/nintendo%20switch%20system%20update Official] ALL change-log: * * Visual updates have been made to the Pa..."
 
 
(23 intermediate revisions by 3 users not shown)
Line 19: Line 19:


[[NPDM]] changes (besides usual version-bump): none.
[[NPDM]] changes (besides usual version-bump): none.
Sysmodules were rebuilt with latest SDK, unless noted otherwise the only .text changes are from sdkver-update / logging-constants-update. The sysmodules with actual changes are (besides ones with IPC changes):
* bcat, nifm, audio, ldn, account, psc, am, vi, pctl, es, ro, migration, ...
The sysmodules which only have changes from updated SDK / logging-constants-update, are:
* bluetooth, bsdsocket, capmtp, nfc, btm, glue, grc, creport, sdb, jit, safemode, ...


RomFs changes:
RomFs changes:
Line 120: Line 126:
** "/sound/splay_action.bksnd" updated
** "/sound/splay_action.bksnd" updated
** "/sound/splay.bfsar" updated
** "/sound/splay.bfsar" updated
=== IPC Interface Changes ===
* Unknown Interface prev-version: 0x710008741C
* Unknown Interface cur-version: 0x710008741C
* Interface Changed: nn::hid::IHidDebugServer
** Added:    214 - inbytes: 0x8, outbytes: 0x1D
* Interface Changed: nn::hid::IHidSystemServer
** Added:    1158 - inbytes: 0x1, outbytes: 0x0
** Added:    1159 - inbytes: 0x0, outbytes: 0x0
* Interface Changed: nn::wlan::detail::IWirelessCommunicationService
** Changed:  120 - outbytes: 0x28 -> 0x2C (final state: inbytes: 0x0, outbytes: 0x2C)
* Unknown Interface prev-version: 0x71000055E0
* Unknown Interface cur-version: 0x71000055E0
* Interface Changed: nn::ns::detail::IApplicationManagerInterface
** Added:    933 - buffers: [0x6], inbytes: 0x90, outbytes: 0x4
** Added:    2183 - inbytes: 0x8, outbytes: 0x0
* Interface Changed: nn::ns::detail::IContentManagementInterface
** Added:      58 - inbytes: 0x0, outbytes: 0x0
** Added:      71 - inbytes: 0x1, outbytes: 0x10
* Interface Changed: nn::ns::detail::IReadOnlyApplicationControlDataInterface
** Added:      17 - buffers: [0x6], inbytes: 0x90, outbytes: 0x4
* Interface Changed: nn::nim::detail::INetworkInstallManager
** Added:    173 - buffer_entry_sizes: [0x10], buffers: [0x5], inbytes: 0x0, outbytes: 0x0
* Unknown Interface prev-version: 0x7100097948 [ID = 0xfe214da9]
* Unknown Interface cur-version: 0x7100097948 [ID = 0xfe214da9]
* Unknown Interface prev-version: 0x710005ECA0 [ID = 0xef2a5618]
* Unknown Interface cur-version: 0x710005ECA0 [ID = 0xef2a5618]
* Unknown Interface prev-version: 0x710014064C [ID = 0x29d8801c]
* Unknown Interface cur-version: 0x71001408F8 [ID = 0x29d8801c]
* Interface Changed: nn::migration::user::IService
** Changed:  2250 - outinterfaces: ['0x710014064C [ID = 0x29d8801c]'] -> ['0x71001408F8 [ID = 0x29d8801c]'] (final state: inbytes: 0x18, inhandles: [1], outbytes: 0x0, outinterfaces: ['0x71001408F8 [ID = 0x29d8801c]'])
** Changed:  2260 - outinterfaces: ['0x710014064C [ID = 0x29d8801c]'] -> ['0x71001408F8 [ID = 0x29d8801c]'] (final state: inbytes: 0x4, inhandles: [1], outbytes: 0x0, outinterfaces: ['0x71001408F8 [ID = 0x29d8801c]'])
* Interface Changed: nn::olsc::srv::ITransferTaskListController
** Added:      26 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::olsc::srv::IRemoteStorageController']
** Added:      27 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::olsc::srv::IRemoteStorageController']
** Added:      28 - inbytes: 0x10, outbytes: 0x1
** Added:      29 - inbytes: 0x0, outbytes: 0x1
** Added:      30 - inbytes: 0x1, outbytes: 0x38
* Interface Changed: nn::omm::detail::IOperationModeManager
** Added:      50 - inbytes: 0x0, outbytes: 0x8


=== BootImagePackages ===
=== BootImagePackages ===
RomFs changes:
RomFs changes:
* "/nx/package2" updated
* "/nx/package2" updated
[[Package2|INI1]] changes:
* BootImagePackage/BootImagePackageExFat:
** All FIRM Sysmodules were just re-built, resulting in updated GNU build-id. The *only* changes besides this are:
*** Loader: Anti-downgrade list is updated.
*** FS: UpdateResult's logging constants/hashes were updated.
==== Kernel ====
* cpu::DoCoreInterruptBarrier now uses a KLightLock instead of a KSpinLock.
* Sleep entry now waits 1920 ticks after synchronizing cores and before saving the interrupt manager
* KInterruptController::SaveLocalState/RestoreLocalState now saves and restores spendsgir
=== [[BCAT_services|bcat]] ===
* Updated L_8bc30, prev ver @ L_8bc30.
** Prior to the last "if (inx1)" check, this now calls L_93164, with the required init before that if needed.
* Updated L_92fe4, prev ver @ L_92f84.
** This now returns 1 for success, 0 for failure (previously there was no retval).
* Updated L_93164, prev ver @ L_930dc.
** When inx1 doesn't match any of the state fields, it now skips to calling a func and returning. Previously when the input was invalid, it would use -1 as an arrayindex.
* Updated L_9b640, prev ver @ L_9b5c0.
** Code was moved around, etc.
* Updated L_9bc40, prev ver @ L_9bbc0.
** Minor changes?
* Updated L_a3d00, prev ver @ L_a3c70.
** When handling value 0x12C87A, w2 is now set to 0xE10 (3600) instead of 0x12C (300).
* Updated L_f1d90, prev ver @ L_f1d00.
** This is error-handling/conversion related.
=== [[Network_Interface_services|nifm]] ===
* Updated L_83c80, prev ver @ L_83c80.
** Code was added starting at 0x84b64.
* Updated L_a11d8, prev ver @ L_a10d8.
** Error handling was updated.
* Updated L_a176c, prev ver @ L_a1640.
** An additional state field is now cleared.
** Error handling was updated.
* Updated L_a1b20, prev ver @ L_a1978.
** An additional state field is now cleared.
* Updated L_a1c34, prev ver @ L_a1a1c.
** An additional state field is now cleared.
** Error handling was updated.
* Updated L_c0aa0, prev ver @ L_c0820.
** The call to nn::os::WaitSystemEvent was replaced with a call to nn::os::TimedWaitSystemEvent, with L_c0e70 being called if that returns false.
* The IPC func for the updated [[WLAN_services|wlan]] cmd was updated.
=== [[Audio_services|audio]] ===
Besides SDK (?) related changes:
* Updated L_26190, prev ver @ L_26130.
* Updated (changes seem to be minor (?)):
** L_268c0 prev ver @ L_26840
** L_26970 prev ver @ L_268d4
** L_26b38 prev ver @ L_26a6c
** L_27230 prev ver @ L_27130
** L_27618 prev ver @ L_274f8
** L_277a4 prev ver @ L_27654
=== [[LDN_services|ldn]] ===
Besides SDK related changes:
* Updated L_57000, prev ver @ L_56ffc.
* Updated L_767f0, prev ver @ L_76690.
** The code "if ({any byte at inx1+0x8 size 0x6-bytes} != 0xFF) return L_76fe0(...);" from prev ver was removed.
* Updated L_7e880, prev ver @ L_7e770.
** The call to nn::os::WaitSystemEvent was replaced with a call to nn::os::TimedWaitSystemEvent, with L_7ec60 being called if that returns false.
* Updated L_969f0, prev ver @ L_968d0.
** The func for "nn.lp2p.SendThread" branches to this func.
* The following had error handling updated:
** L_9beb4 prev ver @ L_9bd74
** L_9c614 prev ver @ L_9c4b4
** L_9c820 prev ver @ L_9c69c
=== [[PSC_services|psc]] ===
The only change was [[PSC_services|updating]] the cmd impl for srepo NotifyApplicationRightsInfo, with additional bits handled for the input u32.
=== [[Display_services|vi]] ===
All updated functionality is related to updating [[Display_services|caps:sc RequestTakingScreenShotEx1]].
=== [[RO_services|ro]] ===
* RoServer object now has two new fields, "m_SupportedPlatforms", "m_NumSupportedPlatforms".
** These are initialized for both JitPlugin and User servers to point to an array of size 1, containing only Platform 0 (NX).
* During NRR validation, the NRR platform byte (NRR + 0x6) is now checked to be contained within the server's supported platforms array before header is copied onto stack, if it is not then error 0xC16 is returned.
=== [[Migration_services|migration]] ===
Besides SDK related changes:
* Updated L_130a9c, prev ver @ L_13085c.
** This is the async task func started by IDownloader cmd500.
** Added code at 0x130b28 for calling L_1a6bf0. On fail, calls L_2e4 and L_30e24, then returns ret.
* Updated L_131bf8, prev ver @ L_131984.
** This is the actual task impl func, for the async task started by IDownloader cmd900.
** Added code at 0x131c64 for calling L_1a6bf0. On fail, calls L_2e4 and L_30e24, then returns ret.
* Updated L_146590, prev ver @ L_1462f0.
** The code at 0x1465f4 now checks for inw0>0x1400ff, instead of inw0>0x100000.
* New func L_1a6bf0, only called by the above.
=== [[JIT_services|jit]] ===
The only updated func was L_177b0 (this is the SDK func called by nn::ro::RegisterModuleInfo):
* The order of the validation after magicnum-check ([[NRR]]) was swapped.


==See Also==
==See Also==