16.0.0: Difference between revisions
No edit summary |
|||
(9 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
The Switch 16.0.0 system update was released on February 21, 2023 (UTC). This Switch update was released for the following regions: ALL, CHN. | The Switch 16.0.0 system update was released on February 21, 2023 (UTC). This Switch update was released for the following regions: ALL, CHN. | ||
Security flaws fixed: | Security flaws fixed: yes. | ||
On March 9, 2023 (UTC), the required system-version returned by [[Network|aqua]] for eShop contents-download was updated to this sysver. | |||
==Change-log== | ==Change-log== | ||
Line 60: | Line 62: | ||
* The following interfaces were changed: | * The following interfaces were changed: | ||
** nn::account::IAccountEntityServiceForAccountPolicy | ** nn::account::IAccountEntityServiceForAccountPolicy | ||
*** Added command 910 - inbytes: | *** Changed command 152 - buffer_entry_sizes: [0x401] -> [0x801] (final state: buffer_entry_sizes: [0x801], buffers: [0x1A], inbytes: 0x0, outbytes: 0x0) | ||
*** Added command 910 - inbytes: 0x0, outbytes: 0x0 | |||
** nn::account::IAccountServiceForAdministrator | ** nn::account::IAccountServiceForAdministrator | ||
*** Added command 910 - inbytes: | *** Changed command 152 - buffer_entry_sizes: [0x401] -> [0x801] (final state: buffer_entry_sizes: [0x801], buffers: [0x1A], inbytes: 0x0, outbytes: 0x0) | ||
*** Added command 910 - inbytes: 0x0, outbytes: 0x0 | |||
** nn::account::IAccountServiceForSystemService | |||
*** Changed command 152 - buffer_entry_sizes: [0x401] -> [0x801] (final state: buffer_entry_sizes: [0x801], buffers: [0x1A], inbytes: 0x0, outbytes: 0x0) | |||
** nn::account::IAccountServiceForSystemServiceWithProfileEditor | |||
*** Changed command 152 - buffer_entry_sizes: [0x401] -> [0x801] (final state: buffer_entry_sizes: [0x801], buffers: [0x1A], inbytes: 0x0, outbytes: 0x0) | |||
** nn::account::baas::IAdministrator | ** nn::account::baas::IAdministrator | ||
*** Added command 161 - inbytes: | *** Added command 161 - inbytes: 0x0, outbytes: 0x0 | ||
** nn::account::baas::IManagerForSystemService | ** nn::account::baas::IManagerForSystemService | ||
*** Added command 161 - inbytes: | *** Added command 161 - inbytes: 0x0, outbytes: 0x0 | ||
** nn::account::nas::IOAuthProcedureForNintendoAccountLinkage | ** nn::account::nas::IOAuthProcedureForNintendoAccountLinkage | ||
*** Added command 200 - buffers: [ | *** Added command 200 - buffers: [0x9, 0x9, 0x9], inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::account::detail::IAsyncContext'] | ||
** nn::am::service::IApplicationFunctions | ** nn::am::service::IApplicationFunctions | ||
*** Removed command 34 - buffers: [ | *** Removed command 34 - buffers: [0x5], inbytes: 0x0, outbytes: 0x1 | ||
** nn::am::service::IDebugFunctions | ** nn::am::service::IDebugFunctions | ||
*** Added command 51 - inbytes: | *** Added command 51 - inbytes: 0x4, outbytes: 0x0 | ||
*** Added command 300 - inbytes: | *** Added command 300 - inbytes: 0x0, outbytes: 0x0 | ||
** nn::am::service::IHomeMenuFunctions | ** nn::am::service::IHomeMenuFunctions | ||
*** Added command 50 - inbytes: | *** Added command 50 - inbytes: 0x0, outbytes: 0x0 | ||
*** Added command 51 - inbytes: | *** Added command 51 - inbytes: 0x0, outbytes: 0x0 | ||
** nn::aocsrv::detail::IAddOnContentManager | ** nn::aocsrv::detail::IAddOnContentManager | ||
*** Added command 300 - inbytes: | *** Added command 300 - inbytes: 0x8, outbytes: 0x0, pid: True | ||
*** Added command 301 - buffers: [ | *** Added command 301 - buffers: [0x6], inbytes: 0x10, outbytes: 0x0, pid: True | ||
*** Added command 302 - inbytes: | *** Added command 302 - inbytes: 0x0, outbytes: 0x0 | ||
** nn::bsdsocket::cfg::ServerInterface | ** nn::bsdsocket::cfg::ServerInterface | ||
*** Added command 13 - buffers: [ | *** Added command 13 - buffers: [0x5], inbytes: 0x0, outbytes: 0x0 | ||
*** Added command 14 - buffers: [ | *** Added command 14 - buffers: [0x5], inbytes: 0x0, outbytes: 0x0 | ||
*** Added command 15 - buffers: [ | *** Added command 15 - buffers: [0x5], inbytes: 0x0, outbytes: 0x0 | ||
** nn::codec::detail::IHardwareOpusDecoderManager | ** nn::codec::detail::IHardwareOpusDecoderManager | ||
*** Added command 8 - inbytes: | *** Added command 8 - inbytes: 0x10, outbytes: 0x4 | ||
*** Added command 9 - buffers: [ | *** Added command 9 - buffer_entry_sizes: [0x118], buffers: [0x19], inbytes: 0x0, outbytes: 0x4 | ||
** nn::dauth::detail::IService | ** nn::dauth::detail::IService | ||
*** Added command 3 - inbytes: | *** Added command 3 - inbytes: 0x8, outbytes: 0x10 | ||
*** Added command 13 - inbytes: | *** Added command 13 - inbytes: 0x10, outbytes: 0x10 | ||
** nn::dp2hdmi::detail::IDp2hdmiController | ** nn::dp2hdmi::detail::IDp2hdmiController | ||
*** Added command 7 - inbytes: | *** Added command 7 - inbytes: 0x0, outbytes: 0x0 | ||
*** Added command 8 - inbytes: | *** Added command 8 - inbytes: 0x4, inhandles: [1], outbytes: 0x0 | ||
** nn::ec::IContentsServiceManager | ** nn::ec::IContentsServiceManager | ||
*** Added command 1 - buffers: [ | *** Added command 1 - buffers: [0x5], inbytes: 0x60, outbytes: 0x0, outhandles: [1], outinterfaces: [None], pid: True | ||
** nn::es::IActiveRightsContext | ** nn::es::IActiveRightsContext | ||
*** Changed command 11 - inbytes: | *** Changed command 11 - inbytes: 0x8 -> 0x10 (final state: buffer_entry_sizes: [0x10], buffers: [0x6], inbytes: 0x10, outbytes: 0x4) | ||
*** Changed command 16 - inbytes: | *** Changed command 16 - inbytes: 0x8 -> 0x10 (final state: buffer_entry_sizes: [0x10], buffers: [0x6], inbytes: 0x10, outbytes: 0x4) | ||
*** Added command 18 - buffers: [ | *** Added command 18 - buffer_entry_sizes: [0x10, 0x0, 0x8], buffers: [0x6, 0x6, 0x6], inbytes: 0x10, outbytes: 0x8 | ||
** nn::es::IETicketService | ** nn::es::IETicketService | ||
*** Removed command 3001 - buffers: [ | *** Removed command 3001 - buffer_entry_sizes: [0x40, 0x248, 0x0], buffers: [0x16, 0x16, 0x5], inbytes: 0x0, outbytes: 0x0 | ||
*** Removed command 3002 - buffers: [ | *** Removed command 3002 - buffer_entry_sizes: [0x248], buffers: [0x16], inbytes: 0x0, outbytes: 0x0 | ||
** nn::fan::detail::IManager | ** nn::fan::detail::IManager | ||
*** Added command 1 - inbytes: | *** Added command 1 - inbytes: 0x4, outbytes: 0x4 | ||
** nn::friends::detail::ipc::IServiceCreator | ** nn::friends::detail::ipc::IServiceCreator | ||
*** Changed command 2 - outinterfaces: ['0x7100078D58'] -> ['0x710007990C'] (final state: inbytes: | *** Changed command 2 - outinterfaces: ['0x7100078D58'] -> ['0x710007990C'] (final state: inbytes: 0x0, outbytes: 0x0, outinterfaces: ['0x710007990C']) | ||
** nn::fssrv::sf::IFileSystemProxy | ** nn::fssrv::sf::IFileSystemProxy | ||
*** Added command 10 - buffers: [ | *** Added command 10 - buffer_entry_sizes: [0x301], buffers: [0x19], inbytes: 0x10, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::IFileSystem'] | ||
*** Changed command 206 - inbytes: | *** Changed command 206 - inbytes: 0x4 -> 0x8 (final state: buffer_entry_sizes: [0x301], buffers: [0x19], inbytes: 0x8, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::IStorage']) | ||
*** Removed command 609 - buffers: [ | *** Removed command 609 - buffer_entry_sizes: [0x301], buffers: [0x19], inbytes: 0x0, outbytes: 0x10 | ||
*** Changed command 610 - inbytes: | *** Changed command 610 - inbytes: 0x0 -> 0x1 (final state: buffer_entry_sizes: [0x301], buffers: [0x19], inbytes: 0x1, outbytes: 0x18) | ||
** nn::fssrv::sf::IFileSystemProxyForLoader | ** nn::fssrv::sf::IFileSystemProxyForLoader | ||
*** Changed command 0 - inbytes: | *** Changed command 0 - inbytes: 0x8 -> 0x10 (final state: buffer_entry_sizes: [0x124, 0x301], buffers: [0x1A, 0x19], inbytes: 0x10, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::IFileSystem']) | ||
** nn::hid::IHidDebugServer | ** nn::hid::IHidDebugServer | ||
*** Added command 25 - inbytes: | *** Added command 25 - inbytes: 0x1C, outbytes: 0x0 | ||
*** Added command 26 - inbytes: | *** Added command 26 - inbytes: 0x0, outbytes: 0x0 | ||
*** Added command 3000 - inbytes: | *** Added command 3000 - inbytes: 0x0, outbytes: 0x0 | ||
** nn::hid::IHidServer | ** nn::hid::IHidServer | ||
*** Added command 26 - inbytes: | *** Added command 26 - inbytes: 0x8, outbytes: 0x0, pid: True | ||
** nn::hid::IHidSystemServer | ** nn::hid::IHidSystemServer | ||
*** Removed command 1130 - inbytes: | *** Removed command 1130 - inbytes: 0x10, inhandles: [1], outbytes: 0x0, pid: True | ||
** nn::ncm::IContentManager | ** nn::ncm::IContentManager | ||
*** Added command 15 - inbytes: | *** Added command 15 - inbytes: 0x4, outbytes: 0x0 | ||
** nn::ncm::IContentStorage | ** nn::ncm::IContentStorage | ||
*** Changed command 19 - inbytes: | *** Changed command 19 - inbytes: 0x10 -> 0x11 (final state: inbytes: 0x11, outbytes: 0x18) | ||
*** Changed command 20 - inbytes: | *** Changed command 20 - inbytes: 0x10 -> 0x11 (final state: inbytes: 0x11, outbytes: 0x18) | ||
*** Changed command 27 - inbytes: | *** Changed command 27 - inbytes: 0x20 -> 0x21 (final state: inbytes: 0x21, outbytes: 0x18) | ||
** nn::nim::detail::INetworkInstallManager | ** nn::nim::detail::INetworkInstallManager | ||
*** Changed command 10 - outbytes: | *** Changed command 10 - outbytes: 0x58 -> 0x60 (final state: inbytes: 0x10, outbytes: 0x60) | ||
** nn::ns::detail::IApplicationManagerInterface | ** nn::ns::detail::IApplicationManagerInterface | ||
*** Changed command 21 - outbytes: | *** Changed command 21 - outbytes: 0x0 -> 0x1 (final state: buffer_entry_sizes: [0x300], buffers: [0x16], inbytes: 0x10, outbytes: 0x1) | ||
*** Removed command 604 - inbytes: | *** Removed command 604 - inbytes: 0x10, outbytes: 0x0 | ||
*** Added command 611 - inbytes: | *** Added command 611 - inbytes: 0x10, outbytes: 0x0 | ||
** nn::ns::detail::IDocumentInterface | ** nn::ns::detail::IDocumentInterface | ||
*** Changed command 21 - outbytes: | *** Changed command 21 - outbytes: 0x0 -> 0x1 (final state: buffer_entry_sizes: [0x300], buffers: [0x16], inbytes: 0x10, outbytes: 0x1) | ||
** nn::ns::detail::IDynamicRightsInterface | ** nn::ns::detail::IDynamicRightsInterface | ||
*** Removed command 14 - buffers: [ | *** Removed command 14 - buffers: [0x5], inbytes: 0x8, outbytes: 0x1 | ||
** nn::pdm::detail::IQueryService | ** nn::pdm::detail::IQueryService | ||
*** Changed command 4 - outbytes: | *** Changed command 0 - buffer_entry_sizes: [0x18] -> [0x28] (final state: buffer_entry_sizes: [0x28], buffers: [0x6], inbytes: 0x8, outbytes: 0x4) | ||
*** Changed command 5 - outbytes: | *** Changed command 4 - outbytes: 0x28 -> 0x48 (final state: inbytes: 0x10, outbytes: 0x48) | ||
*** Changed command 5 - outbytes: 0x28 -> 0x48 (final state: inbytes: 0x20, outbytes: 0x48) | |||
*** Changed command 10 - buffer_entry_sizes: [0x40] -> [0x38] (final state: buffer_entry_sizes: [0x38], buffers: [0x6], inbytes: 0x4, outbytes: 0x4) | |||
** nn::pl::detail::IPlatformServiceManagerForSystem | ** nn::pl::detail::IPlatformServiceManagerForSystem | ||
*** Removed command 0 - inbytes: | *** Removed command 0 - inbytes: 0x4, outbytes: 0x0 | ||
*** Removed command 1 - inbytes: | *** Removed command 1 - inbytes: 0x4, outbytes: 0x4 | ||
*** Removed command 2 - inbytes: | *** Removed command 2 - inbytes: 0x4, outbytes: 0x4 | ||
*** Removed command 3 - inbytes: | *** Removed command 3 - inbytes: 0x4, outbytes: 0x4 | ||
*** Removed command 4 - inbytes: | *** Removed command 4 - inbytes: 0x0, outbytes: 0x0, outhandles: [1] | ||
*** Removed command 5 - buffers: [ | *** Removed command 5 - buffer_entry_sizes: [0x4, 0x4, 0x4], buffers: [0x6, 0x6, 0x6], inbytes: 0x8, outbytes: 0x8 | ||
*** Removed command 6 - buffers: [ | *** Removed command 6 - buffer_entry_sizes: [0x4, 0x4, 0x4], buffers: [0x6, 0x6, 0x6], inbytes: 0x8, outbytes: 0x8 | ||
** nn::ssl::sf::ISslConnection | ** nn::ssl::sf::ISslConnection | ||
*** Added command 28 - buffers: [ | *** Added command 28 - buffers: [0x5], inbytes: 0x4, outbytes: 0x4 | ||
*** Added command 29 - buffers: [ | *** Added command 29 - buffers: [0x6], inbytes: 0x0, outbytes: 0x0 | ||
*** Added command 30 - inbytes: | *** Added command 30 - inbytes: 0x8, outbytes: 0x0 | ||
*** Added command 31 - buffers: [ | *** Added command 31 - buffers: [0x5], inbytes: 0x0, outbytes: 0x0 | ||
*** Added command 32 - inbytes: | *** Added command 32 - inbytes: 0x0, outbytes: 0x2 | ||
*** Added command 33 - buffers: [ | *** Added command 33 - buffers: [0x6, 0x5, 0x5], inbytes: 0x0, outbytes: 0x0 | ||
*** Added command 34 - inbytes: | *** Added command 34 - inbytes: 0x4, outbytes: 0x0 | ||
*** Added command 35 - inbytes: | *** Added command 35 - inbytes: 0x0, outbytes: 0x4 | ||
** nn::ssl::sf::ISslContext | ** nn::ssl::sf::ISslContext | ||
*** Added command 12 - buffers: [ | *** Added command 12 - buffers: [0x5, 0x5], inbytes: 0x4, outbytes: 0x8 | ||
*** Added command 13 - buffers: [ | *** Added command 13 - buffers: [0x6, 0x6, 0x5], inbytes: 0x4, outbytes: 0x8 | ||
** nn::ssl::sf::ISslContextForSystem | ** nn::ssl::sf::ISslContextForSystem | ||
*** Added command 12 - buffers: [ | *** Added command 12 - buffers: [0x5, 0x5], inbytes: 0x4, outbytes: 0x8 | ||
*** Added command 13 - buffers: [ | *** Added command 13 - buffers: [0x6, 0x6, 0x5], inbytes: 0x4, outbytes: 0x8 | ||
** nn::visrv::sf::IManagerDisplayService | ** nn::visrv::sf::IManagerDisplayService | ||
*** Added command 2060 - inbytes: | *** Added command 2060 - inbytes: 0x4, outbytes: 0x0 | ||
*** Added command 2062 - buffers: [ | *** Added command 2062 - buffers: [0x5], inbytes: 0x4, outbytes: 0x0 | ||
*** Added command 2063 - inbytes: | *** Added command 2063 - inbytes: 0x8, outbytes: 0x0 | ||
*** Added command 6014 - inbytes: | *** Added command 6014 - inbytes: 0x10, outbytes: 0x0 | ||
*** Added command 6015 - inbytes: | *** Added command 6015 - inbytes: 0x8, outbytes: 0x0 | ||
** nn::visrv::sf::IManagerRootService | ** nn::visrv::sf::IManagerRootService | ||
*** Added command 100 - inbytes: | *** Added command 100 - inbytes: 0x0, outbytes: 0x0 | ||
*** Added command 101 - inbytes: | *** Added command 101 - inbytes: 0x0, outbytes: 0x0 | ||
*** Added command 102 - inbytes: | *** Added command 102 - inbytes: 0x14, outbytes: 0x0 | ||
*** Added command 103 - buffers: [ | *** Added command 103 - buffer_entry_sizes: [0x4], buffers: [0x5], inbytes: 0x20, outbytes: 0x4 | ||
=== BootImagePackages === | === BootImagePackages === | ||
All files in RomFs were updated. | All files in RomFs were updated. | ||
Using updated master-key: master_key_0f (previously master_key_0e). See [[NCA]] for the KeyGeneration listing. | |||
[[Package2|INI1]] changes: | |||
* BootImagePackageSafe: | |||
** 010000000000001A (PCV): MainThreadCoreNumber updated: 0x3 -> 0x3F. | |||
* BootImagePackageExFatSafe: | |||
** 010000000000001A (PCV): MainThreadCoreNumber updated: 0x3 -> 0x3F. | |||
====Kernel==== | ====Kernel==== | ||
Line 281: | Line 298: | ||
**** Presumably exception info type is larger if compiling for a target with more than 4 CPUs, to prevent out-of-bounds copies. | **** Presumably exception info type is larger if compiling for a target with more than 4 CPUs, to prevent out-of-bounds copies. | ||
=== [[USB_services|usb]] === | |||
A vuln was [[Switch_System_Flaws|fixed]]. | |||
=== [[Bluetooth_Driver_services|bluetooth]] === | |||
An IPC vuln due to a regression was [[Switch_System_Flaws|fixed]]. | |||
=== [[Error_Applet|LibraryAppletError]] === | |||
As described [[Title_list|here]], nnSdk now supports two ErrorMessage SystemDataIds. NX LibraryAppletError is hard-coded for using the original ErrorMessage SystemDataId, the new ErrorMessage SystemData doesn't exist on NX retail. | |||
==See Also== | ==See Also== |