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: | 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== | ||