1
Firmware 19.0.0
Zoria edited this page 2025-05-31 22:04:00 +02:00

System Titles

The following titles were updated: Sysmodules: usb, htc.stub, boot2.ProdBoot, settings, Bus, bluetooth, bcat, friends, nifm, ptm, bsdsocket, hid, audio, LogManager.Prod, wlan, ldn, nvservices, pcv, capmtp, nvnflinger, pcie, account, ns, nfc, psc, capsrv, am, ssl, nim, btm, erpt, vi, pctl, npns, eupld, glue, eclct, es, fatal, creport, ro, sdb, grc, migration, jpegdec, safemode, olsc, ngct, jit, pgl, omm, eth, ngc. SystemData (non-sysver): CertStore, ErrorMessage, MiiModel, BrowserDll, Help, NgWord, SsidList, TimeZoneBinary, FontNintendoExtension, FontStandard, FontKorean, FontChineseTraditional, FontChineseSimple, FirmwareDebugSettings, BootImagePackage, BootImagePackageSafe, BootImagePackageExFat, FatalMessage, PlatformConfigIcosa, PlatformConfigCopper, PlatformConfigHoag, ControllerFirmware, NgWord2, BootImagePackageExFatSafe, PlatformConfigIcosaMariko, ContentActionTable, NgWordT, PlatformConfigAula, AulaDockFirmware. Applets: qlaunch, auth, netConnect, LibAppletWeb, LibAppletShop, LibAppletOff, LibAppletLns, LibAppletAuth, "starter" application. NPDM changes (besides usual version-bump):

usb: Service access: removed set:fd. htc.stub: SVC access: removed SetHeapSize, MapMemory, UnmapMemory, ExitProcess, CreateThread, StartThread, ExitThread, SleepThread, SetThreadPriority, GetThreadCoreMask, SetThreadCoreMask, GetCurrentProcessorNumber, SignalEvent, MapSharedMemory, UnmapSharedMemory, CreateTransferMemory, CloseHandle, ResetSignal, CancelSynchronization, ArbitrateLock, ArbitrateUnlock, WaitProcessWideKeyAtomic, SignalProcessWideKey, GetSystemTick, SendSyncRequestLight, SendSyncRequestWithUserBuffer, SendAsyncRequestWithUserBuffer, GetProcessId, Break, OutputDebugString, ReturnFromException, WaitForAddress, SignalToAddress. bluetooth: Service access: removed set:fd. bcat: Service access: added ssl:s, removed ssl. friends: Service access: added ssl:s, removed set, ssl. SVC access: removed MapTransferMemory, UnmapTransferMemory. nifm: Service access: added ssl:s, removed ssl. ptm: Service access: removed set:fd. KernelCap HandleTableSize: removed HandleTableSize=0x100. bsdsocket: Service server access: removed bsdcfg. hid: Service access: removed set:fd. audio: Service access: removed set, set:cal. wlan: Service access: removed i2c. pcv: Service access: removed set:fd. account: Service access: added ssl:s, removed ssl. ns: Service access: added caps:dc. nfc: Service access: removed xcd:sys. capsrv: Service access: added acc:e:u1. erpt: Service access: added srepo:a, removed srepo:u. pctl: Service access: added ssl:s, removed ssl. npns: Service access: added ssl:s, removed ssl. SVC access: added MapTransferMemory, UnmapTransferMemory. eupld: Service access: added ssl:s, removed ssl. creport: SVC access: removed GetThreadList. migration: Service access: added hid, set, ssl:s, removed bsdcfg, ssl. olsc: Service access: added ssl:s, removed ssl. omm: Service access: removed irs:sys. qlaunch: Service access: added bsd:a, removed bsd:u. auth: Service access: added bsd:a, removed bsd:u. netConnect: Service access: added bsd:a, removed bsd:u. LibAppletWeb: Service access: added bsd:a, removed bsd:u. LibAppletShop: Service access: added bsd:a, removed bsd:u. LibAppletOff: Service access: added bsd:a, removed bsd:u. LibAppletLns: Service access: added bsd:a, removed bsd:u. LibAppletAuth: Service access: added bsd:a, removed bsd:u. RomFs changes:

