Changes

Jump to navigation Jump to search
1,182 bytes added ,  23:57, 30 April 2023
Move this to the sensible place.
Line 6: Line 6:  
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/22525/kw/nintendo%20switch%20system%20update Official] ALL change-log:
 
[https://en-americas-support.nintendo.com/app/answers/detail/a_id/22525/kw/nintendo%20switch%20system%20update Official] ALL change-log:
 
*  The location of the Bluetooth® Audio menu within System Settings has moved.
 
*  The location of the Bluetooth® Audio menu within System Settings has moved.
*  Screenshots can be taken using the Capture Button while in the Nintendo Switch Online application found on the Nintendo Switch HOME Menu.
+
*  Screenshots can be taken using the Capture Button while in the Nintendo Switch Online application found on the Nintendo Switch HOME Menu. Video capture is not supported.
  −
*      Video capture is not supported.
  −
*   
   
*   
 
*   
 
*  General system stability improvements to enhance the user's experience.
 
*  General system stability improvements to enhance the user's experience.
Line 129: Line 126:  
*** KMemoryState_Io now supports the CanAlignedDeviceMap and CanDeviceMap flags.
 
*** KMemoryState_Io now supports the CanAlignedDeviceMap and CanDeviceMap flags.
 
*** KPageTableBase::GetContiguousMemoryRangeWithState no longer checks that the passed memory address is heap.
 
*** KPageTableBase::GetContiguousMemoryRangeWithState no longer checks that the passed memory address is heap.
 +
**** KPageTable::MemoryRange now tracks whether the range is reference counted, and Close() only closes the pages if they are.
 
*** KPageTableBase::OpenMemoryRangeForMapDeviceAddressSpace no longer checks passes KMemoryState_FlagReferenceCounted.
 
*** KPageTableBase::OpenMemoryRangeForMapDeviceAddressSpace no longer checks passes KMemoryState_FlagReferenceCounted.
 
*** KPageTableBase::LockForMapDeviceAddressSpace takes two new arguments, an output bool * to write whether the state was io, and a bool for whether to check KMemoryState_FlagReferenceCounted.
 
*** KPageTableBase::LockForMapDeviceAddressSpace takes two new arguments, an output bool * to write whether the state was io, and a bool for whether to check KMemoryState_FlagReferenceCounted.
Line 162: Line 160:  
** KHandleTable::Initialize now instantiates a KScopedDisableDispatch while setting up the table.
 
** KHandleTable::Initialize now instantiates a KScopedDisableDispatch while setting up the table.
    +
====Loader====
 +
The broken RNG for ASLR was [[Switch_System_Flaws|fixed]].
 +
 +
===[[Bluetooth_Driver_services|bluetooth]]===
 +
Besides the various IPC changes, a vulnerable func was [[Switch_System_Flaws|fixed]].
    
===[[HID_services|hid]]===
 
===[[HID_services|hid]]===
 
Besides the various IPC changes, an infoleak vuln was [[Switch_System_Flaws|fixed]].
 
Besides the various IPC changes, an infoleak vuln was [[Switch_System_Flaws|fixed]].
 +
 +
===[[WLAN_services|wlan]]===
 +
Besides the various IPC changes, a vulnerable func was [[Switch_System_Flaws|fixed]].
 +
 +
===[[NS_Services|ns]]===
 +
Besides the various IPC changes, vulnerable RNG usage was [[Switch_System_Flaws|fixed]] to properly use secure RNG where needed.
 +
 +
===[[RO_services|ro]]===
 +
The broken RNG for ASLR was [[Switch_System_Flaws|fixed]].
 +
 +
===nnSdk===
 +
<code>nn::diag::detail::VAbortImpl</code> when handling the retaddr for storing elsewhere, now uses instruction [https://developer.arm.com/documentation/dui0801/g/A64-General-Instructions/XPACD--XPACI--XPACLRI xpaclri]. PAC instructions are NOPs on ARM hardware which doesn't support it, which includes current NX consoles.
 +
 +
This is likely due to a LLVM [https://reviews.llvm.org/D84502 patch] where xpaclri is now always emitted and not related to actual Armv8.3 hardware.
    
=== IPC Interface Changes ===
 
=== IPC Interface Changes ===
Line 235: Line 252:  
*** Added command 155 - inbytes: 6, outbytes: 1
 
*** Added command 155 - inbytes: 6, outbytes: 1
 
** nn::btm::IBtm
 
** nn::btm::IBtm
*** Added command 112 - inbytes: 7, outbytes: 0
+
*** Removed command 112 - inbytes: 7, outbytes: 0
*** Added command 113 - inbytes: 6, outbytes: 1
+
*** Removed command 113 - inbytes: 6, outbytes: 1
 
*** Added command 116 - inbytes: 7, outbytes: 0
 
*** Added command 116 - inbytes: 7, outbytes: 0
 
*** Added command 117 - inbytes: 6, outbytes: 1
 
*** Added command 117 - inbytes: 6, outbytes: 1
Line 292: Line 309:  
*** Added command  4 - buffers: [5], inbytes: 0, outbytes: 0
 
*** Added command  4 - buffers: [5], inbytes: 0, outbytes: 0
 
** nn::mnpp::detail::ipc::IServiceForSystem
 
** nn::mnpp::detail::ipc::IServiceForSystem
*** Added command 300 - inbytes: 0, outbytes: 1
+
*** Removed command 300 - inbytes: 0, outbytes: 1
*** Added command 400 - inbytes: 0, outbytes: 1
+
*** Removed command 400 - inbytes: 0, outbytes: 1
 
** nn::ncm::IContentMetaDatabase
 
** nn::ncm::IContentMetaDatabase
 
*** Added command  23 - inbytes: 16, outbytes: 1
 
*** Added command  23 - inbytes: 16, outbytes: 1
Line 311: Line 328:  
*** Added command 141 - inbytes: 0, outbytes: 1
 
*** Added command 141 - inbytes: 0, outbytes: 1
 
** nn::nim::detail::IShopServiceManager
 
** nn::nim::detail::IShopServiceManager
*** Added command 102 - inbytes: 0, outbytes: 0, outhandles: [1], outinterfaces: ['nn::nim::detail::IAsyncValue']
+
*** Removed command 102 - inbytes: 0, outbytes: 0, outhandles: [1], outinterfaces: ['nn::nim::detail::IAsyncValue']
*** Added command 103 - inbytes: 0, outbytes: 32
+
*** Removed command 103 - inbytes: 0, outbytes: 32
*** Added command 104 - inbytes: 0, outbytes: 0, outhandles: [1], outinterfaces: ['nn::nim::detail::IAsyncValue']
+
*** Removed command 104 - inbytes: 0, outbytes: 0, outhandles: [1], outinterfaces: ['nn::nim::detail::IAsyncValue']
*** Added command 105 - inbytes: 0, outbytes: 0, outhandles: [1], outinterfaces: ['nn::nim::detail::IAsyncResult']
+
*** Removed command 105 - inbytes: 0, outbytes: 0, outhandles: [1], outinterfaces: ['nn::nim::detail::IAsyncResult']
*** Added command 106 - inbytes: 0, outbytes: 0, outhandles: [1], outinterfaces: ['nn::nim::detail::IAsyncResult']
+
*** Removed command 106 - inbytes: 0, outbytes: 0, outhandles: [1], outinterfaces: ['nn::nim::detail::IAsyncResult']
*** Added command 501 - inbytes: 16, outbytes: 0, outhandles: [1], outinterfaces: ['nn::nim::detail::IAsyncResult']
+
*** Removed command 501 - inbytes: 16, outbytes: 0, outhandles: [1], outinterfaces: ['nn::nim::detail::IAsyncResult']
 
** nn::ns::detail::IApplicationManagerInterface
 
** nn::ns::detail::IApplicationManagerInterface
 
*** Added command  90 - inbytes: 8, outbytes: 0
 
*** Added command  90 - inbytes: 8, outbytes: 0
 
*** Changed command 607 - inbytes: 16 -> 8 (final state: buffers: [6], inbytes: 8, outbytes: 4)
 
*** Changed command 607 - inbytes: 16 -> 8 (final state: buffers: [6], inbytes: 8, outbytes: 4)
*** Added command 909 - inbytes: 8, outbytes: 0
+
*** Removed command 909 - inbytes: 8, outbytes: 0
 
*** Added command 2357 - inbytes: 0, outbytes: 0
 
*** Added command 2357 - inbytes: 0, outbytes: 0
 
*** Added command 2358 - inbytes: 0, outbytes: 0
 
*** Added command 2358 - inbytes: 0, outbytes: 0
 
*** Added command 2359 - inbytes: 0, outbytes: 1
 
*** Added command 2359 - inbytes: 0, outbytes: 1
*** Added command 2516 - inbytes: 16, outbytes: 0
+
*** Removed command 2516 - inbytes: 16, outbytes: 0
 
** nn::pdm::detail::IQueryService
 
** nn::pdm::detail::IQueryService
 
*** Removed command  7 - buffers: [6, 5], inbytes: 0, outbytes: 4
 
*** Removed command  7 - buffers: [6, 5], inbytes: 0, outbytes: 4
Line 334: Line 351:  
*** Added command 10500 - buffers: [9], inbytes: 40, inhandles: [1], outbytes: 0, outinterfaces: ['nn::prepo::detail::ipc::IAsyncContext'], pid: True
 
*** Added command 10500 - buffers: [9], inbytes: 40, inhandles: [1], outbytes: 0, outinterfaces: ['nn::prepo::detail::ipc::IAsyncContext'], pid: True
 
** nn::settings::ISystemSettingsServer
 
** nn::settings::ISystemSettingsServer
*** Added command 119 - inbytes: 1, outbytes: 3
+
*** Removed command 119 - inbytes: 1, outbytes: 3
 
** nn::srepo::detail::ipc::ISrepoService
 
** nn::srepo::detail::ipc::ISrepoService
 
*** Added command 10300 - buffers: [9], inbytes: 40, inhandles: [1], outbytes: 0, outinterfaces: ['nn::srepo::detail::ipc::IAsyncContext']
 
*** Added command 10300 - buffers: [9], inbytes: 40, inhandles: [1], outbytes: 0, outinterfaces: ['nn::srepo::detail::ipc::IAsyncContext']

Navigation menu