22.0.0: Difference between revisions

No edit summary
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The Switch 22.0.0 system update was released on March 17, 2026 (UTC). This Switch update was released for the following regions: ALL.
The Switch 22.0.0 system update was released on March 17, 2026 (UTC). This Switch update was released for the following regions: ALL.


Security flaws fixed: <fill this in manually>.
Security flaws fixed: yes.
 
As of roughly March 31 - April 2, 2026 (UTC), this sysupdate is now required by dauth.  


==Change-log==
==Change-log==
Line 207: Line 209:


The anti-downgrade fuses were [[Fuses#Anti-downgrade|updated]].
The anti-downgrade fuses were [[Fuses#Anti-downgrade|updated]].
==== Kernel ====
* Compiler update (Clang 20?)
* KProcess::Run() and CreateThread() SVC now write the current thread handle to [[Thread_Local_Region|TLS+0x110]]
* Changes in and surrounding page table logic:
** KPageTableBase::LockForMapDeviceAddressSpace now checks for a new KPageTableBase boolean, m_allowed_exec_device_mapping, and decides between KMemoryPermission_None and KMemoryPermission_UserExecute for the permission mask value if the boolean is, respectively, set or not.
*** This prevents mapping any executable memory as device memory.
* ...
==== [[Loader_services|Loader]] ====
A new NSO compression method was introduced.
This is a customized variant of zstd and is used when NSO [[NSO0#Flags|flags]] have bit 7 set.
* ZSTD_MAGICNUMBER is set to 0x4349425A (b'ZBIC') instead of standard 0xFD2FB528
* ZSTD_LEGACY_SUPPORT is set to 0
* ZSTD_TRACE is set to 1, the version of zstd used is 1.5.7 (ZSTD_VERSION_NUMBER = 10507)
* FSE_readNCount is replaced with a BIC (Binary Interpolative Coding) version which improves compression of entropy tables significantly


=== [[NFC_services|nfc]] ===
=== [[NFC_services|nfc]] ===
A vuln was [[Switch_System_Flaws|fixed]].
A vuln was [[Switch_System_Flaws|fixed]].
=== [[Creport|creport]] ===
* In nnMain, a check for whether the process is an application was moved before calling the func which loads the DyingMessage data (previously located immediately after).
* The system ProgramIds were updated.
* The [[Error_Report_services|erpt]] field for EncryptedDyingMessage is now additionally only handled with an application process (same data loaded above).
* ...


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