CertStore: "/ssl_TrustedCerts.Ounce.bdf" updated ErrorMessage: updated BrowserDll: "/buildinfo/buildinfo.dat" updated, "/nro/netfront/core_2/default/cfi_enabled/cairo_wkc.nro.lz4" updated, "/nro/netfront/core_2/default/cfi_enabled/libfont.nro.lz4" updated, "/nro/netfront/core_2/default/cfi_enabled/oss_wkc.nro.lz4" updated, "/nro/netfront/core_2/default/cfi_enabled/peer_wkc.nro.lz4" updated, "/nro/netfront/core_2/default/cfi_enabled/webkit_wkc.nro.lz4" updated Help: "/legallines.htdocs/index.html" updated NgWord: updated SystemVersion: All files updated. TimeZoneBinary: updated FirmwareDebugSettings: All files updated. NgWord2: updated RebootlessSystemUpdateVersion: All files updated. NgWordT: All files updated. qlaunch applet: "/lyt/": Various data updated. "/message/": Various data updated. auth applet: "/lyt/": Various data updated. "/message/": Various data updated. netConnect applet: "/lyt/": Various data updated. "/message/": Various data updated. LibAppletWeb/LibAppletShop/LibAppletOff/LibAppletLns/LibAppletAuth: All files updated. "starter" application: "/lyt/": Various data updated. "/message/": Various data updated. The SDK library version strings were removed from all titles. The "SDK MW+Nintendo+{...}" strings are no longer present. The used libraries/versions can therefore no longer be determined via checking these strings (unless there's other version-strings).

IPC Interface Changes

Interface Changed: nn::sasbus::ISession Added: 4 - inbytes: 0x10, inhandles: [1], outbytes: 0x0 Added: 5 - inbytes: 0x0, outbytes: 0x0 Interface Removed: nn::news::detail::ipc::INewlyArrivedEventHolder Interface Removed: nn::news::detail::ipc::INewsDatabaseService Interface Added: nn::news::detail::ipc::IDeviceNewsDatabaseService Interface Added: nn::news::detail::ipc::INewArrivalEventHolder Interface Changed: nn::news::detail::ipc::INewsDataService Added: 1100 - inbytes: 0x18, outbytes: 0x0 Interface Changed: nn::news::detail::ipc::INewsService Removed: 30400 - buffers: [0x6, 0x5], inbytes: 0x0, outbytes: 0x8 Interface Changed: nn::news::detail::ipc::IServiceCreator Changed: 1 - outinterfaces: ['nn::news::detail::ipc::INewlyArrivedEventHolder'] -> ['nn::news::detail::ipc::INewArrivalEventHolder'] (final state: inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::news::detail::ipc::INewArrivalEventHolder']) Changed: 3 - outinterfaces: ['nn::news::detail::ipc::INewsDatabaseService'] -> ['nn::news::detail::ipc::IDeviceNewsDatabaseService'] (final state: inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::news::detail::ipc::IDeviceNewsDatabaseService']) Unknown Interface prev-version: 0x710007CD3C Unknown Interface cur-version: 0x71000844C0 Interface Changed: nn::friends::detail::ipc::IFriendService Added: 20105 - buffer_entry_sizes: [0x200], buffers: [0x6], inbytes: 0x28, outbytes: 0x4 Added: 20106 - buffer_entry_sizes: [0x200, 0x8], buffers: [0x6, 0x9], inbytes: 0x10, outbytes: 0x0 Added: 20502 - buffer_entry_sizes: [0x4A8, 0x8], buffers: [0x6, 0x9], inbytes: 0x10, outbytes: 0x0 Added: 20601 - buffer_entry_sizes: [0xE8], buffers: [0x1A], inbytes: 0x10, outbytes: 0x0 Added: 20702 - buffer_entry_sizes: [0x100], buffers: [0x6], inbytes: 0x18, outbytes: 0x4 Added: 20802 - buffer_entry_sizes: [0x800], buffers: [0x1A], inbytes: 0x10, outbytes: 0x0 Added: 22002 - buffer_entry_sizes: [0x500], buffers: [0x6], inbytes: 0x10, outbytes: 0x4 Added: 22003 - buffer_entry_sizes: [0x1400], buffers: [0x16], inbytes: 0x18, outbytes: 0x0 Added: 30501 - buffer_entry_sizes: [0x4A8], buffers: [0x1A], inbytes: 0x30, outbytes: 0x0 Added: 30701 - buffer_entry_sizes: [0x40, 0x48, 0x48], buffers: [0x19, 0x19, 0x19], inbytes: 0x28, outbytes: 0x0 Added: 30901 - buffer_entry_sizes: [0xC00, 0x8, 0x0], buffers: [0x15, 0x9, 0x5], inbytes: 0x30, outbytes: 0x0 Added: 31000 - inbytes: 0x28, outbytes: 0x0, outinterfaces: ['nn::friends::detail::ipc::INotificationService'] Interface Changed: nn::friends::detail::ipc::IServiceCreator Changed: 2 - outinterfaces: ['0x710007CD3C'] -> ['0x71000844C0'] (final state: inbytes: 0x0, outbytes: 0x0, outinterfaces: ['0x71000844C0']) Interface Removed: nn::fgm::sf::IRequest Interface Removed: nn::fgm::sf::ISession Interface Added: nn::fgm::IRequest Interface Added: nn::fgm::ISession Interface Changed: nn::psm::IPsmServer Added: 21 - inbytes: 0x0, outbytes: 0x4 Added: 22 - inbytes: 0x0, outbytes: 0x1 Added: 23 - inbytes: 0x1, outbytes: 0x0 Interface Changed: nn::bsdsocket::cfg::ServerInterface Added: 24 - buffers: [0x5], inbytes: 0x10, outbytes: 0x0, pid: True Interface Changed: nn::hid::IHidDebugServer Added: 212 - buffer_entry_sizes: [0x10], buffers: [0x6], inbytes: 0x8, outbytes: 0x4 Added: 253 - inbytes: 0x8, outbytes: 0x0 Removed: 351 - inbytes: 0x0, outbytes: 0x4 Removed: 352 - inbytes: 0x0, outbytes: 0x0 Interface Changed: nn::hid::IHidServer Added: 22 - inbytes: 0x4, outbytes: 0x0 Interface Changed: nn::hid::IHidSystemServer Removed: 214 - inbytes: 0x10, outbytes: 0x8 Added: 216 - inbytes: 0x10, outbytes: 0x8 Added: 217 - inbytes: 0x8, outbytes: 0x0, outhandles: [1, 1] Added: 218 - buffer_entry_sizes: [0x804], buffers: [0x32], inbytes: 0x8, outbytes: 0x0 Added: 219 - inbytes: 0x10, outbytes: 0x0 Added: 220 - inbytes: 0x8, outbytes: 0x0 Added: 221 - inbytes: 0x30, outbytes: 0x0 Added: 222 - buffer_entry_sizes: [0x3F4], buffers: [0x31], inbytes: 0x8, outbytes: 0x0 Added: 223 - buffer_entry_sizes: [0x218], buffers: [0x31], inbytes: 0x8, outbytes: 0x0 Added: 224 - buffer_entry_sizes: [0x64], buffers: [0x31], inbytes: 0x8, outbytes: 0x0 Added: 225 - inbytes: 0x10, outbytes: 0x0 Added: 226 - buffer_entry_sizes: [0x118], buffers: [0x31], inbytes: 0x8, outbytes: 0x0 Added: 227 - buffer_entry_sizes: [0x218], buffers: [0x31], inbytes: 0x8, outbytes: 0x0 Added: 234 - inbytes: 0x8, outbytes: 0x8 Added: 241 - inbytes: 0x8, outbytes: 0x1 Added: 242 - inbytes: 0x10, outbytes: 0x0 Added: 243 - inbytes: 0x8, outbytes: 0x1 Added: 244 - inbytes: 0x10, outbytes: 0x0 Added: 245 - inbytes: 0x8, outbytes: 0x20 Added: 246 - inbytes: 0x8, outbytes: 0x0 Added: 247 - inbytes: 0x10, outbytes: 0x0 Added: 332 - inbytes: 0x8, outbytes: 0x4 Added: 526 - inbytes: 0x0, outbytes: 0x1 Removed: 543 - buffer_entry_sizes: [0x30], buffers: [0xA], inbytes: 0x0, outbytes: 0x8 Added: 1420 - inbytes: 0x8, outbytes: 0xC Interface Changed: nn::xcd::detail::ISystemServer Removed: 0 - inbytes: 0x8, outbytes: 0x1 Removed: 1 - inbytes: 0xC, outbytes: 0x0 Removed: 2 - inbytes: 0x8, outbytes: 0x1 Removed: 3 - inbytes: 0xC, outbytes: 0x0 Removed: 4 - inbytes: 0x8, outbytes: 0x20 Removed: 5 - inbytes: 0x8, outbytes: 0x0 Removed: 6 - inbytes: 0xC, outbytes: 0x0 Removed: 10 - inbytes: 0x8, outbytes: 0x0, outhandles: [1, 1] Removed: 11 - buffer_entry_sizes: [0x804], buffers: [0x32], inbytes: 0x8, outbytes: 0x0 Removed: 12 - inbytes: 0x10, outbytes: 0x0 Removed: 13 - inbytes: 0x8, outbytes: 0x0 Removed: 14 - inbytes: 0x30, outbytes: 0x0 Removed: 15 - buffer_entry_sizes: [0x3F4], buffers: [0x19], inbytes: 0x8, outbytes: 0x0 Removed: 16 - buffer_entry_sizes: [0x218], buffers: [0x19], inbytes: 0x8, outbytes: 0x0 Removed: 17 - buffer_entry_sizes: [0x64], buffers: [0x19], inbytes: 0x8, outbytes: 0x0 Removed: 18 - inbytes: 0xC, outbytes: 0x0 Removed: 19 - buffer_entry_sizes: [0x118], buffers: [0x19], inbytes: 0x8, outbytes: 0x0 Removed: 20 - buffer_entry_sizes: [0x218], buffers: [0x19], inbytes: 0x8, outbytes: 0x0 Interface Changed: nn::audioctrl::detail::IAudioController Added: 5000 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::audioctrl::detail::IAudioController'] Removed: 50000 - inbytes: 0x4, outbytes: 0x0 Added: 50001 - inbytes: 0x4, outbytes: 0x0 Added: 50003 - buffers: [0x9], inbytes: 0x0, outbytes: 0x0 Added: 50004 - inbytes: 0x0, outbytes: 0x0 Interface Changed: nn::wlan::detail::IPrivateWirelessCommunicationService Changed: 2 - buffer_entry_sizes: [0x1F8] -> [0x9A] (final state: buffer_entry_sizes: [0x9A], buffers: [0x19], inbytes: 0x4, outbytes: 0x0) Changed: 12 - buffer_entry_sizes: [0x84] -> [0x80] (final state: buffer_entry_sizes: [0x80], buffers: [0x19], inbytes: 0x0, outbytes: 0x32) Interface Changed: nn::wlan::detail::IWirelessCommunicationService Changed: 60 - buffer_entry_sizes: [0x1F8] -> [0x9A] (final state: buffer_entry_sizes: [0x9A], buffers: [0x19], inbytes: 0x0, outbytes: 0x0) Changed: 90 - buffer_entry_sizes: [0x84] -> [0x80] (final state: buffer_entry_sizes: [0x80], buffers: [0x19], inbytes: 0x0, outbytes: 0x32) Changed: 100 - inbytes: 0x80 -> 0x7C (final state: inbytes: 0x7C, outbytes: 0x0) Added: 109 - inbytes: 0x8, outbytes: 0x0 Added: 120 - inbytes: 0x0, outbytes: 0x18 Added: 204 - buffers: [0x21], inbytes: 0x1, outbytes: 0x0 Interface Changed: nn::ldn::detail::ISystemLocalCommunicationService Added: 404 - inbytes: 0x10, outbytes: 0x0, pid: True Interface Changed: nn::ldn::detail::IUserLocalCommunicationService Added: 403 - inbytes: 0x4, outbytes: 0x0 Unknown Interface prev-version: 0x7100005438 Unknown Interface cur-version: 0x7100004EF0 Interface Changed: nn::account::IAccountEntityServiceForAccountPolicy Added: 52 - inbytes: 0x8, outbytes: 0x10 Added: 420 - buffer_entry_sizes: [0xD0], buffers: [0x19], inbytes: 0x10, outbytes: 0x0 Added: 421 - buffer_entry_sizes: [0xD0], buffers: [0x1A], inbytes: 0x10, outbytes: 0x0 Interface Changed: nn::account::IAccountEntityServiceForApplication Added: 52 - inbytes: 0x8, outbytes: 0x10 Interface Changed: nn::account::IAccountServiceForAdministrator Added: 52 - inbytes: 0x8, outbytes: 0x10 Added: 420 - buffer_entry_sizes: [0xD0], buffers: [0x19], inbytes: 0x10, outbytes: 0x0 Added: 421 - buffer_entry_sizes: [0xD0], buffers: [0x1A], inbytes: 0x10, outbytes: 0x0 Interface Changed: nn::account::IAccountServiceForSystemService Added: 52 - inbytes: 0x8, outbytes: 0x10 Interface Changed: nn::account::IAccountServiceForSystemServiceWithProfileEditor Added: 52 - inbytes: 0x8, outbytes: 0x10 Interface Changed: nn::account::baas::IAdministrator Added: 4 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4 Added: 136 - buffer_entry_sizes: [0x270, 0x0], buffers: [0x1A, 0x6], inbytes: 0x0, outbytes: 0x8 Added: 204 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::account::detail::IAsyncContext'] Added: 223 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::account::detail::IAsyncContext'] Interface Changed: nn::account::baas::IManagerForApplication Added: 4 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4 Interface Changed: nn::account::baas::IManagerForSystemService Added: 4 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4 Added: 136 - buffer_entry_sizes: [0x270, 0x0], buffers: [0x1A, 0x6], inbytes: 0x0, outbytes: 0x8 Interface Changed: nn::account::nas::IOAuthProcedureForExternalNsa Added: 1000 - buffer_entry_sizes: [0x1000, 0x100], buffers: [0x1A, 0x1A], inbytes: 0x0, outbytes: 0x0 Interface Changed: nn::account::profile::IProfile Added: 40 - inbytes: 0x0, outbytes: 0x10 Interface Changed: nn::account::profile::IProfileEditor Added: 40 - inbytes: 0x0, outbytes: 0x10 Interface Changed: nn::account::IAccountServiceForAdministrator Added: 52 - inbytes: 0x8, outbytes: 0x10 Added: 420 - buffer_entry_sizes: [0xD0], buffers: [0x19], inbytes: 0x10, outbytes: 0x0 Added: 421 - buffer_entry_sizes: [0xD0], buffers: [0x1A], inbytes: 0x10, outbytes: 0x0 Interface Changed: nn::account::IAccountServiceForApplication Added: 52 - inbytes: 0x8, outbytes: 0x10 Interface Changed: nn::account::IAccountServiceForSystemService Added: 52 - inbytes: 0x8, outbytes: 0x10 Interface Changed: nn::account::baas::IAdministrator Added: 4 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4 Added: 136 - buffer_entry_sizes: [0x270, 0x0], buffers: [0x1A, 0x6], inbytes: 0x0, outbytes: 0x8 Added: 204 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::account::detail::IAsyncContext'] Added: 223 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::account::detail::IAsyncContext'] Interface Changed: nn::account::baas::IManagerForApplication Added: 4 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4 Interface Changed: nn::account::baas::IManagerForSystemService Added: 4 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4 Added: 136 - buffer_entry_sizes: [0x270, 0x0], buffers: [0x1A, 0x6], inbytes: 0x0, outbytes: 0x8 Interface Changed: nn::account::nas::IOAuthProcedureForExternalNsa Added: 1000 - buffer_entry_sizes: [0x1000, 0x100], buffers: [0x1A, 0x1A], inbytes: 0x0, outbytes: 0x0 Interface Changed: nn::account::profile::IProfile Added: 40 - inbytes: 0x0, outbytes: 0x10 Interface Changed: nn::account::profile::IProfileEditor Added: 40 - inbytes: 0x0, outbytes: 0x10 Interface Changed: nn::ns::detail::IApplicationManagerInterface Changed: 94 - inbytes: 0x58 -> 0x88 (final state: inbytes: 0x88, outbytes: 0x8) Changed: 95 - outbytes: 0x50 -> 0x80 (final state: inbytes: 0x8, outbytes: 0x80) Changed: 96 - outbytes: 0x50 -> 0x80 (final state: inbytes: 0x8, outbytes: 0x80) Changed: 97 - inbytes: 0x50 -> 0x80 (final state: inbytes: 0x80, outbytes: 0x1) Removed: 406 - buffer_entry_sizes: [0x4000], buffers: [0x16], inbytes: 0x58, outbytes: 0x0 Added: 411 - buffers: [0x6], inbytes: 0x10, outbytes: 0x8 Added: 412 - inbytes: 0x10, outbytes: 0x0, outhandles: [1], outinterfaces: ['nn::ns::detail::IAsyncResult'] Added: 413 - inbytes: 0x1, outbytes: 0x4 Added: 414 - buffer_entry_sizes: [0x20], buffers: [0x6], inbytes: 0x1, outbytes: 0x4 Added: 415 - buffer_entry_sizes: [0x8], buffers: [0x5], inbytes: 0x10, inhandles: [1], outbytes: 0x0, outhandles: [1], outinterfaces: ['nn::ns::detail::IAsyncValue'] Added: 416 - buffers: [0x6], inbytes: 0x10, outbytes: 0x8 Added: 417 - inbytes: 0x1, outbytes: 0x0 Added: 418 - inbytes: 0x10, outbytes: 0x0 Added: 419 - inbytes: 0x10, outbytes: 0x0 Added: 420 - buffer_entry_sizes: [0x18], buffers: [0x5], inbytes: 0x20, outbytes: 0x0 Added: 511 - inbytes: 0x0, outbytes: 0x0, outhandles: [1] Added: 512 - inbytes: 0x0, outbytes: 0x1 Changed: 1802 - buffer_entry_sizes: [0x90] -> [0x98] (final state: buffer_entry_sizes: [0x98], buffers: [0x6], inbytes: 0x0, outbytes: 0x4) Changed: 1803 - buffer_entry_sizes: [0xB0] -> [0xB8] (final state: buffer_entry_sizes: [0xB8], buffers: [0x6], inbytes: 0x0, outbytes: 0x4) Added: 2360 - inbytes: 0x0, outbytes: 0x4 Added: 2361 - inbytes: 0x0, outbytes: 0x4 Changed: 2513 - inbytes: 0x50 -> 0x80 (final state: inbytes: 0x80, outbytes: 0x8) Changed: 2517 - inbytes: 0x50 -> 0x80 (final state: inbytes: 0x80, outbytes: 0x8) Added: 2524 - buffer_entry_sizes: [0x300], buffers: [0x16], inbytes: 0x10, outbytes: 0x10 Interface Changed: nn::ns::detail::IDevelopInterface Changed: 17 - outbytes: 0x50 -> 0x80 (final state: buffers: [0x5], inbytes: 0x4, outbytes: 0x80) Changed: 18 - inbytes: 0x50 -> 0x80 (final state: inbytes: 0x80, outbytes: 0x0, outhandles: [1]) Changed: 19 - inbytes: 0x50 -> 0x80 (final state: inbytes: 0x80, outbytes: 0x0) Changed: 21 - outbytes: 0x50 -> 0x80 (final state: inbytes: 0x10, outbytes: 0x80) Changed: 22 - inbytes: 0x50 -> 0x80 (final state: inbytes: 0x80, outbytes: 0x8) Changed: 23 - inbytes: 0x50 -> 0x80 (final state: inbytes: 0x80, outbytes: 0x8) Interface Changed: nn::ns::detail::IDocumentInterface Added: 2524 - buffer_entry_sizes: [0x300], buffers: [0x16], inbytes: 0x10, outbytes: 0x10 Interface Changed: nn::ns::detail::IReadOnlyApplicationControlDataInterface Added: 5 - buffers: [0x6], inbytes: 0x10, outbytes: 0x8 Added: 6 - buffers: [0x6], inbytes: 0x10, outbytes: 0x8 Interface Changed: nn::hshl::IChargeSetterSession Added: 5 - inbytes: 0x1, outbytes: 0x0 Interface Changed: nn::hshl::IManager Added: 13 - inbytes: 0x0, outbytes: 0x1 Interface Changed: nn::srepo::detail::ipc::ISrepoService Added: 13002 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4 Interface Changed: nn::timesrv::detail::service::IStaticService Added: 600 - inbytes: 0x0, outbytes: 0x8 Interface Changed: nn::timesrv::detail::service::ITimeServiceManager Added: 20 - inbytes: 0x0, outbytes: 0x18 Interface Changed: nn::capsrv::sf::IAlbumAccessorService Added: 8022 - buffer_entry_sizes: [0x20, 0x10], buffers: [0x6, 0x5], inbytes: 0x10, outbytes: 0x8 Added: 50001 - buffers: [0x6], inbytes: 0x18, outbytes: 0x0 Added: 50011 - inbytes: 0x0, outbytes: 0x4 Added: 50012 - inbytes: 0x4, outbytes: 0x0 Interface Changed: nn::capsrv::sf::IAlbumAccessorSession Added: 2009 - inbytes: 0x8, outbytes: 0x10 Interface Changed: nn::capsrv::sf::IAlbumControlService Changed: 2011 - inbytes: 0x10 -> 0x18 (final state: inbytes: 0x18, outbytes: 0x0) Changed: 2012 - inbytes: 0x10 -> 0x18 (final state: inbytes: 0x18, outbytes: 0x0) Changed: 2013 - outbytes: 0x8 -> 0x10 (final state: inbytes: 0x8, outbytes: 0x10) Changed: 2101 - inbytes: 0x10 -> 0x18 (final state: inbytes: 0x18, outbytes: 0x18) Added: 2103 - buffer_entry_sizes: [0x200, 0x88], buffers: [0x16, 0x15], inbytes: 0x8, outbytes: 0x0 Added: 2104 - buffer_entry_sizes: [0x200], buffers: [0x16], inbytes: 0x20, outbytes: 0x0 Added: 2401 - buffer_entry_sizes: [0x400], buffers: [0x16], inbytes: 0x18, outbytes: 0x0 Added: 2501 - inbytes: 0x0, outbytes: 0x4 Interface Changed: nn::capsrv::sf::IAlbumControlSession Added: 2009 - inbytes: 0x8, outbytes: 0x10 Interface Added: nn::am::service::IApplicationObserver Interface Added: nn::am::service::IMovieWriter Interface Added: nn::am::service::ISystemProcessCommonFunctions Interface Added: nn::grcsrv::IMovieWriter Interface Changed: nn::am::service::IAllSystemAppletProxiesService Added: 450 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::am::service::ISystemProcessCommonFunctions'] Interface Changed: nn::am::service::IAppletCommonFunctions Added: 310 - inbytes: 0x0, outbytes: 0x1 Added: 320 - inbytes: 0x8, outbytes: 0x0 Added: 321 - inbytes: 0x8, outbytes: 0x0 Added: 330 - inbytes: 0x0, outbytes: 0x1 Interface Changed: nn::am::service::IApplicationFunctions Added: 300 - inbytes: 0x8, inhandles: [1], outbytes: 0x0, outinterfaces: ['nn::am::service::IMovieWriter'] Interface Changed: nn::am::service::ICommonStateGetter Added: 15 - inbytes: 0x0, outbytes: 0x0, outhandles: [1] Removed: 600 - inbytes: 0x10, outbytes: 0x0, outinterfaces: ['nn::am::service::IStorageChannel'] Added: 1000 - inbytes: 0x0, outbytes: 0x0 Added: 1001 - inbytes: 0x0, outbytes: 0x0 Added: 1002 - inbytes: 0x0, outbytes: 0x1 Interface Changed: nn::am::service::IDebugFunctions Changed: 31 - inbytes: 0x58 -> 0x88 (final state: buffer_entry_sizes: [0x10, 0x0], buffers: [0x5, 0x5], inbytes: 0x88, outbytes: 0x0) Interface Changed: nn::am::service::IHomeMenuFunctions Added: 60 - inbytes: 0x0, outbytes: 0x0 Added: 61 - inbytes: 0x0, outbytes: 0x0 Interface Changed: nn::am::service::ILibraryAppletAccessor Added: 80 - inbytes: 0x0, outbytes: 0x0 Added: 81 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::am::service::IAppletAccessor'] Interface Changed: nn::am::service::IOverlayFunctions Added: 50 - inbytes: 0x8, outbytes: 0x0 Added: 60 - inbytes: 0x1, outbytes: 0x0 Interface Changed: nn::am::service::ISelfController Added: 22 - inbytes: 0x0, outbytes: 0x1 Added: 23 - inbytes: 0x0, outbytes: 0x1 Added: 24 - inbytes: 0x0, outbytes: 0x10 Interface Changed: nn::grcsrv::IGameMovieTrimmer Added: 21 - buffers: [0x45], inbytes: 0x8, outbytes: 0x0 Interface Changed: nn::ssl::sf::ISslServiceForSystem Changed: 103 - inbytes: 0x0 -> 0x4 (final state: buffers: [0x5, 0x5, 0x5], inbytes: 0x4, outbytes: 0x0) Interface Changed: nn::nim::detail::INetworkInstallManager Added: 150 - buffer_entry_sizes: [0x300], buffers: [0x16], inbytes: 0x20, outbytes: 0x0 Interface Changed: nn::erpt::sf::IContext Changed: 2 - inbytes: 0x18 -> 0x20 (final state: inbytes: 0x20, outbytes: 0x0) Interface Changed: nn::capsrv::sf::IScreenShotControlService Changed: 1004 - inbytes: 0x68 -> 0x70 (final state: buffer_entry_sizes: [0x404, 0x88], buffers: [0x15, 0x15], inbytes: 0x70, outbytes: 0x0) Changed: 1106 - inbytes: 0x68 -> 0x78 (final state: buffer_entry_sizes: [0x400, 0x404, 0x88, 0x0, 0x0, 0x0], buffers: [0x15, 0x15, 0x15, 0x6, 0x46, 0x46], inbytes: 0x78, outbytes: 0x18) Changed: 1107 - inbytes: 0x68 -> 0x78 (final state: buffer_entry_sizes: [0x400, 0x404, 0x88, 0x0, 0x0], buffers: [0x15, 0x15, 0x15, 0x6, 0x45], inbytes: 0x78, outbytes: 0x18) Changed: 1108 - inbytes: 0x70 -> 0x80 (final state: buffer_entry_sizes: [0x400, 0x404, 0x88, 0x0], buffers: [0x15, 0x15, 0x15, 0x6], inbytes: 0x80, outbytes: 0x18) Added: 1109 - buffer_entry_sizes: [0x400, 0x404, 0x88, 0x0, 0x0, 0x0], buffers: [0x15, 0x15, 0x15, 0x6, 0x45, 0x45], inbytes: 0x78, outbytes: 0x18 Added: 1110 - buffers: [0x6, 0x45, 0x6], inbytes: 0x8, outbytes: 0x8 Added: 1111 - buffer_entry_sizes: [0x400, 0x404, 0x0, 0x0, 0x0], buffers: [0x15, 0x15, 0x6, 0x46, 0x46], inbytes: 0x80, outbytes: 0x18 Added: 1112 - buffer_entry_sizes: [0x400, 0x404, 0x0, 0x0], buffers: [0x15, 0x15, 0x6, 0x45], inbytes: 0x80, outbytes: 0x18 Added: 1113 - buffer_entry_sizes: [0x400, 0x404, 0x0], buffers: [0x15, 0x15, 0x6], inbytes: 0x88, outbytes: 0x18 Added: 1114 - buffer_entry_sizes: [0x400, 0x404, 0x0, 0x0, 0x0], buffers: [0x15, 0x15, 0x6, 0x45, 0x45], inbytes: 0x80, outbytes: 0x18 Interface Changed: nn::capsrv::sf::IScreenShotService Changed: 1000 - inbytes: 0x68 -> 0x70 (final state: buffer_entry_sizes: [0x88, 0x400], buffers: [0x15, 0x15], inbytes: 0x70, outbytes: 0x20) Interface Changed: nn::dp2hdmi::detail::IDp2hdmiController Removed: 7 - inbytes: 0x0, outbytes: 0x0 Interface Changed: nn::pctl::detail::ipc::IParentalControlService Added: 2017 - inbytes: 0x20, outbytes: 0x8, outhandles: [1] Added: 2019 - inbytes: 0x0, outbytes: 0x0 Interface Added: nn::npns::IFuture Interface Added: nn::npns::ISubscriptionUpdateNotifier Interface Changed: nn::npns::INpnsSystem Added: 17 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::npns::ISubscriptionUpdateNotifier'] Added: 60 - buffer_entry_sizes: [0x298], buffers: [0x15], inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::npns::IFuture'] Added: 61 - inbytes: 0x0, outbytes: 0x1 Added: 141 - buffers: [0x9], inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::npns::IFuture'] Added: 142 - buffers: [0x9], inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::npns::IFuture'] Added: 143 - buffers: [0x9], inbytes: 0x8, outbytes: 0x0, outinterfaces: ['nn::npns::IFuture'] Added: 144 - buffers: [0x9], inbytes: 0x8, outbytes: 0x0, outinterfaces: ['nn::npns::IFuture'] Added: 145 - inbytes: 0x10, inhandles: [1], outbytes: 0x0, outinterfaces: ['nn::npns::IFuture'] Interface Changed: nn::arp::detail::IRegistrar Removed: 2 - buffer_entry_sizes: [0x4000], buffers: [0x15], inbytes: 0x0, outbytes: 0x0 Interface Changed: nn::arp::detail::IWriter Added: 4 - buffer_entry_sizes: [0x4000], buffers: [0x15], inbytes: 0x8, outbytes: 0x0 Interface Changed: nn::timesrv::detail::service::IStaticService Added: 600 - inbytes: 0x0, outbytes: 0x8 Interface Changed: nn:🇪🇸:IETicketService Changed: 1027 - buffer_entry_sizes: [0x10, 0x0] -> [0x10, 0x8, 0x0], buffers: [0x6, 0x5] -> [0x6, 0x5, 0x5], inbytes: 0x10 -> 0x8 (final state: buffer_entry_sizes: [0x10, 0x8, 0x0], buffers: [0x6, 0x5, 0x5], inbytes: 0x8, outbytes: 0x4) Added: 1029 - buffer_entry_sizes: [0x18, 0x8, 0x0], buffers: [0x6, 0x5, 0x5], inbytes: 0x10, outbytes: 0x4 Interface Added: nn::grcsrv::IMovieWriter Interface Changed: nn::grcsrv::IGameMovieTrimmer Added: 21 - buffers: [0x45], inbytes: 0x8, outbytes: 0x0 Interface Changed: nn::grcsrv::IGrcService Added: 110 - inbytes: 0x20, inhandles: [1], outbytes: 0x0, outinterfaces: ['nn::grcsrv::IMovieWriter'] Interface Changed: nn::mii::detail::IDatabaseService Added: 27 - inbytes: 0x0, outbytes: 0x0 Interface Changed: nn::mii::detail::IImageDatabaseService Added: 18 - buffers: [0x5], inbytes: 0x3A, outbytes: 0x0 Interface Changed: nn::migration::savedata::IClient Added: 510 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::migration::detail::IAsyncContext'] Interface Changed: nn::migration::savedata::IServer Added: 510 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::migration::detail::IAsyncContext'] Interface Changed: nn::migration::user::IService Added: 0 - inbytes: 0x0, outbytes: 0x2 Interface Changed: nn::olsc::srv::IOlscServiceForSystemService Changed: 907 - inbytes: 0x70 -> 0x78 (final state: inbytes: 0x78, outbytes: 0x0) Interface Changed: nn::omm::detail::IOperationModeManager Added: 29 - inbytes: 0x0, outbytes: 0x0, outhandles: [1] Interface Changed: nn::omm::srv::IDisplayLayerControl Changed: 610 - buffer_entry_sizes: [0x4C8] -> [0x4D0] (final state: buffer_entry_sizes: [0x4D0], buffers: [0x15], inbytes: 0x0, outbytes: 0x0) Changed: 611 - buffer_entry_sizes: [0x4C8] -> [0x4D0] (final state: buffer_entry_sizes: [0x4D0], buffers: [0x15], inbytes: 0x0, outbytes: 0x0) Changed: 612 - buffer_entry_sizes: [0x4C8] -> [0x4D0] (final state: buffer_entry_sizes: [0x4D0], buffers: [0x15], inbytes: 0x0, outbytes: 0x0) Interface Changed: nn::fssrv::sf::IDeviceOperator Changed: 206 - outbytes: 0x0 -> 0x8 (final state: buffers: [0x6], inbytes: 0x10, outbytes: 0x8) Added: 223 - inbytes: 0x8, outbytes: 0x0 Added: 224 - buffers: [0x6], inbytes: 0x10, outbytes: 0x2 Interface Changed: nn::fssrv::sf::IFileSystemProxy Added: 29 - inbytes: 0x0, outbytes: 0x1 Added: 503 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::IEventNotifier'] Added: 632 - inbytes: 0x20, outbytes: 0x0 Added: 820 - inbytes: 0x0, outbytes: 0x4 Interface Changed: nn::ldr::detail::IProcessManagerInterface Changed: 1 - buffer_entry_sizes: [0x400] -> [0x410] (final state: buffer_entry_sizes: [0x410], buffers: [0x1A], inbytes: 0x10, outbytes: 0x0) Interface Changed: nn::pm::detail::IBootModeInterface Added: 2 - inbytes: 0x0, outbytes: 0x4 Added: 3 - inbytes: 0x4, outbytes: 0x0 Interface Changed: nn::pm::detail::IShellInterface Added: 12 - inbytes: 0x8, outbytes: 0x8 Interface Changed: nn::sasbus::ISession Added: 4 - inbytes: 0x10, inhandles: [1], outbytes: 0x0 Added: 5 - inbytes: 0x0, outbytes: 0x0 Interface Changed: nn::fssrv::sf::IDeviceOperator Changed: 206 - outbytes: 0x0 -> 0x8 (final state: buffers: [0x6], inbytes: 0x10, outbytes: 0x8) Added: 223 - inbytes: 0x8, outbytes: 0x0 Added: 224 - buffers: [0x6], inbytes: 0x10, outbytes: 0x2 Interface Changed: nn::fssrv::sf::IFileSystemProxy Added: 29 - inbytes: 0x0, outbytes: 0x1 Added: 503 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::IEventNotifier'] Added: 632 - inbytes: 0x20, outbytes: 0x0 Added: 820 - inbytes: 0x0, outbytes: 0x4 Interface Changed: nn::ldr::detail::IProcessManagerInterface Changed: 1 - buffer_entry_sizes: [0x400] -> [0x410] (final state: buffer_entry_sizes: [0x410], buffers: [0x1A], inbytes: 0x10, outbytes: 0x0) Interface Changed: nn::pm::detail::IBootModeInterface Added: 2 - inbytes: 0x0, outbytes: 0x4 Added: 3 - inbytes: 0x4, outbytes: 0x0 Interface Changed: nn::pm::detail::IShellInterface Added: 12 - inbytes: 0x8, outbytes: 0x8 Interface Changed: nn::hshl::IChargeSetterSession Added: 5 - inbytes: 0x1, outbytes: 0x0 Interface Changed: nn::hshl::IManager Added: 13 - inbytes: 0x0, outbytes: 0x1 Interface Changed: nn::srepo::detail::ipc::ISrepoService Added: 13002 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4 Interface Changed: nn::timesrv::detail::service::IStaticService Added: 600 - inbytes: 0x0, outbytes: 0x8 Interface Changed: nn::timesrv::detail::service::ITimeServiceManager Added: 20 - inbytes: 0x0, outbytes: 0x18 Interface Changed: nn::fssrv::sf::IDeviceOperator Changed: 206 - outbytes: 0x0 -> 0x8 (final state: buffers: [0x6], inbytes: 0x10, outbytes: 0x8) Added: 223 - inbytes: 0x8, outbytes: 0x0 Added: 224 - buffers: [0x6], inbytes: 0x10, outbytes: 0x2 Interface Changed: nn::fssrv::sf::IFileSystemProxy Added: 29 - inbytes: 0x0, outbytes: 0x1 Added: 503 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::IEventNotifier'] Added: 632 - inbytes: 0x20, outbytes: 0x0 Added: 820 - inbytes: 0x0, outbytes: 0x4 Interface Changed: nn::ldr::detail::IProcessManagerInterface Changed: 1 - buffer_entry_sizes: [0x400] -> [0x410] (final state: buffer_entry_sizes: [0x410], buffers: [0x1A], inbytes: 0x10, outbytes: 0x0) Interface Changed: nn::pm::detail::IBootModeInterface Added: 2 - inbytes: 0x0, outbytes: 0x4 Added: 3 - inbytes: 0x4, outbytes: 0x0 Interface Changed: nn::pm::detail::IShellInterface Added: 12 - inbytes: 0x8, outbytes: 0x8 Interface Changed: nn::sasbus::ISession Added: 4 - inbytes: 0x10, inhandles: [1], outbytes: 0x0 Added: 5 - inbytes: 0x0, outbytes: 0x0 Interface Changed: nn::fssrv::sf::IDeviceOperator Changed: 206 - outbytes: 0x0 -> 0x8 (final state: buffers: [0x6], inbytes: 0x10, outbytes: 0x8) Added: 223 - inbytes: 0x8, outbytes: 0x0 Added: 224 - buffers: [0x6], inbytes: 0x10, outbytes: 0x2 Interface Changed: nn::fssrv::sf::IFileSystemProxy Added: 29 - inbytes: 0x0, outbytes: 0x1 Added: 503 - inbytes: 0x0, outbytes: 0x0, outinterfaces: ['nn::fssrv::sf::IEventNotifier'] Added: 632 - inbytes: 0x20, outbytes: 0x0 Added: 820 - inbytes: 0x0, outbytes: 0x4 Interface Changed: nn::ldr::detail::IProcessManagerInterface Changed: 1 - buffer_entry_sizes: [0x400] -> [0x410] (final state: buffer_entry_sizes: [0x410], buffers: [0x1A], inbytes: 0x10, outbytes: 0x0) Interface Changed: nn::pm::detail::IBootModeInterface Added: 2 - inbytes: 0x0, outbytes: 0x4 Added: 3 - inbytes: 0x4, outbytes: 0x0 Interface Changed: nn::pm::detail::IShellInterface Added: 12 - inbytes: 0x8, outbytes: 0x8 Interface Changed: nn::hshl::IChargeSetterSession Added: 5 - inbytes: 0x1, outbytes: 0x0 Interface Changed: nn::hshl::IManager Added: 13 - inbytes: 0x0, outbytes: 0x1 Interface Changed: nn::srepo::detail::ipc::ISrepoService Added: 13002 - buffers: [0x6], inbytes: 0x0, outbytes: 0x4 Interface Changed: nn::timesrv::detail::service::IStaticService Added: 600 - inbytes: 0x0, outbytes: 0x8 Interface Changed: nn::timesrv::detail::service::ITimeServiceManager Added: 20 - inbytes: 0x0, outbytes: 0x18

