20.1.5: Difference between revisions
Line 28: | Line 28: | ||
** Changed: 2250 - outinterfaces: ['0x71001408F8 [ID = 0x29d8801c]'] -> ['0x7100140A48 [ID = 0x29d8801c]'] (final state: inbytes: 0x18, inhandles: [1], outbytes: 0x0, outinterfaces: ['0x7100140A48 [ID = 0x29d8801c]']) | ** Changed: 2250 - outinterfaces: ['0x71001408F8 [ID = 0x29d8801c]'] -> ['0x7100140A48 [ID = 0x29d8801c]'] (final state: inbytes: 0x18, inhandles: [1], outbytes: 0x0, outinterfaces: ['0x7100140A48 [ID = 0x29d8801c]']) | ||
** Changed: 2260 - outinterfaces: ['0x71001408F8 [ID = 0x29d8801c]'] -> ['0x7100140A48 [ID = 0x29d8801c]'] (final state: inbytes: 0x4, inhandles: [1], outbytes: 0x0, outinterfaces: ['0x7100140A48 [ID = 0x29d8801c]']) | ** Changed: 2260 - outinterfaces: ['0x71001408F8 [ID = 0x29d8801c]'] -> ['0x7100140A48 [ID = 0x29d8801c]'] (final state: inbytes: 0x4, inhandles: [1], outbytes: 0x0, outinterfaces: ['0x7100140A48 [ID = 0x29d8801c]']) | ||
=== [[NS_services|ns]] === | |||
Besides IPC-related changes: | |||
* Updated L_a0488, prev ver @ L_a0478. | |||
** Added a call to L_8f0a4 after the first func call. | |||
** Added a call to L_9c164. | |||
* Updated L_a05e4, prev ver @ L_a0584. | |||
** Code was added for using L_8f0a4 in a loop. | |||
** Added a call to L_9c164. | |||
* Updated L_ce23c, prev ver @ L_ce160. | |||
** Code was added at 0xce56c (prev ver 0xce48c): <code>if (s32 sp44 <= 0x13) { L_8f0a4(...); <increment sp44> }</code> | |||
* Updated L_11d950, prev ver @ L_11d824. | |||
** When the first func call fails, this now calls L_8f0a4 twice before returning. | |||
* Updated L_11ed70, prev ver @ L_11ebf4. | |||
** Added a call to L_8f0a4 after the first func call. | |||
** When L_99b70 returns success, this now calls L_9c164. | |||
* Updated L_11f454, prev ver @ L_11f290. | |||
** At the start of this func a call to L_8f0a4 was added. | |||
** At the end of this func when successful, a call to L_9c164 was added. | |||
* Updated L_14418c, prev ver @ L_143f68. | |||
** Changes are similar to L_ce23c, except the used field is <code>s32 *(*(inx0+8)+8)</code>. | |||
* Updated L_1446bc, prev ver @ L_14444c. | |||
** Added: <code>*(inx0+8) = 0;</code> | |||
* Updated L_144c28, prev ver @ L_1449b4. | |||
** Clearing code was updated. | |||
* Updated L_26bb28, prev ver @ L_26b818. | |||
** Minor changes? | |||
=== [[Error_Report_services|erpt]] === | === [[Error_Report_services|erpt]] === |
Revision as of 02:15, 22 June 2025
The Switch 20.1.5 system update was released on June 19, 2025 (UTC). This Switch update was released for the following regions: ALL.
Security flaws fixed: <fill this in manually later, see the updatedetails page from the ninupdates-report page(s) once available for now>.
Change-log
Official ALL change-log:
- General system stability improvements to enhance the user's experience.
System Titles
- The following titles were updated:
- Sysmodules: account, ns, erpt, pctl, migration.
- Applets: qlaunch.
NPDM changes (besides usual version-bump):
- migration: Service access: added eupld:c.
RomFs changes:
- SystemVersion: All files updated.
IPC Interface Changes
- Interface Changed: nn::account::migration::IDeviceMigrationUserImportRequest
- Added: 27 - inbytes: 0x0, outbytes: 0x1
- Interface Changed: nn::account::migration::IDeviceMigrationUserImportRequest
- Added: 27 - inbytes: 0x0, outbytes: 0x1
- Unknown Interface prev-version: 0x71001408F8 [ID = 0x29d8801c]
- Unknown Interface cur-version: 0x7100140A48 [ID = 0x29d8801c]
- Interface Changed: nn::migration::user::IService
- Changed: 2250 - outinterfaces: ['0x71001408F8 [ID = 0x29d8801c]'] -> ['0x7100140A48 [ID = 0x29d8801c]'] (final state: inbytes: 0x18, inhandles: [1], outbytes: 0x0, outinterfaces: ['0x7100140A48 [ID = 0x29d8801c]'])
- Changed: 2260 - outinterfaces: ['0x71001408F8 [ID = 0x29d8801c]'] -> ['0x7100140A48 [ID = 0x29d8801c]'] (final state: inbytes: 0x4, inhandles: [1], outbytes: 0x0, outinterfaces: ['0x7100140A48 [ID = 0x29d8801c]'])
ns
Besides IPC-related changes:
- Updated L_a0488, prev ver @ L_a0478.
- Added a call to L_8f0a4 after the first func call.
- Added a call to L_9c164.
- Updated L_a05e4, prev ver @ L_a0584.
- Code was added for using L_8f0a4 in a loop.
- Added a call to L_9c164.
- Updated L_ce23c, prev ver @ L_ce160.
- Code was added at 0xce56c (prev ver 0xce48c):
if (s32 sp44 <= 0x13) { L_8f0a4(...); <increment sp44> }
- Code was added at 0xce56c (prev ver 0xce48c):
- Updated L_11d950, prev ver @ L_11d824.
- When the first func call fails, this now calls L_8f0a4 twice before returning.
- Updated L_11ed70, prev ver @ L_11ebf4.
- Added a call to L_8f0a4 after the first func call.
- When L_99b70 returns success, this now calls L_9c164.
- Updated L_11f454, prev ver @ L_11f290.
- At the start of this func a call to L_8f0a4 was added.
- At the end of this func when successful, a call to L_9c164 was added.
- Updated L_14418c, prev ver @ L_143f68.
- Changes are similar to L_ce23c, except the used field is
s32 *(*(inx0+8)+8)
.
- Changes are similar to L_ce23c, except the used field is
- Updated L_1446bc, prev ver @ L_14444c.
- Added:
*(inx0+8) = 0;
- Added:
- Updated L_144c28, prev ver @ L_1449b4.
- Clearing code was updated.
- Updated L_26bb28, prev ver @ L_26b818.
- Minor changes?
erpt
Only a single instruction was changed (besides GNU build-id). Previously, when validating the CreateReportContext in Reporter::CreateReport, Nintendo checks that FieldId_ErrorCode is present, and that the field corresponding to FieldId_ErrorCode has type == FieldType_String (ResultFieldTypeMismatch if not) and that it has size <= 0xE (ResultArrayFieldTooLarge if not).
It now checks that the error code string is size <= 0xF instead of <= 0xE.
migration
Besides IPC related changes from updated SDK, etc:
- L_10a560 (prev ver L_10a540), L_10a690 (prev ver L_10a650), L_144ec4 (prev ver L_144dac), L_144f7c (prev ver L_144dac):
- Added a call to L_d5294 (logging func).
- L_12700c updated, prev ver @ L_126fbc.
- Now sets x21 to the L_15306c ret, instead of ignoring it. Code was added following that.
- Updated L_12b8d0, prev ver @ L_12b830.
- At 0x12b950 (prev ver 0x12b8b0), added:
if ((L_143510() & 1) == 0) L_1a8620(*(x23+104))
;
- At 0x12b950 (prev ver 0x12b8b0), added:
- Updated L_12d4c8, prev ver @ L_12d418.
- Now calls L_153050, the ret&1 is passed as an additional param to L_2e4.
- Updated L_12f6b4, prev ver @ L_12f5e4.
- Clearing code was updated.
- Updated L_12f9a0, prev ver @ L_12f8d0.
- Updated L_12fcd8, prev ver @ L_12fbb4.
- Updated L_144e60, prev ver @ L_144d10.
- Removed some func calls.
- New func L_153000.
- New func L_153050.
- Only called by L_12700c and L_12d4c8.
- New func L_1a8620.
- Only called by L_12b8d0 and L_12fcd8.
- eupld:c SetAutoUpload is now used. This is now called by L_12f9a0 and L_1a8620.
See Also
System update report(s):
Nintendo Switch System Versions | |
---|---|
1.0.0 | |
2.0.0 • 2.1.0 • 2.2.0 • 2.3.0 | |
3.0.0 • 3.0.1 • 3.0.2 | |
4.0.0 • 4.0.1 • 4.1.0 | |
5.0.0 • 5.0.1 • 5.0.2 • 5.1.0 | |
6.0.0 • 6.0.1 • 6.1.0 • 6.2.0 | |
7.0.0 • 7.0.1 | |
8.0.0 • 8.0.1 • 8.1.0 • 8.1.1 | |
9.0.0 • 9.0.1 • 9.1.0 • 9.2.0 | |
10.0.0 • 10.0.1 • 10.0.2 • 10.0.3 • 10.0.4 • 10.1.0 • 10.1.1 • 10.2.0 | |
11.0.0 • 11.0.1 | |
12.0.0 • 12.0.1 • 12.0.2 • 12.0.3 • 12.1.0 | |
13.0.0 • 13.1.0 • 13.2.0 • 13.2.1 | |
14.0.0 • 14.1.0 • 14.1.1 • 14.1.2 | |
15.0.0 • 15.0.1 | |
16.0.0 • 16.0.1 • 16.0.2 • 16.0.3 • 16.1.0 | |
17.0.0 • 17.0.1 | |
18.0.0 • 18.0.1 • 18.1.0 | |
19.0.0 • 19.0.1 | |
20.0.0 • 20.0.1 • 20.1.0 • 20.1.1 • 20.1.5 |