Line 1:
Line 1:
−
IOS28 is the first IOS to be split into multiple modules, each its own [[ELF]] [[ARM Binaries|ARM binary]], rather than all of IOS being part of a single monolithic binary.
+
{{Infobox IOS
+
| version = v1807
+
| type = common
+
| status = active
+
| parent = [[IOS21]]
+
| children = [[IOS22]]<br />[[IOS30]]
+
}}
+
+
'''IOS28''' is the first [[IOS]] to be split into multiple modules, each its own [[ELF]] [[ARM Binaries|ARM binary]], rather than all of IOS being part of a single monolithic binary. Its [[:/dev/es|ES]] module includes ioctls that retrieve shared contents, probably for the purpose of quickly loading IOS modules. Modules are also now tagged with $IOSVersion dates, since the build tag can no longer completely summarize the IOS. Older IOSes were later given module-specific $IOSVersion tags as they were updated.
+
+
IOS28 and up also use a different IPC range, which it sets when it is loaded. Because [[IOS22]] and below do not set their IPC ranges, instead inheriting them from boot (probably [[boot2]]), IOS28 and above always reset the IPC range to the old one before reloading to a different IOS, which allows the old IOSes to have the old range while also allowing new IOSes to set their own range.{{ref|https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/Core/IOS/IOS.cpp}}
+
+
This also appears to be the first IOS to support [[:/sys/disc.sys]]; this probably means Metroid Prime 3: Corruption requires special privileges.
+
+
IOS28 seems to have been modularized completely separately from [[IOS30]] and [[IOS31]]; because those were the IOSes that all other modular IOSes were branched from, IOS28 has a unique set of modules. IOS28's FS module was built 9 seconds later than IOS30, and DI, SDI, OH0, and OH1 were each built 3 minutes and 1 second later than in IOS30, and only seem to differ in the version reported. IOS30 has a newer IOSP from 06/25/07 instead of 06/08/07. Additionally, not all IOS28 modules have $IOSVersion tags (probably only the ones that changed since IOS22), but this was fixed in IOS30.
+
+
Since DI only differs from IOS30 in the heap location, error 001 most likely works in IOS28. The lack of it being enabled is most likely a result of it not being thoroughly tested at the time IOS28 was built.
+
+
IOSP was updated for the first time since [[IOS11]]; IOS11's IOSP was built on 10/25/2006, while IOS28's IOSP was built on 6/8/2007. While no build dates are present in older IOSes for ES, FS, and SDI, it can be assumed that they followed a similar pattern of not updating because [[3.3rev03]] had identical copies of these modules for all IOSes between IOS11 and IOS22. DI followed a similar trend, although it was also not updated between [[IOS9]] and [[IOS11]].
+
+
The [[SSL]] module in IOS28 has been given PID 16. Previously, SSL shared PID 15 with the [[Broadway]] IPC calls.
+
+
== Titles using this IOS ==
+
The only game that uses it is Metroid Prime 3: Corruption, and this IOS was included in the update partition of the disc.
+
+
== Version history ==
+
{{IOS version history|
+
{{IOS version|v768|none|Unreleased; known to exist because the [[WiiConnect24]] FW user agent in v1288 is <code>WiiConnect24/FW_28.3.0</code>.}}
+
{{IOS version|v1288|none|Not available on NUS.}}
+
{{IOS version|v1292|identify}}
+
{{IOS version|v1293|stm}}
+
{{IOS version|v1550|stmioctl}}
+
{{IOS version|v1806|sdireg}}
+
{{IOS version|v1807|sdireg|Updated WL and NCD ([[4.3rev03]])}}
+
{{IOS version|v2063|sdireg|Only found on [[vWii]] and newer [[RVL-101]] units.}}
+
{{IOS version|v27663|sdireg|Only found on [[Wii mini]]}}
+
}}
+
+
== References ==
+
{{references}}
−
{| class="wikitable"
−
|-
−
! Version
−
! [[Signing bug]]?
−
! [[STM Release Exploit]]?
−
! Notes
−
|-
−
| v1288
−
| ?
−
| ?
−
| Not present on NUS
−
|-
−
| v1292
−
| ?
−
| ?
−
|
−
|-
−
| v1293
−
| ?
−
| ?
−
|
−
|-
−
| v1550
−
| ?
−
| ?
−
|
−
|-
−
| v1806
−
| ?
−
| ?
−
|
−
|-
−
| v1807
−
| ?
−
| ?
−
|
−
|}
{{Navbox IOS}}
{{Navbox IOS}}