BootImagePackages

RomFs changes: all files updated.

Using updated master-key: master_key_12 (previously master_key_11). See NCA for the KeyGeneration listing.

The anti-downgrade fuses were updated.

Kernel

KMemoryManager now supports per-pool-partition minimum page alignments. KMemoryManager::Initialize now aborts unless a valid pool index is chosen. KMemoryManager::Initialize now takes an additional array argument of minimum-page alignments (one array entry per pool partition). This array is currently all-zero, which corresponds to minimum allocation alignment of 0x1000 (1 page). Allocation functions now check that alignment is valid for the pool's minimum. MapPhysicalMemory now checks alignment based on the mm min-pages. UnmapPhysicalMemory now checks alignment based on the mm min-pages. StartProcess() now checks alignment/aligns up based on the mm min-pages. KProcess::Run no longer aligns the input stack-size up to page size when checking that stack + code size does not exceed m_max_process_memory. KMemoryBlock was refactored: Fields were shuffled around, optimizing the storage layout. The last field now ends @ +0x3A, instead of +0x40 before, coming close to but not actually saving 8 bytes per block. This presumably makes space for fields which are ifdef'd out on NX. DisableMergeAttribute_(Device)Right is now 0x20, instead of 0x10. Bit 0x10 appears nowhere in entire kernel now, and code which previously did & 0xF to get the Left disable attrs still does & 0xF. Bit 0x10 is presumably ifdef'd out on NX. KMemoryInfo is essentially no longer used at all any more. All cases where GetMemoryInfo was called now use the fields from the KMemoryBlock directly. The one exception to this is KPageTableBase::QueryInfo, which still returns a KMemoryInfo as output variable. The kernel now handles ttbr0 management completely differently: The kernel now stores an array of 0x51 TTBR0 pages (Kernel + 0x50 KProcesses, matching the slab heap size) in .rodata. Initialize1 now calls a new function prior to unmapping the identity mapping which allocates these pages from the InitialPageAllocator (using paddr lookup + the identity mapping to write to the read-only array in .rodata). KSleepSystemRegisters::Save no longer saves TTBR0_EL1; ::Restore sets ttbr0_el1 to g_Ttbr0Pages[0]. KProcess::InitializeUser now checks that the KProcess is within the slabheap; the KProcess's slab heap index is now passed to KProcessPageTable::Initialize. KPageTable no longer has any globals to track ASID management; ASID is now just the KProcess's slab heap index + 1. KTargetSystem refactor: KTargetSystem is now located in .rodata, and no longer 4-byte aligns the bools. new .init_array function initializes all the KTargetSystem values in .rodata (before the region is write-protected) using values-from-smc. KSystemControl::Initialize() now sets new bool (g_HasKTargetSystem) to true. Instead of setting values, KSystemControl now does ABORT_UNLESS(value_from_smc == (g_HasKTargetSystem && g_KTargetSystem.value)) for all values. This essentially just checks that the previous .init call worked as expected. All KTargetSystem::Is*() calls now return g_HasKTargetSystem && g_KTargetSystem.value instead of just returning g_KTargetSystem.value Note: these are still fully inlined in all cases. KAddressSpaceInfo::GetBegin/GetSize now take in CreateProcess flags instead of bit-width. svc::WaitForAddress now supports a new ArbitrationType (ArbitrationType_WaitIfEqual64, value=3). svc::WaitForAddress's "value" parameter is now an int64_t, instead of an int32_t. When ArbitrationType_WaitIfEqual64 is passed, address is now checked for 8-byte alignment instead of 4-byte alignment, and 64-bit value is read/compared from userspace instead of 32-bit. New InfoType 0x22: "InfoType_TransferMemoryHint" This returns a hint for the transfer memory's process address. InfoType values 0x1D-0x21 are presumably ifdef'd out on NX. KProcess->max_process_memory is now set to GetHeapRegionSize() in all cases. Previously, this was GetHeapRegionSize() + GetAliasRegionSize() for processes with AddressSpace32BitWithoutAlias. The kernel now supports execute-only memory (--X). SetProcessMemoryPermission now supports MemoryPermission_Execute. KPageTableBase::SetProcessMemoryPermission now acquires and immediately releases the scheduler lock prior to operating, if the Execute bit is set on the input permissions. KPageTable::GetEntryTemplate now checks for the MemoryPermission_Execute bit instead of checking directly against ReadExecute. HandleException now supports using supervisor-mode access to read the failing instruction on Unknown/IllegalState/Bkpt/Brk. Supervisor-mode access is used only if user-access fails, KTargetSystem::IsDebugMode() returns true, pc is 4-byte aligned, and 0x200000 <= PC <= (1 << 39). HandleException now no longer forces processing when accessing MemoryState_Code without KMemoryPermission_UserRead. The way DebugFlags capabilities works was changed: Previously, bit0=AllowDebug, bit1=ForceDebug. Now, bit0=AllowDebug, bit1=ForceDebugProd, bit2=ForceDebug. Processes may now only have one of the above bits set, previously both AllowDebug and ForceDebug were allowed simultaneously. New function requires KTargetSystem::IsDebugMode(): GetProcessList, Many functions now require (KTargetSystem::IsDebugMode() || GetCurrentProcess().IsForceDebugProd()): DebugActiveProcess, GetDebugEvent, QueryDebugProcessMemory, ReadDebugMemory, GetThreadList, GetDebugThreadContext, GetDebugThreadParam, KDebug now has a member which tracks whether the owner process is ForceDebugProd. KDebugBase::Attach now requires !ForceDebugProd when attaching to a process in the Created/Running states. Crashed may still be attached to when ForceDebugProd. KDebugBase::GetDebugEventInfo now always sets instruction = 0 when creating info for an UndefinedInstruction exception when ForceDebugProd. KDebugBase::(Read/Write)Memory no longer allow reading/writing Io memory when ForceDebugProd is set. KPageTableBase::(Read/Write)DebugMemory now check memory state differently: Previously: either memory had to be UserRead/UserReadWrite (no state flags check) or KMemoryState_FlagCanDebug had to be set. Now: memory has to be UserRead/UserReadWrite (no state flags check) or (memory has to be UserRead AND KMemoryState_FlagCanDebug has to be set) or (IsDebugMode() && !ForceDebugProd && memory has to have KernelRead|UserExecute bits && KMemoryState_FlagCanDebug has to be set) This renders the original flag check completely pointless for ReadDebugMemory (but still allows writing to UserRead memory). Memory which was previously readable despite not-user-read is no longer readable. Execute-only memory is readable, but only when running under debug mode and using a KDebug created by a process which does not have ForceDebugProd set. The ForceDebugProd check is not present for WriteDebugMemory. GetThreadList() no longer functions in non-debug mode even with ForceDebugProd KDebugBase::TerminateProcess no longer detaches from the target process. Changes relevant to debugging the kernel: EL1SynchronousExceptionHandler now infinite loops instead of calling HandleException. SupervisorModeThreadStarter now sets X30 to 0 + creates a stack frame + invokes the thread function with "BLR X1" instead of "BR X1". This guarantees validity if walking kernel stack frames. KPageTable implementation was heavily rewritten. Too many changes to summarize here; the fundamental implementation is now based on iteration over levels using TraversalContext instead of separate per-level logic. KPageTableBase::SetupForIpcClient now validates that the unused (on nx) upper memory attribute bits are all unset. Many heavy K(Initial)PageTable changes, including: KInitialPageTable's table entries no longer have bit 58 (0x0400000000000000) set; previously this was used to indicate/determine whether a mapping was present even if the entry was NotMapped. Bit0 (0x1) is now used to check for mapping existence again in many places. KPageTableImpl::InitializeForKernel now iterates over mappings created by KInitialPageTable, setting PageAttribute=#used entries for tables and setting bit 58 on blocks. KInterruptController::Finalize() now sets m_gicd and m_gicc to nullptr if core id == 0.

audio

Besides IPC changes, vulns were fixed.

ssl

Besides IPC changes, a vuln was fixed.