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: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.
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: 0, outbytes: 0
*** 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: 0, outbytes: 0
*** 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: 0, outbytes: 0
*** Added command 161 - inbytes: 0x0, outbytes: 0x0
** nn::account::baas::IManagerForSystemService
** nn::account::baas::IManagerForSystemService
*** Added command 161 - inbytes: 0, outbytes: 0
*** Added command 161 - inbytes: 0x0, outbytes: 0x0
** nn::account::nas::IOAuthProcedureForNintendoAccountLinkage
** nn::account::nas::IOAuthProcedureForNintendoAccountLinkage
*** Added command 200 - buffers: [9, 9, 9], inbytes: 0, outbytes: 0, outinterfaces: ['nn::account::detail::IAsyncContext']
*** 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: [5], inbytes: 0, outbytes: 1
*** Removed command 34 - buffers: [0x5], inbytes: 0x0, outbytes: 0x1
** nn::am::service::IDebugFunctions
** nn::am::service::IDebugFunctions
*** Added command 51 - inbytes: 4, outbytes: 0
*** Added command 51 - inbytes: 0x4, outbytes: 0x0
*** Added command 300 - inbytes: 0, outbytes: 0
*** Added command 300 - inbytes: 0x0, outbytes: 0x0
** nn::am::service::IHomeMenuFunctions
** nn::am::service::IHomeMenuFunctions
*** Added command 50 - inbytes: 0, outbytes: 0
*** Added command 50 - inbytes: 0x0, outbytes: 0x0
*** Added command 51 - inbytes: 0, outbytes: 0
*** Added command 51 - inbytes: 0x0, outbytes: 0x0
** nn::aocsrv::detail::IAddOnContentManager
** nn::aocsrv::detail::IAddOnContentManager
*** Added command 300 - inbytes: 8, outbytes: 0, pid: True
*** Added command 300 - inbytes: 0x8, outbytes: 0x0, pid: True
*** Added command 301 - buffers: [6], inbytes: 16, outbytes: 0, pid: True
*** Added command 301 - buffers: [0x6], inbytes: 0x10, outbytes: 0x0, pid: True
*** Added command 302 - inbytes: 0, outbytes: 0
*** Added command 302 - inbytes: 0x0, outbytes: 0x0
** nn::bsdsocket::cfg::ServerInterface
** nn::bsdsocket::cfg::ServerInterface
*** Added command 13 - buffers: [5], inbytes: 0, outbytes: 0
*** Added command 13 - buffers: [0x5], inbytes: 0x0, outbytes: 0x0
*** Added command 14 - buffers: [5], inbytes: 0, outbytes: 0
*** Added command 14 - buffers: [0x5], inbytes: 0x0, outbytes: 0x0
*** Added command 15 - buffers: [5], inbytes: 0, outbytes: 0
*** Added command 15 - buffers: [0x5], inbytes: 0x0, outbytes: 0x0
** nn::codec::detail::IHardwareOpusDecoderManager
** nn::codec::detail::IHardwareOpusDecoderManager
*** Added command 8 - inbytes: 16, outbytes: 4
*** Added command 8 - inbytes: 0x10, outbytes: 0x4
*** Added command 9 - buffers: [25], inbytes: 0, outbytes: 4
*** 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: 8, outbytes: 16
*** Added command 3 - inbytes: 0x8, outbytes: 0x10
*** Added command 13 - inbytes: 16, outbytes: 16
*** Added command 13 - inbytes: 0x10, outbytes: 0x10
** nn::dp2hdmi::detail::IDp2hdmiController
** nn::dp2hdmi::detail::IDp2hdmiController
*** Added command 7 - inbytes: 0, outbytes: 0
*** Added command 7 - inbytes: 0x0, outbytes: 0x0
*** Added command 8 - inbytes: 4, inhandles: [1], outbytes: 0
*** Added command 8 - inbytes: 0x4, inhandles: [1], outbytes: 0x0
** nn::ec::IContentsServiceManager
** nn::ec::IContentsServiceManager
*** Added command 1 - buffers: [5], inbytes: 96, outbytes: 0, outhandles: [1], outinterfaces: [None], pid: True
*** 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: 8 -> 16 (final state: buffers: [6], inbytes: 16, outbytes: 4)
*** Changed command 11 - inbytes: 0x8 -> 0x10 (final state: buffer_entry_sizes: [0x10], buffers: [0x6], inbytes: 0x10, outbytes: 0x4)
*** Changed command 16 - inbytes: 8 -> 16 (final state: buffers: [6], inbytes: 16, outbytes: 4)
*** Changed command 16 - inbytes: 0x8 -> 0x10 (final state: buffer_entry_sizes: [0x10], buffers: [0x6], inbytes: 0x10, outbytes: 0x4)
*** Added command 18 - buffers: [6, 6, 6], inbytes: 16, outbytes: 8
*** 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: [22, 22, 5], inbytes: 0, outbytes: 0
*** Removed command 3001 - buffer_entry_sizes: [0x40, 0x248, 0x0], buffers: [0x16, 0x16, 0x5], inbytes: 0x0, outbytes: 0x0
*** Removed command 3002 - buffers: [22], inbytes: 0, outbytes: 0
*** 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: 4, outbytes: 4
*** 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: 0, outbytes: 0, outinterfaces: ['0x710007990C'])
*** 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: [25], inbytes: 16, outbytes: 0, outinterfaces: ['nn::fssrv::sf::IFileSystem']
*** Added command 10 - buffer_entry_sizes: [0x301], buffers: [0x19], inbytes: 0x10, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::IFileSystem']
*** Changed command 206 - inbytes: 4 -> 8 (final state: buffers: [25], inbytes: 8, outbytes: 0, outinterfaces: ['nn::fssrv::sf::IStorage'])
*** 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: [25], inbytes: 0, outbytes: 16
*** Removed command 609 - buffer_entry_sizes: [0x301], buffers: [0x19], inbytes: 0x0, outbytes: 0x10
*** Changed command 610 - inbytes: 0 -> 1 (final state: buffers: [25], inbytes: 1, outbytes: 24)
*** 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: 8 -> 16 (final state: buffers: [26, 25], inbytes: 16, outbytes: 0, outinterfaces: ['nn::fssrv::sf::IFileSystem'])
*** 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: 28, outbytes: 0
*** Added command 25 - inbytes: 0x1C, outbytes: 0x0
*** Added command 26 - inbytes: 0, outbytes: 0
*** Added command 26 - inbytes: 0x0, outbytes: 0x0
*** Added command 3000 - inbytes: 0, outbytes: 0
*** Added command 3000 - inbytes: 0x0, outbytes: 0x0
** nn::hid::IHidServer
** nn::hid::IHidServer
*** Added command 26 - inbytes: 8, outbytes: 0, pid: True
*** Added command 26 - inbytes: 0x8, outbytes: 0x0, pid: True
** nn::hid::IHidSystemServer
** nn::hid::IHidSystemServer
*** Removed command 1130 - inbytes: 16, inhandles: [1], outbytes: 0, pid: True
*** Removed command 1130 - inbytes: 0x10, inhandles: [1], outbytes: 0x0, pid: True
** nn::ncm::IContentManager
** nn::ncm::IContentManager
*** Added command 15 - inbytes: 4, outbytes: 0
*** Added command 15 - inbytes: 0x4, outbytes: 0x0
** nn::ncm::IContentStorage
** nn::ncm::IContentStorage
*** Changed command 19 - inbytes: 16 -> 17 (final state: inbytes: 17, outbytes: 24)
*** Changed command 19 - inbytes: 0x10 -> 0x11 (final state: inbytes: 0x11, outbytes: 0x18)
*** Changed command 20 - inbytes: 16 -> 17 (final state: inbytes: 17, outbytes: 24)
*** Changed command 20 - inbytes: 0x10 -> 0x11 (final state: inbytes: 0x11, outbytes: 0x18)
*** Changed command 27 - inbytes: 32 -> 33 (final state: inbytes: 33, outbytes: 24)
*** Changed command 27 - inbytes: 0x20 -> 0x21 (final state: inbytes: 0x21, outbytes: 0x18)
** nn::nim::detail::INetworkInstallManager
** nn::nim::detail::INetworkInstallManager
*** Changed command 10 - outbytes: 88 -> 96 (final state: inbytes: 16, outbytes: 96)
*** Changed command 10 - outbytes: 0x58 -> 0x60 (final state: inbytes: 0x10, outbytes: 0x60)
** nn::ns::detail::IApplicationManagerInterface
** nn::ns::detail::IApplicationManagerInterface
*** Changed command 21 - outbytes: 0 -> 1 (final state: buffers: [22], inbytes: 16, outbytes: 1)
*** Changed command 21 - outbytes: 0x0 -> 0x1 (final state: buffer_entry_sizes: [0x300], buffers: [0x16], inbytes: 0x10, outbytes: 0x1)
*** Removed command 604 - inbytes: 16, outbytes: 0
*** Removed command 604 - inbytes: 0x10, outbytes: 0x0
*** Added command 611 - inbytes: 16, outbytes: 0
*** Added command 611 - inbytes: 0x10, outbytes: 0x0
** nn::ns::detail::IDocumentInterface
** nn::ns::detail::IDocumentInterface
*** Changed command 21 - outbytes: 0 -> 1 (final state: buffers: [22], inbytes: 16, outbytes: 1)
*** 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: [5], inbytes: 8, outbytes: 1
*** Removed command 14 - buffers: [0x5], inbytes: 0x8, outbytes: 0x1
** nn::pdm::detail::IQueryService
** nn::pdm::detail::IQueryService
*** Changed command 4 - outbytes: 40 -> 72 (final state: inbytes: 16, outbytes: 72)
*** Changed command 0 - buffer_entry_sizes: [0x18] -> [0x28] (final state: buffer_entry_sizes: [0x28], buffers: [0x6], inbytes: 0x8, outbytes: 0x4)
*** Changed command 5 - outbytes: 40 -> 72 (final state: inbytes: 32, outbytes: 72)
*** 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: 4, outbytes: 0
*** Removed command 0 - inbytes: 0x4, outbytes: 0x0
*** Removed command 1 - inbytes: 4, outbytes: 4
*** Removed command 1 - inbytes: 0x4, outbytes: 0x4
*** Removed command 2 - inbytes: 4, outbytes: 4
*** Removed command 2 - inbytes: 0x4, outbytes: 0x4
*** Removed command 3 - inbytes: 4, outbytes: 4
*** Removed command 3 - inbytes: 0x4, outbytes: 0x4
*** Removed command 4 - inbytes: 0, outbytes: 0, outhandles: [1]
*** Removed command 4 - inbytes: 0x0, outbytes: 0x0, outhandles: [1]
*** Removed command 5 - buffers: [6, 6, 6], inbytes: 8, outbytes: 8
*** Removed command 5 - buffer_entry_sizes: [0x4, 0x4, 0x4], buffers: [0x6, 0x6, 0x6], inbytes: 0x8, outbytes: 0x8
*** Removed command 6 - buffers: [6, 6, 6], inbytes: 8, outbytes: 8
*** 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: [5], inbytes: 4, outbytes: 4
*** Added command 28 - buffers: [0x5], inbytes: 0x4, outbytes: 0x4
*** Added command 29 - buffers: [6], inbytes: 0, outbytes: 0
*** Added command 29 - buffers: [0x6], inbytes: 0x0, outbytes: 0x0
*** Added command 30 - inbytes: 8, outbytes: 0
*** Added command 30 - inbytes: 0x8, outbytes: 0x0
*** Added command 31 - buffers: [5], inbytes: 0, outbytes: 0
*** Added command 31 - buffers: [0x5], inbytes: 0x0, outbytes: 0x0
*** Added command 32 - inbytes: 0, outbytes: 2
*** Added command 32 - inbytes: 0x0, outbytes: 0x2
*** Added command 33 - buffers: [6, 5, 5], inbytes: 0, outbytes: 0
*** Added command 33 - buffers: [0x6, 0x5, 0x5], inbytes: 0x0, outbytes: 0x0
*** Added command 34 - inbytes: 4, outbytes: 0
*** Added command 34 - inbytes: 0x4, outbytes: 0x0
*** Added command 35 - inbytes: 0, outbytes: 4
*** Added command 35 - inbytes: 0x0, outbytes: 0x4
** nn::ssl::sf::ISslContext
** nn::ssl::sf::ISslContext
*** Added command 12 - buffers: [5, 5], inbytes: 4, outbytes: 8
*** Added command 12 - buffers: [0x5, 0x5], inbytes: 0x4, outbytes: 0x8
*** Added command 13 - buffers: [6, 6, 5], inbytes: 4, outbytes: 8
*** Added command 13 - buffers: [0x6, 0x6, 0x5], inbytes: 0x4, outbytes: 0x8
** nn::ssl::sf::ISslContextForSystem
** nn::ssl::sf::ISslContextForSystem
*** Added command 12 - buffers: [5, 5], inbytes: 4, outbytes: 8
*** Added command 12 - buffers: [0x5, 0x5], inbytes: 0x4, outbytes: 0x8
*** Added command 13 - buffers: [6, 6, 5], inbytes: 4, outbytes: 8
*** Added command 13 - buffers: [0x6, 0x6, 0x5], inbytes: 0x4, outbytes: 0x8
** nn::visrv::sf::IManagerDisplayService
** nn::visrv::sf::IManagerDisplayService
*** Added command 2060 - inbytes: 4, outbytes: 0
*** Added command 2060 - inbytes: 0x4, outbytes: 0x0
*** Added command 2062 - buffers: [5], inbytes: 4, outbytes: 0
*** Added command 2062 - buffers: [0x5], inbytes: 0x4, outbytes: 0x0
*** Added command 2063 - inbytes: 8, outbytes: 0
*** Added command 2063 - inbytes: 0x8, outbytes: 0x0
*** Added command 6014 - inbytes: 16, outbytes: 0
*** Added command 6014 - inbytes: 0x10, outbytes: 0x0
*** Added command 6015 - inbytes: 8, outbytes: 0
*** Added command 6015 - inbytes: 0x8, outbytes: 0x0
** nn::visrv::sf::IManagerRootService
** nn::visrv::sf::IManagerRootService
*** Added command 100 - inbytes: 0, outbytes: 0
*** Added command 100 - inbytes: 0x0, outbytes: 0x0
*** Added command 101 - inbytes: 0, outbytes: 0
*** Added command 101 - inbytes: 0x0, outbytes: 0x0
*** Added command 102 - inbytes: 20, outbytes: 0
*** Added command 102 - inbytes: 0x14, outbytes: 0x0
*** Added command 103 - buffers: [5], inbytes: 32, outbytes: 4
*** 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==