<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.theiphonewiki.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rickmark</id>
	<title>The iPhone Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.theiphonewiki.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rickmark"/>
	<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/wiki/Special:Contributions/Rickmark"/>
	<updated>2026-05-07T10:27:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122123</id>
		<title>Hack Different</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122123"/>
		<updated>2022-04-14T05:55:15Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: /* Hacky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:HackDifferent.png]]&lt;br /&gt;
&lt;br /&gt;
Hack Different is an open community originated by the [[checkra1n]] core team.  It provides a more open jailbreak and research support network.  The Hack Different GitHub organization serves as maintainer for several key projects to ensure support and continuity.&lt;br /&gt;
&lt;br /&gt;
* [http://hackdiffe.rent http://hackdiffe.rent Main Page]&lt;br /&gt;
* [https://discord.gg/hackdifferent https://discord.gg/hackdifferent Discord Server]&lt;br /&gt;
* [https://github.com/hack-different https://github.com/hack-different GitHub Organization]&lt;br /&gt;
&lt;br /&gt;
== Hacky ==&lt;br /&gt;
&lt;br /&gt;
[[File:Hacky.png]]&lt;br /&gt;
&lt;br /&gt;
Hacky is an open source bot that provides a semblance of order in Hack Different's Discord server.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackers]]&lt;br /&gt;
[[Category:Teams]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122122</id>
		<title>Hack Different</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122122"/>
		<updated>2022-04-14T05:54:53Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:HackDifferent.png]]&lt;br /&gt;
&lt;br /&gt;
Hack Different is an open community originated by the [[checkra1n]] core team.  It provides a more open jailbreak and research support network.  The Hack Different GitHub organization serves as maintainer for several key projects to ensure support and continuity.&lt;br /&gt;
&lt;br /&gt;
* [http://hackdiffe.rent http://hackdiffe.rent Main Page]&lt;br /&gt;
* [https://discord.gg/hackdifferent https://discord.gg/hackdifferent Discord Server]&lt;br /&gt;
* [https://github.com/hack-different https://github.com/hack-different GitHub Organization]&lt;br /&gt;
&lt;br /&gt;
== Hacky ==&lt;br /&gt;
&lt;br /&gt;
Hacky is an open source bot that provides a semblance of order in Hack Different's Discord server.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackers]]&lt;br /&gt;
[[Category:Teams]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122121</id>
		<title>Hack Different</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122121"/>
		<updated>2022-04-14T05:54:42Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:HackDifferent.jpg]]&lt;br /&gt;
&lt;br /&gt;
Hack Different is an open community originated by the [[checkra1n]] core team.  It provides a more open jailbreak and research support network.  The Hack Different GitHub organization serves as maintainer for several key projects to ensure support and continuity.&lt;br /&gt;
&lt;br /&gt;
* [http://hackdiffe.rent http://hackdiffe.rent Main Page]&lt;br /&gt;
* [https://discord.gg/hackdifferent https://discord.gg/hackdifferent Discord Server]&lt;br /&gt;
* [https://github.com/hack-different https://github.com/hack-different GitHub Organization]&lt;br /&gt;
&lt;br /&gt;
== Hacky ==&lt;br /&gt;
&lt;br /&gt;
Hacky is an open source bot that provides a semblance of order in Hack Different's Discord server.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackers]]&lt;br /&gt;
[[Category:Teams]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=File:HackDifferent.png&amp;diff=122120</id>
		<title>File:HackDifferent.png</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=File:HackDifferent.png&amp;diff=122120"/>
		<updated>2022-04-14T05:54:13Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: The Hack Different logo, with the checkm8 logo included as a nod to the origination by the checkra1n team and the importance of checkm8 to research&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
The Hack Different logo, with the checkm8 logo included as a nod to the origination by the checkra1n team and the importance of checkm8 to research&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=File:Hacky.png&amp;diff=122119</id>
		<title>File:Hacky.png</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=File:Hacky.png&amp;diff=122119"/>
		<updated>2022-04-14T05:53:14Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: The logo for Hacky, the Hack Different bot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
The logo for Hacky, the Hack Different bot&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122118</id>
		<title>Hack Different</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122118"/>
		<updated>2022-04-14T05:52:29Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:HackDifferent]]&lt;br /&gt;
&lt;br /&gt;
Hack Different is an open community originated by the [[checkra1n]] core team.  It provides a more open jailbreak and research support network.  The Hack Different GitHub organization serves as maintainer for several key projects to ensure support and continuity.&lt;br /&gt;
&lt;br /&gt;
* [http://hackdiffe.rent http://hackdiffe.rent Main Page]&lt;br /&gt;
* [https://discord.gg/hackdifferent https://discord.gg/hackdifferent Discord Server]&lt;br /&gt;
* [https://github.com/hack-different https://github.com/hack-different GitHub Organization]&lt;br /&gt;
&lt;br /&gt;
== Hacky ==&lt;br /&gt;
&lt;br /&gt;
Hacky is an open source bot that provides a semblance of order in Hack Different's Discord server.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackers]]&lt;br /&gt;
[[Category:Teams]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122117</id>
		<title>Hack Different</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122117"/>
		<updated>2022-04-14T05:51:19Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hack Different is an open community originated by the [[checkra1n]] core team.  It provides a more open jailbreak and research support network.  The Hack Different GitHub organization serves as maintainer for several key projects to ensure support and continuity.&lt;br /&gt;
&lt;br /&gt;
* [http://hackdiffe.rent http://hackdiffe.rent Main Page]&lt;br /&gt;
* [https://discord.gg/hackdifferent https://discord.gg/hackdifferent Discord Server]&lt;br /&gt;
* [https://github.com/hack-different https://github.com/hack-different GitHub Organization]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackers]]&lt;br /&gt;
[[Category:Teams]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Rickmark&amp;diff=122116</id>
		<title>User:Rickmark</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Rickmark&amp;diff=122116"/>
		<updated>2022-04-14T05:50:21Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
'''rickmark''' is known for the adaptation of '''libimobiledevice''' for the T2 processor, as well as reverse engineering the [[USB Target Disk Mode]] protocol.&lt;br /&gt;
&lt;br /&gt;
He also participated in [[t8012 checkm8]] and it's inclusion in [[checkra1n]].&lt;br /&gt;
&lt;br /&gt;
He actively participates in [[Hack Different]] which hosts a number of open source Apple ecosystem projects[https://github.com/hack-different], as well as a Discord server[https://discord.gg/hackdifferent]&lt;br /&gt;
&lt;br /&gt;
He originated and actively maintains the `apple-knowledge` project, which creates machine readable documentation of Apple platforms to supplement the lack of specification and documentation in the Apple ecosystem.&lt;br /&gt;
&lt;br /&gt;
GPG Keygrip &amp;lt;code&amp;gt;AB8A 31E3 F065 3820 8409  222E DCC7 7F05 03C5 4932&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://github.com/rickmark Github]&lt;br /&gt;
* [https://github.com/su_rickmark Twitter]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackers]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Rickmark&amp;diff=122115</id>
		<title>User:Rickmark</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Rickmark&amp;diff=122115"/>
		<updated>2022-04-14T05:49:59Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
'''rickmark''' is known for the adaptation of '''libimobiledevice''' for the T2 processor, as well as reverse engineering the [[USB Target Disk Mode]] protocol.&lt;br /&gt;
&lt;br /&gt;
He also participated in [[t8012 checkm8]] and it's inclusion in [[checkra1n]].&lt;br /&gt;
&lt;br /&gt;
He actively participates in [https://hackdiffe.rent] which hosts a number of open source Apple ecosystem projects[https://github.com/hack-different], as well as a Discord server[https://discord.gg/hackdifferent]&lt;br /&gt;
&lt;br /&gt;
He originated and actively maintains the `apple-knowledge` project, which creates machine readable documentation of Apple platforms to supplement the lack of specification and documentation in the Apple ecosystem.&lt;br /&gt;
&lt;br /&gt;
GPG Keygrip &amp;lt;code&amp;gt;AB8A 31E3 F065 3820 8409  222E DCC7 7F05 03C5 4932&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://github.com/rickmark Github]&lt;br /&gt;
* [https://github.com/su_rickmark Twitter]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackers]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122114</id>
		<title>Hack Different</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122114"/>
		<updated>2022-04-14T05:49:08Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hack Different is an open community originated by the [[checkra1n]] core team.  It provides a more open jailbreak and research support network.  The Hack Different GitHub organization serves as maintainer for several key projects to ensure support and continuity.&lt;br /&gt;
&lt;br /&gt;
(Main Page)[http://hackdiffe.rent]&lt;br /&gt;
(Discord Server)[https://discord.gg/hackdifferent]&lt;br /&gt;
(GitHub Organization)[https://github.com/hack-different]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackers]]&lt;br /&gt;
[[Category:Teams]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122113</id>
		<title>Hack Different</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Hack_Different&amp;diff=122113"/>
		<updated>2022-04-14T05:48:39Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Created page with &amp;quot;Hack Different is an open community originated by the checkra1n core team.  It provides a more open jailbreak and research support network.  The Hack Different GitHub orga...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hack Different is an open community originated by the [[checkra1n]] core team.  It provides a more open jailbreak and research support network.  The Hack Different GitHub organization serves as maintainer for several key projects to ensure support and continuity.&lt;br /&gt;
&lt;br /&gt;
[http://hackdiffe.rent]&lt;br /&gt;
[https://discord.gg/hackdifferent]&lt;br /&gt;
[https://github.com/hack-different]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackers]]&lt;br /&gt;
[[Category:Teams]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Rickmark&amp;diff=122112</id>
		<title>User:Rickmark</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Rickmark&amp;diff=122112"/>
		<updated>2022-04-14T05:45:47Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
'''rickmark''' is known for the adaptation of '''libimobiledevice''' for the T2 processor, as well as reverse engineering the [[USB Target Disk Mode]] protocol.&lt;br /&gt;
&lt;br /&gt;
He also participated in [[t8012 checkm8]] and it's inclusion in [[checkra1n]].&lt;br /&gt;
&lt;br /&gt;
He actively participates in [https://hackdiffe.rent] which hosts a number of open source Apple ecosystem projects ([https://github.com/hack-different]), as well as a Discord server ([https://discord.gg/hackdifferent])&lt;br /&gt;
&lt;br /&gt;
He originated and actively maintains the `apple-knowledge` project, which creates machine readable documentation of Apple platforms to supplement the lack of specification and documentation in the Apple ecosystem.&lt;br /&gt;
&lt;br /&gt;
GPG Keygrip &amp;lt;code&amp;gt;AB8A 31E3 F065 3820 8409  222E DCC7 7F05 03C5 4932&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://github.com/rickmark Github]&lt;br /&gt;
* [https://github.com/su_rickmark Twitter]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackers]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Rickmark&amp;diff=122111</id>
		<title>User:Rickmark</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Rickmark&amp;diff=122111"/>
		<updated>2022-04-14T05:37:57Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
'''rickmark''' is known for the adaptation of '''libimobiledevice''' for the T2 processor, as well as reverse engineering the [[USB Target Disk Mode]] protocol.&lt;br /&gt;
&lt;br /&gt;
He also participated in [[t8012 checkm8]] and it's inclusion in [[checkra1n]].&lt;br /&gt;
&lt;br /&gt;
GPG Keygrip &amp;lt;code&amp;gt;AB8A 31E3 F065 3820 8409  222E DCC7 7F05 03C5 4932&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://github.com/rickmark Github]&lt;br /&gt;
* [https://github.com/su_rickmark Twitter]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackers]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=T6001&amp;diff=119091</id>
		<title>T6001</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=T6001&amp;diff=119091"/>
		<updated>2021-10-26T19:20:23Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''Apple M1 Max''' is an ARM-based [[wikipedia:System on a chip|SoC]] designed by Apple Inc for Mac computers, as an upscaled version of the [[M1]].&lt;br /&gt;
&lt;br /&gt;
It was first introduced at Apple's [[Keynotes#2021|'Unleashed' keynote on {{date|2021|10|18}}]].&lt;br /&gt;
&lt;br /&gt;
It's identified internally as '''T6001'''.&lt;br /&gt;
&lt;br /&gt;
== Board Info ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ChipID =&amp;gt; 0x6001&lt;br /&gt;
HWModel =&amp;gt; J314cAP&lt;br /&gt;
BuildVersion =&amp;gt; 21A559&lt;br /&gt;
OSVersion =&amp;gt; 12.0.1 (initial)&lt;br /&gt;
BridgeVersion =&amp;gt; 19.16.10548.0.0,0 (initial)&lt;br /&gt;
BoardId =&amp;gt; 0x08&lt;br /&gt;
DeviceColor =&amp;gt; unknown&lt;br /&gt;
ModelNumber =&amp;gt; Z15H0010K&lt;br /&gt;
RegionCode =&amp;gt; LL&lt;br /&gt;
HardwarePlatform =&amp;gt; t6001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[M1]]&lt;br /&gt;
* [[M1 Pro]]&lt;br /&gt;
&lt;br /&gt;
{{stub|hardware}}&lt;br /&gt;
[[Category:Application Processors]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=T6001&amp;diff=119090</id>
		<title>T6001</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=T6001&amp;diff=119090"/>
		<updated>2021-10-26T19:18:23Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''Apple M1 Max''' is an ARM-based [[wikipedia:System on a chip|SoC]] designed by Apple Inc for Mac computers, as an upscaled version of the [[M1]].&lt;br /&gt;
&lt;br /&gt;
It was first introduced at Apple's [[Keynotes#2021|'Unleashed' keynote on {{date|2021|10|18}}]].&lt;br /&gt;
&lt;br /&gt;
It's identified internally as '''T6001'''.&lt;br /&gt;
&lt;br /&gt;
== Board Info ==&lt;br /&gt;
&lt;br /&gt;
ChipID =&amp;gt; 0x6001&lt;br /&gt;
HWModel =&amp;gt; J314cAP&lt;br /&gt;
BuildVersion =&amp;gt; 21A559&lt;br /&gt;
OSVersion =&amp;gt; 12.0.1 (initial)&lt;br /&gt;
BridgeVersion =&amp;gt; 19.16.10548.0.0,0 (initial)&lt;br /&gt;
BoardId =&amp;gt; 0x08&lt;br /&gt;
DeviceColor =&amp;gt; unknown&lt;br /&gt;
ModelNumber =&amp;gt; Z15H0010K&lt;br /&gt;
RegionCode =&amp;gt; LL&lt;br /&gt;
HardwarePlatform =&amp;gt; t6001&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[M1]]&lt;br /&gt;
* [[M1 Pro]]&lt;br /&gt;
&lt;br /&gt;
{{stub|hardware}}&lt;br /&gt;
[[Category:Application Processors]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=RemotePairing.framework&amp;diff=119068</id>
		<title>RemotePairing.framework</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=RemotePairing.framework&amp;diff=119068"/>
		<updated>2021-10-26T04:11:45Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Created page with &amp;quot;= RemotePairing =  `RemotePairing.framework` is a part of the developer tools that allow an iDevice to be paired via a shared iCloud account.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= RemotePairing =&lt;br /&gt;
&lt;br /&gt;
`RemotePairing.framework` is a part of the developer tools that allow an iDevice to be paired via a shared iCloud account.&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Rapport&amp;diff=119067</id>
		<title>Rapport</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Rapport&amp;diff=119067"/>
		<updated>2021-10-26T04:10:49Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rapport =&lt;br /&gt;
&lt;br /&gt;
Rapport is a framework that provides information about devices that share a iCloud account.  This also includes family members as well as &amp;quot;guests&amp;quot; such as those who are using media services such as AirPlay.  This breaks down broadly into the UI seen in System Preferences where a users's devices are shown.&lt;br /&gt;
&lt;br /&gt;
= Frameworks =&lt;br /&gt;
&lt;br /&gt;
== Rapport.framework ==&lt;br /&gt;
&lt;br /&gt;
This framework allows a client to ask for other signed in devices to a iCloud account.&lt;br /&gt;
&lt;br /&gt;
== RapportUI.framework ==&lt;br /&gt;
&lt;br /&gt;
This provides UI elements about devices including their icons and identifiers&lt;br /&gt;
&lt;br /&gt;
= Services =&lt;br /&gt;
&lt;br /&gt;
Devices implement services to respond to remote requests via the `rapportd` service&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Rapport&amp;diff=119066</id>
		<title>Rapport</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Rapport&amp;diff=119066"/>
		<updated>2021-10-26T04:10:02Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Created page with &amp;quot;# Rapport  Rapport is a framework that provides information about devices that share a iCloud account.  This also includes family members as well as &amp;quot;guests&amp;quot; such as those who...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# Rapport&lt;br /&gt;
&lt;br /&gt;
Rapport is a framework that provides information about devices that share a iCloud account.  This also includes family members as well as &amp;quot;guests&amp;quot; such as those who are using media services such as AirPlay.  This breaks down broadly into the UI seen in System Preferences where a users's devices are shown.&lt;br /&gt;
&lt;br /&gt;
# Frameworks&lt;br /&gt;
&lt;br /&gt;
## Rapport.framework&lt;br /&gt;
&lt;br /&gt;
This framework allows a client to ask for other signed in devices to a iCloud account.&lt;br /&gt;
&lt;br /&gt;
## RapportUI.framework&lt;br /&gt;
&lt;br /&gt;
This provides UI elements about devices including their icons and identifiers&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Apple_Wireless_Diagnostics_Daemon_(AWDD)&amp;diff=118718</id>
		<title>Apple Wireless Diagnostics Daemon (AWDD)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Apple_Wireless_Diagnostics_Daemon_(AWDD)&amp;diff=118718"/>
		<updated>2021-10-17T18:05:26Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWDD is a binary logging system for the Baseband, Bluetooth, NFC, GSM/LTE, WiFi, UWB and other such wireless radio coprocessors.  Over the years it has taken on a few other responsibilities such as Springboard Locking, FaceID, and any other system level events best represented in a compact binary format.  This is in opposition to text based or Plist style log files, which are also still common for other subsystems.  AWDD is a proprietary TLV encoding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= TVL Encoding Scheme =&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
&lt;br /&gt;
Tags are multi-byte integers with the lowest 3 bits being the primal type, while the remaining bits get shifted right (&amp;gt;&amp;gt; 3) to become the &amp;quot;index&amp;quot; from the definition. This makes the &amp;quot;timestamp&amp;quot; value in a log (tag 0x08) actually type 0x00 and index 0x01 matching up with definition from the ambiant root file. Having a lowest order bit of 0x00 means that the value is to be interpreted as a multi-byte integer.&lt;br /&gt;
&lt;br /&gt;
Tags that are high in the lowest order bit are length prefixed (common of strings)&lt;br /&gt;
&lt;br /&gt;
0x08 index 1 with a type of 0x00 - e.g. &amp;quot;timestamp&amp;quot;&lt;br /&gt;
0x10 index 2 with a type of 0x00 - PropertyDefinition.Index&lt;br /&gt;
0x18 index 3 with a type of 0x00 - PropertyDefinition.Flags&lt;br /&gt;
0x22 index 4 with a type of 0x02 - PropertyDefinition.Name&lt;br /&gt;
0x0A index 1 with a type of 0x02 - ObjectDefinition&lt;br /&gt;
0x12 index 2 with a type of 0x02 - PropertyDefinition&lt;br /&gt;
Clearly we demonstrate a primordial integer vs a length prefixed sequence&lt;br /&gt;
&lt;br /&gt;
== Types ==&lt;br /&gt;
&lt;br /&gt;
Potential for enum or flags&lt;br /&gt;
&lt;br /&gt;
0x00 - Length encoded integer&lt;br /&gt;
0x01 - FLAG?&lt;br /&gt;
0x02 - Object with length prefixed multi-byte integer&lt;br /&gt;
0x03&lt;br /&gt;
0x04 - FLAG?&lt;br /&gt;
0x05&lt;br /&gt;
0x06&lt;br /&gt;
0x07&lt;br /&gt;
This implies that type 0x02 is some form of sequence&lt;br /&gt;
&lt;br /&gt;
== Multi-byte integers ==&lt;br /&gt;
&lt;br /&gt;
The AWDD format can encode multi-byte integers in a format similar to ASN.1 (I'm not yet totally convinced this isn't ASN.1 but hey, when have I ever done protocols the easy way?).&lt;br /&gt;
&lt;br /&gt;
For a multi-byte integer the high order bit (0x80) is set on all bytes which are not the final byte of the integer. Once all the bytes of the integer are collected, the high order bit is masked off, (&amp;amp; 0x7F) and the remaining 7 bit bytes are bitstring concatenated to produce the final integer. This is complicated as the integer is still little endian though the encoding uses the most-significant-bit in big-endian format to determine the int's run length. The completed algorith is in decode_variable_length_int which returns the int and how many bytes were used to encode it.&lt;br /&gt;
&lt;br /&gt;
This also means for integers &amp;lt;= 127 the integer is the same as a single byte uint8&lt;br /&gt;
&lt;br /&gt;
== Tag, optional length, data ==&lt;br /&gt;
&lt;br /&gt;
Depending on the type of the value, you will encounter a tag (itself a multi-byte int) per the above specification with a direct value, or a length prefixed value.&lt;br /&gt;
&lt;br /&gt;
An example: If the value type is an int, then a variable length int tag, followed by a variable length int the value&lt;br /&gt;
&lt;br /&gt;
If the value is a string, then a variable length int tag, followed by a variable length int length then the bytes of the string.&lt;br /&gt;
&lt;br /&gt;
== Definitions ==&lt;br /&gt;
&lt;br /&gt;
The definition table is a collection of ObjectDefinitions and EnumDefinitions&lt;br /&gt;
&lt;br /&gt;
DEFINE_OBJECT_TAG = 0x0A&lt;br /&gt;
DEFINE_ENUM_TAG = 0x12&lt;br /&gt;
An ObjectDefinition is either a Class or an Event - they are broadly equal. A class will be a collection of property definitions where each definition is a combination of property name, type (primal), flags, and extensions.&lt;br /&gt;
&lt;br /&gt;
An object definition is TAG_CLASS_DEFINITION followed by a length of the object definition. It is then parsed as a a TAG_CLASS_NAME and a series of TAG_PROPERTY_DEFINITIONs which are a length followed by their fields.&lt;br /&gt;
&lt;br /&gt;
TAG_CLASS_DEFINITION = 0x0A # Name of the class or event&lt;br /&gt;
TAG_CLASS_NAME = 0x0A # The string defining the class name (optional)&lt;br /&gt;
TAG_PROPERTY_DEFINITION = 0x12 # Repeated for each property&lt;br /&gt;
In the context of a property flags can be 0x00 in the case of a normal scalar property of 0x01 in the case of a &amp;quot;multi-property&amp;quot; or a property which can occur multiple times.&lt;br /&gt;
&lt;br /&gt;
# Base Property Types - RE still in progress&lt;br /&gt;
class PropertyType(IntEnum):&lt;br /&gt;
    UNKNOWN = 0x00&lt;br /&gt;
    DOUBLE = 0x01&lt;br /&gt;
    FLOAT = 0x02&lt;br /&gt;
    INTEGER_64 = 0x03&lt;br /&gt;
    INTEGER = 0x04&lt;br /&gt;
    UNKNOWN_5 = 0x05&lt;br /&gt;
    INTEGER_32 = 0x06&lt;br /&gt;
    INTEGER_UNSIGNED = 0x07&lt;br /&gt;
    UNKNOWN_8 = 0x08&lt;br /&gt;
    UNKNOWN_9 = 0x09&lt;br /&gt;
    BOOLEAN = 0x0C&lt;br /&gt;
    ENUM = 0x0B&lt;br /&gt;
    STRING = 0x0D&lt;br /&gt;
    BYTES = 0x0E&lt;br /&gt;
    PACKED_UINT_32 = 0x15&lt;br /&gt;
    UNKNOWN_17 = 0x11&lt;br /&gt;
    UNKNOWN_20 = 0x14&lt;br /&gt;
    OBJECT = 0x1B&lt;br /&gt;
&lt;br /&gt;
# Basic Property Values (must occur)&lt;br /&gt;
TAG_INDEX = 0x08 # This defines the tag for reference&lt;br /&gt;
TAG_TYPE = 0x10 # Primal object type (PropertyType)&lt;br /&gt;
TAG_FLAGS = 0x18 # PropertyFalgs&lt;br /&gt;
TAG_NAME = 0x22 # The name of the property&lt;br /&gt;
Various base types have extended type information. For instance a string property can have a format type of &amp;quot;UUID&amp;quot; and an integer type can have a value of &amp;quot;Timestamp&amp;quot;. Each of these is specified by a particular tag on the property definition.&lt;br /&gt;
&lt;br /&gt;
# Extended or optinal values on a property definition&lt;br /&gt;
TAG_OBJECT_REFERENCE = 0x28 # The class of the property in the case of a non-primitive, scalar&lt;br /&gt;
TAG_STRING_FORMAT = 0x30 # StringFormat&lt;br /&gt;
TAG_LIST_ITEM_TYPE = 0x38 # Type of the element in the case of a collection&lt;br /&gt;
TAG_ENUM_INDEX = 0x40 # The EnumDefinition this enum references&lt;br /&gt;
TAG_INTEGER_FORMAT = 0x48  # Integer type sub-specifier&lt;br /&gt;
TAG_EXTENSION = 0x50 # Set to 0x01 if this property is an extension on another class&lt;br /&gt;
TAG_EXTENSION_TARGET = 0x60 # The class to extend&lt;br /&gt;
Sub-format Specifiers&lt;br /&gt;
&lt;br /&gt;
class PropertyFlags(IntFlag):&lt;br /&gt;
    NONE = 0x00&lt;br /&gt;
    REPEATED = 0x01&lt;br /&gt;
&lt;br /&gt;
class IntegerFormat(IntEnum):&lt;br /&gt;
    TIMESTAMP = 0x01&lt;br /&gt;
    TRIGGER_ID = 0x03&lt;br /&gt;
    PROFILE_ID = 0x04&lt;br /&gt;
    AVERAGE_TIME = 0x15&lt;br /&gt;
    TIME_DELTA = 0x16&lt;br /&gt;
    TIMEZONE_OFFSET = 0x17&lt;br /&gt;
    ASSOCIATED_TIME = 0x18&lt;br /&gt;
    PERIOD_IN_HOURS = 0x19&lt;br /&gt;
    TIME_OF_DAY = 0x1E&lt;br /&gt;
    SAMPLE_TIMESTAMP = 0x1F&lt;br /&gt;
    &lt;br /&gt;
class StringFormat(IntEnum):&lt;br /&gt;
    UNKNOWN = 0x00&lt;br /&gt;
    UUID = 0x01&lt;br /&gt;
An EnumDefinition is a class that defines a range of integer values, which can be either a selection enumeration or a flags style enumeration. The definition will include the textual representation of each value.&lt;br /&gt;
&lt;br /&gt;
= Metadata Files =s&lt;br /&gt;
&lt;br /&gt;
Metadata files are a MAGIC (AWDM), a version (0xXXXXYYYY) and N (0xNNNNNNNN) regions&lt;br /&gt;
&lt;br /&gt;
If N == 0 then you are reading a root manifest and should read until tag == 0x00000000&lt;br /&gt;
&lt;br /&gt;
In all cases there should be a 0x00000000 after the region definitions&lt;br /&gt;
&lt;br /&gt;
Regions fall into two broad categories - tag specific and non-tag specific&lt;br /&gt;
&lt;br /&gt;
Region tags are 0xTTTTFFFF where TTTT is type and FFFF is number of uint32 fields (little endian)&lt;br /&gt;
&lt;br /&gt;
struct {&lt;br /&gt;
    uint32 magic, // &amp;quot;AWDM&amp;quot;&lt;br /&gt;
    uint16 major, // 0x0100 - little endian 1&lt;br /&gt;
    uint16 minor, // 0x0100 - little endian 1&lt;br /&gt;
    uint32 regions // either region count or 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// N region entries, see below&lt;br /&gt;
&lt;br /&gt;
struct {&lt;br /&gt;
    uint32 zero // = 0x00000000&lt;br /&gt;
}&lt;br /&gt;
Tag specific&lt;br /&gt;
&lt;br /&gt;
struct {&lt;br /&gt;
  uint32 tag,&lt;br /&gt;
  uint32 offset,&lt;br /&gt;
  uint32 size,&lt;br /&gt;
  uint32 checksum // assumed&lt;br /&gt;
}&lt;br /&gt;
Tag 0x02000400 - Structure Table&lt;br /&gt;
&lt;br /&gt;
This is an import or structure table. In the case of the root table of the root manifest the contents are identical to the display or definition table (0x03000400).&lt;br /&gt;
&lt;br /&gt;
For metadata manifests which extend the root, this file will broadly import from others and not define the display names of properties etc.&lt;br /&gt;
&lt;br /&gt;
Tag 0x03000400 - Definition Table&lt;br /&gt;
&lt;br /&gt;
This table of definitions create new objects with new properties that extend the existing schema. It will contain object definitions, with property definitions as well as enum definitions.&lt;br /&gt;
&lt;br /&gt;
This table contains class and object definitions designed to &amp;quot;enrich&amp;quot; the definitions from the 0x02000400 table with additional data for translation into text format.&lt;br /&gt;
&lt;br /&gt;
== Non-tag specific ==&lt;br /&gt;
&lt;br /&gt;
struct {&lt;br /&gt;
    uint32 offest&lt;br /&gt;
    uint32 size&lt;br /&gt;
}&lt;br /&gt;
Tag 0x04000200 - File Identity&lt;br /&gt;
&lt;br /&gt;
This region defines two values, the UUID of the file as well as it's display name.&lt;br /&gt;
&lt;br /&gt;
This is analogous to a LC_UUID in Mach-O&lt;br /&gt;
&lt;br /&gt;
0x0A - String - File UUID&lt;br /&gt;
0x12 - String - Source File&lt;br /&gt;
0x18 - Timestamp - Build Time&lt;br /&gt;
Tag 0x05000200 - Root Object Class Definitions&lt;br /&gt;
&lt;br /&gt;
This defines the root ambient classes. It's only relevant on the root manifest as it is the only file to define the root object class. These classes are used by the properties on the root object defined by 0x02000400/0x03000400 where tag == 0x00&lt;br /&gt;
&lt;br /&gt;
Tag 0x06000200 - Extension Points&lt;br /&gt;
&lt;br /&gt;
This region lists all known extension properties. These must be loaded from their assocated constituant extension manifests&lt;br /&gt;
&lt;br /&gt;
= Log Files =&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=AWDD&amp;diff=118706</id>
		<title>AWDD</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=AWDD&amp;diff=118706"/>
		<updated>2021-10-16T10:05:46Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Redirected page to Apple Wireless Diagnostics Daemon (AWDD)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT[[Apple Wireless Diagnostics Daemon (AWDD)]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Apple_Wireless_Diagnostics_Daemon_(AWDD)&amp;diff=118705</id>
		<title>Apple Wireless Diagnostics Daemon (AWDD)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Apple_Wireless_Diagnostics_Daemon_(AWDD)&amp;diff=118705"/>
		<updated>2021-10-16T10:05:22Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWDD is a binary logging system for the Baseband, Bluetooth, NFC, GSM/LTE, WiFi, UWB and other such wireless radio coprocessors.  Over the years it has taken on a few other responsibilities such as Springboard Locking, FaceID, and any other system level events best represented in a compact binary format.  This is in opposition to text based or Plist style log files, which are also still common for other subsystems.  AWDD is a proprietary TLV encoding.&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Apple_Wireless_Diagnostics_Daemon_(AWDD)&amp;diff=118704</id>
		<title>Apple Wireless Diagnostics Daemon (AWDD)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Apple_Wireless_Diagnostics_Daemon_(AWDD)&amp;diff=118704"/>
		<updated>2021-10-16T10:03:48Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Created page with &amp;quot;AWDD is a binary logging system for the Baseband, Bluetooth, NFC, GSM/LTE, WiFi, UWB and other such coprocessors.  Over the years it has taken on a few other responsibilities...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWDD is a binary logging system for the Baseband, Bluetooth, NFC, GSM/LTE, WiFi, UWB and other such coprocessors.  Over the years it has taken on a few other responsibilities such as Springboard Locking, FaceID, and any other system level events best represented in a compact binary format.  This is in opposition to text based or Plist style log files, which are also still common for other subsystems.  AWDD is a proprietary TLV encoding.&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Codenames&amp;diff=117986</id>
		<title>Codenames</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Codenames&amp;diff=117986"/>
		<updated>2021-09-26T23:30:45Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About||firmware version codenames (BuildTrains)|Firmware Codenames}}&lt;br /&gt;
&lt;br /&gt;
This page lists several code names of Apple features.&lt;br /&gt;
&lt;br /&gt;
; ACE : The USB-C port controller on the Mac&lt;br /&gt;
; Broadway : [https://en.wikipedia.org/wiki/Apple_Card Apple Card]&lt;br /&gt;
; Brook: Handwashing detection (BrookServices and BrookDataCollection private frameworks since iOS 14).&lt;br /&gt;
; Durian : AirTags (seen eg. in the firmware update)&lt;br /&gt;
; Ensemble : Universal Control (macOS 12/iOS 15)&lt;br /&gt;
; Haywire : [[Haywire|Lightning video adapters]] (eg. Lightning to HDMI)&lt;br /&gt;
; HiFive : Chip present in Lightning cable connectors to negotiate the Lightning protocol.&lt;br /&gt;
; [[Hydra]] : Multiplexing chip in iDevices since iPhone X to deal with the Lightning protocol.&lt;br /&gt;
; Madrid : [[Messages|iMessage]]&amp;lt;ref&amp;gt;&amp;quot;Madrid&amp;quot; and &amp;lt;code&amp;gt;com.apple.madrid&amp;lt;/code&amp;gt; appear in iMessage code, data files, and protocol&amp;lt;/ref&amp;gt;&lt;br /&gt;
; Maverick : Update protocol from AP to Baseband chip&lt;br /&gt;
; Medusa : iPad Split Screen (probably Slide Over etc. too), not to be confused with the T1 EFI device (http://www.cmizapper.com/products/medusa-3.html)&lt;br /&gt;
; Mesa : TouchID on iDevices&lt;br /&gt;
; Rose : U1 / Ultra Wide Band chip&lt;br /&gt;
; Sanddollar : TouchID on the T1/T2 MacBook&lt;br /&gt;
; Savage : Baseband related (references wireless, ICCID (therefore eSIM?), MEID, etc), related to Yonkers&lt;br /&gt;
; Stark : CarPlay&lt;br /&gt;
; [[Stockholm]] : Apple Pay / [[Secure Element]] (handles NFC as well)&lt;br /&gt;
; Skywagon : Xcode Cloud&lt;br /&gt;
; [[Tristar]] : Multiplexing chip in iDevices that deals with the Lightning protocol.&lt;br /&gt;
; Vinyl : The eSIM or eUICC&lt;br /&gt;
; Wormhole : AirDrop&amp;lt;ref&amp;gt;sharingd used to have classes like &amp;lt;code&amp;gt;SDWormholeConnection&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
; Yonkers : Baseband / Wireless related (relates to Savage)&lt;br /&gt;
&lt;br /&gt;
== Unknown names ==&lt;br /&gt;
&lt;br /&gt;
Codenames seen somewhere, but for which we don't know the meaning or it's not certain,&lt;br /&gt;
and needs more investigation.&lt;br /&gt;
&lt;br /&gt;
; Absinthe: FairPlay-related&lt;br /&gt;
; Avocado: Seen in SpringBoard code &amp;lt;code&amp;gt;os_feature_enabled_impl(&amp;quot;SpringBoard&amp;quot;, &amp;quot;Avocado&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Futhark: Private framework since iOS 9 (text detection?)&lt;br /&gt;
; Madia: Unknown&lt;br /&gt;
; Mescal: FairPlay-related&lt;br /&gt;
; Morphun: Private framework, there's also a MorphunData asset in mesu.&lt;br /&gt;
; Neutrino: Private frameworks since iOS 11 (NeutrinoCore and NeutrinoKit).&lt;br /&gt;
; Nitrogen: Unknown&lt;br /&gt;
; Orion: MCU of some kind&lt;br /&gt;
; Osprey: Private framework iOS 13, related to Siri, uses Absinthe&lt;br /&gt;
; Pegasus: Private framework since iOS 9 (not related to NSO's exploit tool).&lt;br /&gt;
; Peppy: Unknown&lt;br /&gt;
; Proud Lock: Mentioned on SpringBoard code, possibly FaceID unlock?&lt;br /&gt;
; Silex: Private framework since iOS 11.&lt;br /&gt;
; Vapor: Seen in SpringBoard code &amp;lt;code&amp;gt;os_feature_enabled_impl(&amp;quot;NotificationCenter&amp;quot;, &amp;quot;Vapor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Veridian&lt;br /&gt;
; Viceroy: Seen in multiple frameworks, FaceTime-related.&lt;br /&gt;
; Xavier: Private frameworks since iOS 14 (XavierCore/XavierNews).&lt;br /&gt;
&lt;br /&gt;
== CPU cores ==&lt;br /&gt;
&lt;br /&gt;
Since the A6, Apple SoCs have Apple-designed CPU cores. This table lists their names.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! SoC&lt;br /&gt;
! Performance core&lt;br /&gt;
! Low-power core&lt;br /&gt;
|-&lt;br /&gt;
| [[A6]]&lt;br /&gt;
| Swift&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| [[A7]]&lt;br /&gt;
| Cyclone&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| [[A8]]&lt;br /&gt;
| Typhoon&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| [[A9]]&lt;br /&gt;
| Twister&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| [[A10]]&lt;br /&gt;
| Hurricane&lt;br /&gt;
| Zephyr&lt;br /&gt;
|-&lt;br /&gt;
| [[A11]]&lt;br /&gt;
| Monsoon&lt;br /&gt;
| Mistral&lt;br /&gt;
|-&lt;br /&gt;
| [[A12]]&lt;br /&gt;
| Vortex&lt;br /&gt;
| Tempest&lt;br /&gt;
|-&lt;br /&gt;
| [[A13]]&lt;br /&gt;
| Lightning&lt;br /&gt;
| Thunder&lt;br /&gt;
|-&lt;br /&gt;
| [[A14]]/[[M1]]&lt;br /&gt;
| Firestorm&lt;br /&gt;
| Icestorm&lt;br /&gt;
|-&lt;br /&gt;
| [[A15]]&amp;lt;ref&amp;gt;https://twitter.com/never_released/status/1431406418322657280&amp;lt;/ref&amp;gt;&lt;br /&gt;
| Avalanche&lt;br /&gt;
| Blizzard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References / notes ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Seputil&amp;diff=117984</id>
		<title>Seputil</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Seputil&amp;diff=117984"/>
		<updated>2021-09-26T22:22:33Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
 | name                   = seputil&lt;br /&gt;
 | title                  = &lt;br /&gt;
 | collapsible            = &lt;br /&gt;
 | author                 = Apple Inc.&lt;br /&gt;
 | developer              = Apple Inc.&lt;br /&gt;
 | released               = &lt;br /&gt;
 | discontinued           = &lt;br /&gt;
 | latest release date    = &lt;br /&gt;
 | latest preview version = &lt;br /&gt;
 | latest preview date    = &lt;br /&gt;
 | programming language   = &lt;br /&gt;
 | operating system       = [[wikipedia:iOS|iOS]] command line&lt;br /&gt;
 | platform               = &lt;br /&gt;
 | size                   = 59,184 bytes [APP] &lt;br /&gt;
 | language               = [[wikipedia:English language|English]]&lt;br /&gt;
 | status                 = &lt;br /&gt;
 | genre                  = ?&lt;br /&gt;
 | license                = [[wikipedia:Proprietary software|Closed source]]&lt;br /&gt;
 | website                = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''seputil''' is an iOS command-line interface tool. It is used to communicate with the [[Secure Enclave]] and its processor - the SEP. The utility [[ramrod]] also uses seputil to update the firmware of the SEP. seputil itself is contained in HXXXRamDisk.dmg, located in &amp;lt;code&amp;gt;/usr/standalone/update/ramdisk/&amp;lt;/code&amp;gt; (the name of the ramdisk varies depending on the firmware.) Once mounted, the seputil executable is found in &amp;lt;code&amp;gt;/usr/libexec/&amp;lt;/code&amp;gt;. The file is an im4 file and therefore needs the first 0x1b (27) bytes are stripped to make the dmg readable, or img4tool can be used&lt;br /&gt;
&lt;br /&gt;
seputil has the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
seputil: seputil [--wait] --load &amp;lt;file&amp;gt;&lt;br /&gt;
seputil: seputil '&amp;lt;SEP console command&amp;gt;'&lt;br /&gt;
seputil: seputil &amp;lt;command&amp;gt;&lt;br /&gt;
seputil: &lt;br /&gt;
seputil: Valid &amp;lt;command&amp;gt; words:&lt;br /&gt;
seputil:     --ping        Send a PING operation to the SEP OS&lt;br /&gt;
seputil:     --load        Load &amp;lt;file&amp;gt; as the SEP runtime firmware&lt;br /&gt;
seputil:     --restore     Load &amp;lt;file&amp;gt; as the SEP runtime firmware in restore mode&lt;br /&gt;
seputil:     --restore+art Load &amp;lt;file&amp;gt; as the SEP runtime firmware in restore mode with ART&lt;br /&gt;
seputil:     --wait        Pause for kernel driver to load before failing&lt;br /&gt;
seputil:     --preflight   Pre-flight load/restore firmware against ART to pre-check for boot failures&lt;br /&gt;
seputil:     --log         Dump the mailbox message log&lt;br /&gt;
seputil:     --rom status  Get the ROM status&lt;br /&gt;
seputil:     --rom tz0     Send a ROM TZ0 command&lt;br /&gt;
seputil:     --rom nop     Send a ROM NOP command&lt;br /&gt;
seputil:     --rom nonce   Send a ROM nonce request&lt;br /&gt;
seputil:     --new-nonce   Request new SEP/OS nonce&lt;br /&gt;
seputil:     --kill-nonce  Request invalidate SEP/OS nonce&lt;br /&gt;
seputil:     --art get     Dump current ART from Memory&lt;br /&gt;
seputil:     --art set     Persist the supplied ART to storage&lt;br /&gt;
seputil:     --art clear   Clear the persisted ART&lt;br /&gt;
seputil:     --art ctrtest Counter self-test (DESTRUCTIVE - can brick some legacy devices!)&lt;br /&gt;
seputil:     --sleep       Sleep the SEP NOW!&lt;br /&gt;
seputil:     --nap         Nap the SEP NOW!&lt;br /&gt;
seputil:     --pingflood   Ping SEP endlessly&lt;br /&gt;
seputil:     --clkgate     Enable SEP clock gating&lt;br /&gt;
seputil:     --get &amp;lt;obj&amp;gt;   Read obj and write to stdout&lt;br /&gt;
seputil:     --put &amp;lt;obj&amp;gt;   Read stdin and write to obj&lt;br /&gt;
seputil:     --boot-check &amp;lt;file&amp;gt;  Check whether a firmware might be bootable WRT the current ART&lt;br /&gt;
seputil:     --dump-fw &amp;lt;file&amp;gt;     Dump measurements of firmware file&lt;br /&gt;
seputil:   Bare words on the commandline are sent to the SEP as a console command&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./seputil --pingflood&lt;br /&gt;
SEP ping #1000&lt;br /&gt;
SEP ping #2000&lt;br /&gt;
SEP ping #3000&lt;br /&gt;
SEP ping #4000&lt;br /&gt;
&lt;br /&gt;
./seputil --load sep-firmware.img4 &lt;br /&gt;
seputil: load fw returned 0xe00002d5&lt;br /&gt;
seputil: load failed&lt;br /&gt;
&lt;br /&gt;
./seputil --new-nonce&lt;br /&gt;
Nonce (20 bytes): 0x67fc18385630dc6429726677d196c81466f47b5e&lt;br /&gt;
&lt;br /&gt;
./seputil --art get  &lt;br /&gt;
raw ART: 305e0201003037020218340414519c0248f04d316a3d71e03978b4126fbfb2b15c0400041467fc18385630dc6429726677d196c81466f47b5e3103c00100042027b6dadbab356612997af0203cefeae51fe90cd985ee7cdd6211c766b8cc7a60&lt;br /&gt;
Successfully parsed ART:&lt;br /&gt;
counter: 6196&lt;br /&gt;
manifest hash (20 bytes): 519c0248f04d316a3d71e03978b4126fbfb2b15c&lt;br /&gt;
sleep hash is absent&lt;br /&gt;
restore nonce (20 bytes): 67fc18385630dc6429726677d196c81466f47b5e&lt;br /&gt;
&lt;br /&gt;
./seputil --log    &lt;br /&gt;
Kernel message log has 128 entries&lt;br /&gt;
289344381444: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289344385176: 0x0000000000000000 TX interrupt&lt;br /&gt;
289344391044: 0x0000000000000000 TX interrupt&lt;br /&gt;
289344408988: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289344409016: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289344413132: 0x0000000000000000 RX interrupt&lt;br /&gt;
289344413304: 0x0000000000010000 RX message ept 0, tag 0, opcode 1, param 0, data 0&lt;br /&gt;
289344413904: 0x0000000000000000 RX interrupt&lt;br /&gt;
289344413944: 0x0000000000010000 RX message ept 0, tag 0, opcode 1, param 0, data 0&lt;br /&gt;
289344414176: 0x0018000000dd1007 TX message ept 7, tag 10, opcode dd, param 0, data 180000&lt;br /&gt;
289344443356: 0x0000000000000000 RX interrupt&lt;br /&gt;
289344443428: 0x0068000000dd9007 RX message ept 7, tag 90, opcode dd, param 0, data 680000&lt;br /&gt;
289346822748: 0x0000000000130000 TX message ept 0, tag 0, opcode 13, param 0, data 0&lt;br /&gt;
289346829480: 0x0000000000000000 RX interrupt&lt;br /&gt;
289346829560: 0x0000000000110000 RX message ept 0, tag 0, opcode 11, param 0, data 0&lt;br /&gt;
289346830136: 0x0000000000120000 TX message ept 0, tag 0, opcode 12, param 0, data 0&lt;br /&gt;
289406511168: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289406511204: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289406538900: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289406538936: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289406543628: 0x0000000000000000 TX interrupt&lt;br /&gt;
289406549916: 0x0000000000000000 TX interrupt&lt;br /&gt;
289406566580: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289406566612: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289406571220: 0x0000000000000000 RX interrupt&lt;br /&gt;
289406571476: 0x0000000000010000 RX message ept 0, tag 0, opcode 1, param 0, data 0&lt;br /&gt;
289406571908: 0x0000000000000000 RX interrupt&lt;br /&gt;
289406571952: 0x0000000000010000 RX message ept 0, tag 0, opcode 1, param 0, data 0&lt;br /&gt;
289406572320: 0x0018000000de1007 TX message ept 7, tag 10, opcode de, param 0, data 180000&lt;br /&gt;
289406605068: 0x0000000000000000 RX interrupt&lt;br /&gt;
289406605152: 0x0068000000de9007 RX message ept 7, tag 90, opcode de, param 0, data 680000&lt;br /&gt;
289407383260: 0x003c000000df0907 TX message ept 7, tag 9, opcode df, param 0, data 3c0000&lt;br /&gt;
289407396284: 0x0000000000000000 RX interrupt&lt;br /&gt;
289407396380: 0x002c000000df8907 RX message ept 7, tag 89, opcode df, param 0, data 2c0000&lt;br /&gt;
289407403656: 0x003c000000e00907 TX message ept 7, tag 9, opcode e0, param 0, data 3c0000&lt;br /&gt;
289407411688: 0x0000000000000000 RX interrupt&lt;br /&gt;
289407411736: 0x002c000000e08907 RX message ept 7, tag 89, opcode e0, param 0, data 2c0000&lt;br /&gt;
289407414732: 0x003c000000e10907 TX message ept 7, tag 9, opcode e1, param 0, data 3c0000&lt;br /&gt;
289407422472: 0x0000000000000000 RX interrupt&lt;br /&gt;
289407422524: 0x002c000000e18907 RX message ept 7, tag 89, opcode e1, param 0, data 2c0000&lt;br /&gt;
289408986276: 0x0000000000130000 TX message ept 0, tag 0, opcode 13, param 0, data 0&lt;br /&gt;
289408991756: 0x0000000000000000 RX interrupt&lt;br /&gt;
289408991824: 0x0000000000110000 RX message ept 0, tag 0, opcode 11, param 0, data 0&lt;br /&gt;
289408992472: 0x0000000000120000 TX message ept 0, tag 0, opcode 12, param 0, data 0&lt;br /&gt;
289459393276: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289459393348: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289459423004: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289459423048: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289459452628: 0x0000000000000000 TX interrupt&lt;br /&gt;
289459453612: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289459453664: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289459466460: 0x0000000000000000 TX interrupt&lt;br /&gt;
289459469548: 0x0000000000000000 RX interrupt&lt;br /&gt;
289459470000: 0x0000000000010000 RX message ept 0, tag 0, opcode 1, param 0, data 0&lt;br /&gt;
289459470632: 0x0000000000010000 RX message ept 0, tag 0, opcode 1, param 0, data 0&lt;br /&gt;
289459471304: 0x0018000000e21007 TX message ept 7, tag 10, opcode e2, param 0, data 180000&lt;br /&gt;
289459524572: 0x0000000000000000 RX interrupt&lt;br /&gt;
289459524728: 0x0068000000e29007 RX message ept 7, tag 90, opcode e2, param 0, data 680000&lt;br /&gt;
289459532644: 0x004c000000e30f07 TX message ept 7, tag f, opcode e3, param 0, data 4c0000&lt;br /&gt;
289459552888: 0x0000000000000000 RX interrupt&lt;br /&gt;
289459553044: 0x002c000000e38f07 RX message ept 7, tag 8f, opcode e3, param 0, data 2c0000&lt;br /&gt;
289459646732: 0x0018000000e41007 TX message ept 7, tag 10, opcode e4, param 0, data 180000&lt;br /&gt;
289459681116: 0x0000000000000000 RX interrupt&lt;br /&gt;
289459681272: 0x0068000000e49007 RX message ept 7, tag 90, opcode e4, param 0, data 680000&lt;br /&gt;
289461898836: 0x0000000000130000 TX message ept 0, tag 0, opcode 13, param 0, data 0&lt;br /&gt;
289461906796: 0x0000000000000000 RX interrupt&lt;br /&gt;
289461906968: 0x0000000000110000 RX message ept 0, tag 0, opcode 11, param 0, data 0&lt;br /&gt;
289461908400: 0x0000000000120000 TX message ept 0, tag 0, opcode 12, param 0, data 0&lt;br /&gt;
289526725980: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289526726016: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289526757512: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289526757552: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289526774468: 0x0000000000000000 TX interrupt&lt;br /&gt;
289526782688: 0x0000000000000000 TX interrupt&lt;br /&gt;
289526786468: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289526786540: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289526795320: 0x0000000000000000 RX interrupt&lt;br /&gt;
289526795828: 0x0000000000010000 RX message ept 0, tag 0, opcode 1, param 0, data 0&lt;br /&gt;
289526796304: 0x0000000000010000 RX message ept 0, tag 0, opcode 1, param 0, data 0&lt;br /&gt;
289526796984: 0x0018000000e51007 TX message ept 7, tag 10, opcode e5, param 0, data 180000&lt;br /&gt;
289526847216: 0x0000000000000000 RX interrupt&lt;br /&gt;
289526847348: 0x0068000000e59007 RX message ept 7, tag 90, opcode e5, param 0, data 680000&lt;br /&gt;
289529224460: 0x0000000000130000 TX message ept 0, tag 0, opcode 13, param 0, data 0&lt;br /&gt;
289529235316: 0x0000000000000000 RX interrupt&lt;br /&gt;
289529235488: 0x0000000000110000 RX message ept 0, tag 0, opcode 11, param 0, data 0&lt;br /&gt;
289529236920: 0x0000000000120000 TX message ept 0, tag 0, opcode 12, param 0, data 0&lt;br /&gt;
289584681764: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289584681836: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289584710576: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289584710608: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289584730996: 0x0000000000000000 TX interrupt&lt;br /&gt;
289584738992: 0x0000000000000000 TX interrupt&lt;br /&gt;
289584739572: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289584739612: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289584748648: 0x0000000000000000 RX interrupt&lt;br /&gt;
289584748984: 0x0000000000010000 RX message ept 0, tag 0, opcode 1, param 0, data 0&lt;br /&gt;
289584749300: 0x0000000000010000 RX message ept 0, tag 0, opcode 1, param 0, data 0&lt;br /&gt;
289584749332: 0x0018000000e61007 TX message ept 7, tag 10, opcode e6, param 0, data 180000&lt;br /&gt;
289584790484: 0x0000000000000000 RX interrupt&lt;br /&gt;
289584790568: 0x0068000000e69007 RX message ept 7, tag 90, opcode e6, param 0, data 680000&lt;br /&gt;
289587176748: 0x0000000000130000 TX message ept 0, tag 0, opcode 13, param 0, data 0&lt;br /&gt;
289587185760: 0x0000000000000000 RX interrupt&lt;br /&gt;
289587185916: 0x0000000000110000 RX message ept 0, tag 0, opcode 11, param 0, data 0&lt;br /&gt;
289587186840: 0x0000000000120000 TX message ept 0, tag 0, opcode 12, param 0, data 0&lt;br /&gt;
288741485000: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
288741485084: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
288741514772: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
288741514812: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
288741533984: 0x0000000000000000 TX interrupt&lt;br /&gt;
288741541992: 0x0000000000000000 TX interrupt&lt;br /&gt;
288741543608: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
288741543680: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
288741552216: 0x0000000000000000 RX interrupt&lt;br /&gt;
288741552884: 0x0000000000010000 RX message ept 0, tag 0, opcode 1, param 0, data 0&lt;br /&gt;
288741553388: 0x0000000000010000 RX message ept 0, tag 0, opcode 1, param 0, data 0&lt;br /&gt;
288741553672: 0x0018000000db1007 TX message ept 7, tag 10, opcode db, param 0, data 180000&lt;br /&gt;
288741591912: 0x0000000000000000 RX interrupt&lt;br /&gt;
288741592040: 0x0068000000db9007 RX message ept 7, tag 90, opcode db, param 0, data 680000&lt;br /&gt;
288741599128: 0x004c000000dc0f07 TX message ept 7, tag f, opcode dc, param 0, data 4c0000&lt;br /&gt;
288741620732: 0x0000000000000000 RX interrupt&lt;br /&gt;
288741620900: 0x002c000000dc8f07 RX message ept 7, tag 8f, opcode dc, param 0, data 2c0000&lt;br /&gt;
288742902624: 0x0000000000130000 TX message ept 0, tag 0, opcode 13, param 0, data 0&lt;br /&gt;
288742912320: 0x0000000000000000 RX interrupt&lt;br /&gt;
288742912496: 0x0000000000110000 RX message ept 0, tag 0, opcode 11, param 0, data 0&lt;br /&gt;
288742913700: 0x0000000000120000 TX message ept 0, tag 0, opcode 12, param 0, data 0&lt;br /&gt;
289344354176: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289344354216: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
289344381416: 0x0000000000000000 TX message ept 0, tag 0, opcode 0, param 0, data 0&lt;br /&gt;
&lt;br /&gt;
./seputil --boot-check sep-firmware.img4 &lt;br /&gt;
preflight: manifest hash matches sepi&lt;br /&gt;
bootCheck: SEP may boot with ART&lt;br /&gt;
&lt;br /&gt;
./seputil --dump-fw sep-firmware.img4 &lt;br /&gt;
manifest digest (20 bytes): 519c0248f04d316a3d71e03978b4126fbfb2b15c&lt;br /&gt;
sepi digest (20 bytes): a22813c5ceaeada5b7eeaa55808f3019814e8b8e&lt;br /&gt;
sepi nonce (20 bytes): e5074bd1befefc685c6b5ec6797ffc851366f76f&lt;br /&gt;
rsep digest (20 bytes): cb9f4c6520889e2582414c5969fb0abc3b0d8277&lt;br /&gt;
rsep nonce (20 bytes): e5074bd1befefc685c6b5ec6797ffc851366f76f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jtool dissect ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./jtool -l /Volumes/ramdisk/usr/libexec/seputil &lt;br /&gt;
LC 00: LC_SEGMENT_64          Mem: 0x000000000-0x100000000	__PAGEZERO&lt;br /&gt;
LC 01: LC_SEGMENT_64          Mem: 0x100000000-0x100008000	__TEXT&lt;br /&gt;
	0x0000000100000ce8-0x00000001000055e0	__TEXT.__text&lt;br /&gt;
	0x00000001000055e0-0x00000001000058ec	__TEXT.__stubs&lt;br /&gt;
	0x00000001000058ec-0x0000000100005c10	__TEXT.__stub_helper&lt;br /&gt;
	0x0000000100005c10-0x0000000100006e5d	__TEXT.__cstring&lt;br /&gt;
	0x0000000100006e60-0x0000000100007fac	__TEXT.__const&lt;br /&gt;
	0x0000000100007fac-0x0000000100007ff4	__TEXT.__unwind_info&lt;br /&gt;
LC 02: LC_SEGMENT_64          Mem: 0x100008000-0x10000c000	__DATA&lt;br /&gt;
	0x0000000100008000-0x0000000100008050	__DATA.__got&lt;br /&gt;
	0x0000000100008050-0x0000000100008258	__DATA.__la_symbol_ptr&lt;br /&gt;
	0x0000000100008258-0x00000001000086e8	__DATA.__const&lt;br /&gt;
	0x00000001000086e8-0x0000000100008990	__DATA.__data&lt;br /&gt;
	0x0000000100008990-0x00000001000089b0	__DATA.__bss&lt;br /&gt;
LC 03: LC_SEGMENT_64          Mem: 0x10000c000-0x100010000	__LINKEDIT&lt;br /&gt;
LC 04: LC_DYLD_INFO_ONLY     &lt;br /&gt;
LC 05: LC_SYMTAB             	Symbol table is at offset 0xd9c8, with 77 entries&lt;br /&gt;
LC 06: LC_DYSYMTAB           &lt;br /&gt;
LC 07: LC_LOAD_DYLINKER      	/usr/lib/dyld&lt;br /&gt;
LC 08: LC_UUID               	UUID: 5C06A94F-63A7-3150-95B6-65567C70A3C8&lt;br /&gt;
LC 09: LC_VERSION_MIN_IPHONEOS	Minimum iOS  version:    7.0.0&lt;br /&gt;
LC 10: LC_SOURCE_VERSION     	Source Version:          69.1.1.0.0&lt;br /&gt;
LC 11: LC_MAIN               	Entry Point:             0x1448 (Mem: 100001448)&lt;br /&gt;
LC 12: LC_LOAD_DYLIB         	/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation&lt;br /&gt;
LC 13: LC_LOAD_DYLIB         	/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit&lt;br /&gt;
LC 14: LC_LOAD_DYLIB         	/usr/lib/libSystem.B.dylib&lt;br /&gt;
LC 15: LC_FUNCTION_STARTS    	Offset: 55592, Size: 120&lt;br /&gt;
LC 16: LC_DATA_IN_CODE       	Offset: 55712, Size: 0&lt;br /&gt;
LC 17: LC_DYLIB_CODE_SIGN_DRS	Offset: 55712, Size: 40&lt;br /&gt;
LC 18: LC_CODE_SIGNATURE     	Offset: 58704, Size: 480&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ART Object==&lt;br /&gt;
&lt;br /&gt;
Example 1:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./seputil --art get  &lt;br /&gt;
raw ART: 305e0201003037020218340414519c0248f04d316a3d71e03978b4126fbfb2b15c0400041467fc18385630dc6429726677d196c81466f47b5e3103c00100042027b6dadbab356612997af0203cefeae51fe90cd985ee7cdd6211c766b8cc7a60&lt;br /&gt;
Successfully parsed ART:&lt;br /&gt;
counter: 6196&lt;br /&gt;
manifest hash (20 bytes): 519c0248f04d316a3d71e03978b4126fbfb2b15c&lt;br /&gt;
sleep hash is absent&lt;br /&gt;
restore nonce (20 bytes): 67fc18385630dc6429726677d196c81466f47b5e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
raw ART is also a [http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One#Example_encoded_in_DER DER encoded ASN.1 object]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
30 — type tag indicating SEQUENCE&lt;br /&gt;
5e — length in octets of value that follows (92)&lt;br /&gt;
   02 — type tag indicating INTEGER&lt;br /&gt;
   01 — length in octets of value that follows&lt;br /&gt;
      00 — value (0)&lt;br /&gt;
   30 — type tag indicating SEQUENCE&lt;br /&gt;
   37 — length in octets of value that follows (55)&lt;br /&gt;
      02 — type tag indicating INTEGER&lt;br /&gt;
      02 — length in octets of value that follows&lt;br /&gt;
         1834 — value (6196) (of counter)&lt;br /&gt;
      04 — type tag indicating STRING&lt;br /&gt;
      14 — length in octets of value that follows (20)&lt;br /&gt;
         519c0248f04d316a3d71e03978b4126fbfb2b15c — value (of manifest hash)&lt;br /&gt;
      04 — type tag indicating STRING&lt;br /&gt;
      00 — length in octets of value that follows (0); empty, so no value to follow (sleep hash is absent)&lt;br /&gt;
      04 — type tag indicating STRING&lt;br /&gt;
      14 — length in octets of value that follows (20)&lt;br /&gt;
         67fc18385630dc6429726677d196c81466f47b5e — value (of restore nonce: snon)&lt;br /&gt;
      31 — type tag indicating SET (of subcounters)&lt;br /&gt;
      03 — length in octets of value that follows (3)&lt;br /&gt;
      c00100 — value (priv element [0]=0)&lt;br /&gt;
   04 — type tag indicating STRING&lt;br /&gt;
   20 — length in octets of value that follows (32)&lt;br /&gt;
      27b6dadbab356612997af0203cefeae51fe90cd985ee7cdd6211c766b8cc7a60 — value (SHA-256 HMAC of the previous SEQUENCE)&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./seputil --art get&lt;br /&gt;
raw ART: 3072020100304b0202186c0414519c0248f04d316a3d71e03978b4126fbfb2b15c04147f75cb9012128cf71eb8fcd6b13e56a02a7324db041467fc18385630dc6429726677d196c81466f47b5e3103c0010004209ce3646167631d0df8d4db28973db8d5a27f85d345ad6ec220aeb1e22f39f31f&lt;br /&gt;
Successfully parsed ART:&lt;br /&gt;
counter: 6252&lt;br /&gt;
manifest hash (20 bytes): 519c0248f04d316a3d71e03978b4126fbfb2b15c&lt;br /&gt;
sleep hash (20 bytes): 7f75cb9012128cf71eb8fcd6b13e56a02a7324db&lt;br /&gt;
restore nonce (20 bytes): 67fc18385630dc6429726677d196c81466f47b5e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Decode (used the decoder [http://lapo.it/asn1js/ here]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SEQUENCE (3 elem)&lt;br /&gt;
   INTEGER 0&lt;br /&gt;
   SEQUENCE (5 elem)&lt;br /&gt;
      INTEGER 6252&lt;br /&gt;
      OCTET STRING (20 byte) 519C0248F04D316A3D71E03978B4126FBFB2B15C&lt;br /&gt;
      OCTET STRING (20 byte) 7F75CB9012128CF71EB8FCD6B13E56A02A7324DB&lt;br /&gt;
      OCTET STRING (20 byte) 67FC18385630DC6429726677D196C81466F47B5E&lt;br /&gt;
      SET (1 elem)&lt;br /&gt;
         Private 0 (1 byte) 00&lt;br /&gt;
   OCTET STRING (32 byte) 9CE3646167631D0DF8D4DB28973DB8D5A27F85D345AD6EC220AEB1E22F39F31F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 3:&lt;br /&gt;
Don't try this at home kids!&amp;lt;br /&amp;gt;DESTRUCTIVE - WILL [[Brick|BRICK]] SOME LEGACY DEVICES!!!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./seputil --art clear&lt;br /&gt;
ART cleared from storage&lt;br /&gt;
&lt;br /&gt;
./seputil --art get  &lt;br /&gt;
seputil: Get ART command error: 0xe00002bc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Codenames&amp;diff=117240</id>
		<title>Codenames</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Codenames&amp;diff=117240"/>
		<updated>2021-09-18T03:25:27Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About||firmware version codenames (BuildTrains)|Firmware Codenames}}&lt;br /&gt;
&lt;br /&gt;
This page lists several code names of Apple features.&lt;br /&gt;
&lt;br /&gt;
; ACE : The USB-C port controller on the Mac&lt;br /&gt;
; Broadway : [https://en.wikipedia.org/wiki/Apple_Card Apple Card]&lt;br /&gt;
; Brook: Handwashing detection (BrookServices and BrookDataCollection private frameworks since iOS 14).&lt;br /&gt;
; Durian : AirTags (seen eg. in the firmware update)&lt;br /&gt;
; Ensemble : Universal Control (macOS 12/iOS 15)&lt;br /&gt;
; Haywire : [[Haywire|Lightning video adapters]] (eg. Lightning to HDMI)&lt;br /&gt;
; HiFive : Chip present in Lightning cable connectors to negotiate the Lightning protocol.&lt;br /&gt;
; [[Hydra]] : Multiplexing chip in iDevices since iPhone X to deal with the Lightning protocol.&lt;br /&gt;
; Madrid : [[Messages|iMessage]]&amp;lt;ref&amp;gt;&amp;quot;Madrid&amp;quot; and &amp;lt;code&amp;gt;com.apple.madrid&amp;lt;/code&amp;gt; appear in iMessage code, data files, and protocol&amp;lt;/ref&amp;gt;&lt;br /&gt;
; Medusa : iPad Split Screen (probably Slide Over etc. too), not to be confused with the T1 EFI device (http://www.cmizapper.com/products/medusa-3.html)&lt;br /&gt;
; Mesa : TouchID on iDevices&lt;br /&gt;
; Rose : U1 / Ultra Wide Band chip&lt;br /&gt;
; Sanddollar : TouchID on the T1/T2 MacBook&lt;br /&gt;
; Savage : Baseband related (references wireless, ICCID, MEID, etc), related to Yonkers&lt;br /&gt;
; Stark : CarPlay&lt;br /&gt;
; [[Stockholm]] : Apple Pay / [[Secure Element]] (handles NFC as well)&lt;br /&gt;
; Skywagon : Xcode Cloud&lt;br /&gt;
; [[Tristar]] : Multiplexing chip in iDevices that deals with the Lightning protocol.&lt;br /&gt;
; Vinyl : The eSIM or eUICC&lt;br /&gt;
; Wormhole : AirDrop&amp;lt;ref&amp;gt;sharingd used to have classes like &amp;lt;code&amp;gt;SDWormholeConnection&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
; Yonkers : Baseband / Wireless related (relates to Savage)&lt;br /&gt;
&lt;br /&gt;
== Unknown names ==&lt;br /&gt;
&lt;br /&gt;
Codenames seen somewhere, but for which we don't know the meaning or it's not certain,&lt;br /&gt;
and needs more investigation.&lt;br /&gt;
&lt;br /&gt;
; Absinthe: FairPlay-related&lt;br /&gt;
; Avocado: Seen in SpringBoard code &amp;lt;code&amp;gt;os_feature_enabled_impl(&amp;quot;SpringBoard&amp;quot;, &amp;quot;Avocado&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Futhark: Private framework since iOS 9 (text detection?)&lt;br /&gt;
; Mescal: FairPlay-related&lt;br /&gt;
; Morphun: Private framework, there's also a MorphunData asset in mesu.&lt;br /&gt;
; Neutrino: Private frameworks since iOS 11 (NeutrinoCore and NeutrinoKit).&lt;br /&gt;
; Osprey: Private framework iOS 13, related to Siri, uses Absinthe&lt;br /&gt;
; Pegasus: Private framework since iOS 9 (not related to NSO's exploit tool).&lt;br /&gt;
; Proud Lock: Mentioned on SpringBoard code, possibly FaceID unlock?&lt;br /&gt;
; Silex: Private framework since iOS 11.&lt;br /&gt;
; Vapor: Seen in SpringBoard code &amp;lt;code&amp;gt;os_feature_enabled_impl(&amp;quot;NotificationCenter&amp;quot;, &amp;quot;Vapor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Viceroy: Seen in multiple frameworks, FaceTime-related.&lt;br /&gt;
; Xavier: Private frameworks since iOS 14 (XavierCore/XavierNews).&lt;br /&gt;
&lt;br /&gt;
== CPU cores ==&lt;br /&gt;
&lt;br /&gt;
Since the A6, Apple SoCs have Apple-designed CPU cores. This table lists their names.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! SoC&lt;br /&gt;
! Performance core&lt;br /&gt;
! Low-power core&lt;br /&gt;
|-&lt;br /&gt;
| [[A6]]&lt;br /&gt;
| Swift&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| [[A7]]&lt;br /&gt;
| Cyclone&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| [[A8]]&lt;br /&gt;
| Typhoon&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| [[A9]]&lt;br /&gt;
| Twister&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| [[A10]]&lt;br /&gt;
| Hurricane&lt;br /&gt;
| Zephyr&lt;br /&gt;
|-&lt;br /&gt;
| [[A11]]&lt;br /&gt;
| Monsoon&lt;br /&gt;
| Mistral&lt;br /&gt;
|-&lt;br /&gt;
| [[A12]]&lt;br /&gt;
| Vortex&lt;br /&gt;
| Tempest&lt;br /&gt;
|-&lt;br /&gt;
| [[A13]]&lt;br /&gt;
| Lightning&lt;br /&gt;
| Thunder&lt;br /&gt;
|-&lt;br /&gt;
| [[A14]]/[[M1]]&lt;br /&gt;
| Firestorm&lt;br /&gt;
| Icestorm&lt;br /&gt;
|-&lt;br /&gt;
| [[A15]]&amp;lt;ref&amp;gt;https://twitter.com/never_released/status/1431406418322657280&amp;lt;/ref&amp;gt;&lt;br /&gt;
| Avalanche&lt;br /&gt;
| Blizzard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References / notes ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Codenames&amp;diff=117239</id>
		<title>Codenames</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Codenames&amp;diff=117239"/>
		<updated>2021-09-18T03:20:35Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Added known codenames&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About||firmware version codenames (BuildTrains)|Firmware Codenames}}&lt;br /&gt;
&lt;br /&gt;
This page lists several code names of Apple features.&lt;br /&gt;
&lt;br /&gt;
; Broadway : [https://en.wikipedia.org/wiki/Apple_Card Apple Card]&lt;br /&gt;
; Brook: Handwashing detection (BrookServices and BrookDataCollection private frameworks since iOS 14).&lt;br /&gt;
; Durian : AirTags (seen eg. in the firmware update)&lt;br /&gt;
; Ensemble : Universal Control (macOS 12/iOS 15)&lt;br /&gt;
; Haywire : [[Haywire|Lightning video adapters]] (eg. Lightning to HDMI)&lt;br /&gt;
; HiFive : Chip present in Lightning cable connectors to negotiate the Lightning protocol.&lt;br /&gt;
; [[Hydra]] : Multiplexing chip in iDevices since iPhone X to deal with the Lightning protocol.&lt;br /&gt;
; Madrid : [[Messages|iMessage]]&amp;lt;ref&amp;gt;&amp;quot;Madrid&amp;quot; and &amp;lt;code&amp;gt;com.apple.madrid&amp;lt;/code&amp;gt; appear in iMessage code, data files, and protocol&amp;lt;/ref&amp;gt;&lt;br /&gt;
; Medusa : iPad Split Screen (probably Slide Over etc. too)&lt;br /&gt;
; Mesa : TouchID on iDevices&lt;br /&gt;
; Sanddollar : TouchID on the T1/T2 MacBook&lt;br /&gt;
; Rose : U1 / Ultra Wide Band chip&lt;br /&gt;
; Stark : CarPlay&lt;br /&gt;
; [[Stockholm]] : Apple Pay / [[Secure Element]]&lt;br /&gt;
; Skywagon : Xcode Cloud&lt;br /&gt;
; [[Tristar]] : Multiplexing chip in iDevices that deals with the Lightning protocol.&lt;br /&gt;
; Wormhole : AirDrop&amp;lt;ref&amp;gt;sharingd used to have classes like &amp;lt;code&amp;gt;SDWormholeConnection&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
; Vinyl : The eSIM or eUICC&lt;br /&gt;
; ACE : The USB-C port controller on the Mac&lt;br /&gt;
&lt;br /&gt;
== Unknown names ==&lt;br /&gt;
&lt;br /&gt;
Codenames seen somewhere, but for which we don't know the meaning or it's not certain,&lt;br /&gt;
and needs more investigation.&lt;br /&gt;
&lt;br /&gt;
; Absinthe: FairPlay-related&lt;br /&gt;
; Avocado: Seen in SpringBoard code &amp;lt;code&amp;gt;os_feature_enabled_impl(&amp;quot;SpringBoard&amp;quot;, &amp;quot;Avocado&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Futhark: Private framework since iOS 9 (text detection?)&lt;br /&gt;
; Mescal: FairPlay-related&lt;br /&gt;
; Morphun: Private framework, there's also a MorphunData asset in mesu.&lt;br /&gt;
; Neutrino: Private frameworks since iOS 11 (NeutrinoCore and NeutrinoKit).&lt;br /&gt;
; Osprey: Private framework iOS 13, related to Siri, uses Absinthe&lt;br /&gt;
; Pegasus: Private framework since iOS 9 (not related to NSO's exploit tool).&lt;br /&gt;
; Proud Lock: Mentioned on SpringBoard code, possibly FaceID unlock?&lt;br /&gt;
; Silex: Private framework since iOS 11.&lt;br /&gt;
; Vapor: Seen in SpringBoard code &amp;lt;code&amp;gt;os_feature_enabled_impl(&amp;quot;NotificationCenter&amp;quot;, &amp;quot;Vapor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Viceroy: Seen in multiple frameworks, FaceTime-related.&lt;br /&gt;
; Xavier: Private frameworks since iOS 14 (XavierCore/XavierNews).&lt;br /&gt;
&lt;br /&gt;
== CPU cores ==&lt;br /&gt;
&lt;br /&gt;
Since the A6, Apple SoCs have Apple-designed CPU cores. This table lists their names.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! SoC&lt;br /&gt;
! Performance core&lt;br /&gt;
! Low-power core&lt;br /&gt;
|-&lt;br /&gt;
| [[A6]]&lt;br /&gt;
| Swift&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| [[A7]]&lt;br /&gt;
| Cyclone&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| [[A8]]&lt;br /&gt;
| Typhoon&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| [[A9]]&lt;br /&gt;
| Twister&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| [[A10]]&lt;br /&gt;
| Hurricane&lt;br /&gt;
| Zephyr&lt;br /&gt;
|-&lt;br /&gt;
| [[A11]]&lt;br /&gt;
| Monsoon&lt;br /&gt;
| Mistral&lt;br /&gt;
|-&lt;br /&gt;
| [[A12]]&lt;br /&gt;
| Vortex&lt;br /&gt;
| Tempest&lt;br /&gt;
|-&lt;br /&gt;
| [[A13]]&lt;br /&gt;
| Lightning&lt;br /&gt;
| Thunder&lt;br /&gt;
|-&lt;br /&gt;
| [[A14]]/[[M1]]&lt;br /&gt;
| Firestorm&lt;br /&gt;
| Icestorm&lt;br /&gt;
|-&lt;br /&gt;
| [[A15]]&amp;lt;ref&amp;gt;https://twitter.com/never_released/status/1431406418322657280&amp;lt;/ref&amp;gt;&lt;br /&gt;
| Avalanche&lt;br /&gt;
| Blizzard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References / notes ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=T8012&amp;diff=108106</id>
		<title>T8012</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=T8012&amp;diff=108106"/>
		<updated>2020-10-23T05:40:35Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: /* Identifying the T2 from macOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''T8012''', also just known as the '''T2''' is the CPU introduced in the [[J137AP|second-generation iBridge processor]], the processor found on the iMac Pro, and used on all subsequent T2 enabled Mac products.&lt;br /&gt;
&lt;br /&gt;
== Enabled Mac Products ==&lt;br /&gt;
&lt;br /&gt;
Devices sourced from [https://github.com/libimobiledevice/libirecovery/blob/master/src/libirecovery.c]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!iBridge Product ID&lt;br /&gt;
!Board ID&lt;br /&gt;
!Board Minor&lt;br /&gt;
!Description (Product ID)&lt;br /&gt;
!checkm8/blackbird confirmed&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,1&lt;br /&gt;
|J137AP&lt;br /&gt;
|0x0A&lt;br /&gt;
|Apple T2 iMacPro1,1 (j137)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,3&lt;br /&gt;
|J680AP&lt;br /&gt;
|0x0B&lt;br /&gt;
|Apple T2 MacBookPro15,1 (j680)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,4&lt;br /&gt;
|J132AP&lt;br /&gt;
|0x0C&lt;br /&gt;
|Apple T2 MacBookPro15,2 (j132)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,5&lt;br /&gt;
|J174AP&lt;br /&gt;
|0x0E&lt;br /&gt;
|Apple T2 Macmini8,1 (j174)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,6&lt;br /&gt;
|J160AP&lt;br /&gt;
|0x0F&lt;br /&gt;
|Apple T2 MacPro7,1 (j160)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,7&lt;br /&gt;
|J780AP&lt;br /&gt;
|0x07&lt;br /&gt;
|Apple T2 MacBookPro15,3 (j780)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,8&lt;br /&gt;
|J140kAP&lt;br /&gt;
|0x17&lt;br /&gt;
|Apple T2 MacBookAir8,1 (j140k)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,10&lt;br /&gt;
|J213AP&lt;br /&gt;
|0x18&lt;br /&gt;
|Apple T2 MacBookPro15,4 (j213)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,11&lt;br /&gt;
|J230AP&lt;br /&gt;
|0x1F&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,12&lt;br /&gt;
|J140aAP&lt;br /&gt;
|0x37&lt;br /&gt;
|Apple T2 MacBookAir8,2 (j140a)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,13&lt;br /&gt;
|J214AP&lt;br /&gt;
|0x1E&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,14&lt;br /&gt;
|J152fAP&lt;br /&gt;
|0x3A&lt;br /&gt;
|Apple T2 MacBookPro16,1 (j152f)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,15&lt;br /&gt;
|J230kAP&lt;br /&gt;
|0x3F&lt;br /&gt;
|Apple T2 MacBookAir9,1 (j223k)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,16&lt;br /&gt;
|J214kAP&lt;br /&gt;
|0x3E&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,19&lt;br /&gt;
|J185AP&lt;br /&gt;
|0x22&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,20&lt;br /&gt;
|J185fAP&lt;br /&gt;
|0x23&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,21&lt;br /&gt;
|J223AP&lt;br /&gt;
|0x3B&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,22&lt;br /&gt;
|J215AP&lt;br /&gt;
|0x38&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==T2 Recovery USB Device ID==&lt;br /&gt;
During the restore process, the T2 presents as a [[Restore Mode]] &amp;lt;code&amp;gt;com.apple.recoveryd&amp;lt;/code&amp;gt; service, but uses the USB product ID of &amp;lt;code&amp;gt;0x8086&amp;lt;/code&amp;gt; instead of the iPhone's &amp;lt;code&amp;gt;0x1290-0x12AF&amp;lt;/code&amp;gt;.[https://github.com/libimobiledevice/usbmuxd/blob/master/udev/39-usbmuxd.rules.in]&lt;br /&gt;
&lt;br /&gt;
==Bootrom Exploits==&lt;br /&gt;
The T8012 uses Bootrom version [[Bootrom_3401.0.0.1.16]] which is vulnerable to [[checkm8]].  A fork of [[checkm8]] with support for the t2 exists at [https://github.com/h0m3us3r/ipwndfu h0m3us3r] and a checkra1n with T2 tutorial is at [https://blog.t8012.dev/t2-checkra1n-guide/ t8012 blog].  The adaption of checkm8 was performed by the [[t8012 checkm8]] group by brute forcing the various locations from ROM.  The copyright string reads &amp;lt;code&amp;gt;SecureROM for t8012si, Copyright 2007-2016, Apple Inc&amp;lt;/code&amp;gt;, for version [[Bootrom_3401.0.0.1.16]].&lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/axi0mX/status/1182915286858522624 axi0mX T2 support tweet]&lt;br /&gt;
* [https://twitter.com/qwertyoruiopz/status/1237400943047704576?s=21 quertyoruiop's early checkra1n previews]&lt;br /&gt;
&lt;br /&gt;
Similar to iPhones, iPads, and iPods, iBridge firmware bundles come in IPSW form. Build train codenames are appended with &amp;quot;HWBridge&amp;quot; to distinguish them from normal firmwares, and the disk image files inside have labels that are appended with &amp;quot;UniversalBridgeOS.&amp;quot; They can only be restored to if the Mac is in [[DFU mode]].&lt;br /&gt;
&lt;br /&gt;
=== The T2 Secure Enclave Processor (SEP) ===&lt;br /&gt;
&lt;br /&gt;
The T2 is based on the A10 silicon design and therefore has a A10 SEP.  The A10 SEP is a ARM Cortex-A7 32bit CPU.  The T2 Secure Enclave is vulnerable to the same exploit Pangu presented at MOSEC named `blackbird`.&lt;br /&gt;
&lt;br /&gt;
The T2 SEP is responsible for acting as a secure store for symmetric secrets (tokens) as well as asymmetric credentials that can be generated and wrapped by the SEP.  The SEP plays a key role in disk encryption.&lt;br /&gt;
&lt;br /&gt;
== Entering DFU Mode ==&lt;br /&gt;
The T2 models can be restored via a Thunderbolt cable using [https://apps.apple.com/us/app/apple-configurator-2/id1037126344?mt=12 Apple Configurator 2].&lt;br /&gt;
&lt;br /&gt;
=== Desktop Macs ===&lt;br /&gt;
For example, iMac Pro and Mac mini models from 2018 or later.&amp;lt;ref&amp;gt;https://support.apple.com/en-us/guide/apple-configurator-2/apdebea5be51/mac&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Completely power off the Mac; disconnect it from external power.&lt;br /&gt;
# Attach one end of a Thunderbolt cable to the correct Thunderbolt port on the Mac.&lt;br /&gt;
#* iMac Pro: The Thunderbolt port that is located next to the Ethernet port.&lt;br /&gt;
#* Mac mini: The Thunderbolt port that is located next to the HDMI port.&lt;br /&gt;
# Connect the other end to any Thunderbolt or USB port on the host Mac (the device which will be used for restoring).&lt;br /&gt;
# Hold down the power button on the back of the Mac for 3 seconds, while connecting the power cord.&lt;br /&gt;
&lt;br /&gt;
=== Portable Macs ===&lt;br /&gt;
For example, MacBook models from 2018 or later.&amp;lt;ref&amp;gt;https://support.apple.com/en-us/guide/apple-configurator-2/apd0020c3dc2/mac&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Completely power off the Mac; disconnect it from external power.&lt;br /&gt;
# Attach one end of a Thunderbolt cable to the Thunderbolt port that is located on the left side, closest to the front.&lt;br /&gt;
# Connect the other end to any Thunderbolt or USB port on the host Mac (the device which will be used for restoring).&lt;br /&gt;
# Hold down the power button, right Shift key, and left Control and Option keys, for 3 seconds.&lt;br /&gt;
&lt;br /&gt;
=== Identifying the T2 from DFU ===&lt;br /&gt;
&lt;br /&gt;
Once a device is in DFU enumerating the USB device yields the BoardID.  Using either Linux's &amp;lt;code&amp;gt;lsusb -v&amp;lt;/code&amp;gt; or macOS's &amp;lt;code&amp;gt;ioreg -p IOUSB&amp;lt;/code&amp;gt; the USB serial attribute will contain the same information as any other Apple A core iBoot device.  (http://newosxbook.com/bonus/iBoot.pdf).  The ChipID will always be 8012.  The value for BDID is the BoardID.  Full decoding of the version string can be performed using the code at https://github.com/das-iboot/das-iboot/blob/master/das_iboot/device.py.  These values for BDID, CPID, CPRV and ECID are in Hex.&lt;br /&gt;
&lt;br /&gt;
=== Identifying the T2 from macOS ===&lt;br /&gt;
&lt;br /&gt;
This will provide many of the same values as DFU but in Decimal instead of Hex like above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# ECID in decimal instead of Hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge UniqueChipID&lt;br /&gt;
# Chip ID CPID in decimal (32786 == 0x8012)&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge ChipID&lt;br /&gt;
# Board Revision CPRV in decimal instead of hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge BoardRevision&lt;br /&gt;
# Board ID (BDID) in decimal instead of hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge BoardId&lt;br /&gt;
# Hardware Model is the name of the Board&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge HWModel&lt;br /&gt;
# Mac Model String&lt;br /&gt;
sysctl -n hw.model&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mac Configuration Utility ==&lt;br /&gt;
[[Image:MCUIcon.png|thumb|The Mac Configuration Utility icon.]]&lt;br /&gt;
&lt;br /&gt;
In order to restore a firmware to an iBridge device, technicians must use two Apple Internal tools. The first one, '''Apple Service Toolkit (AST)''', is used to initiate a diagnostic session between the host Mac and the Mac in DFU mode. The second tool, which must be installed on the host Mac, is known as the '''Mac Configuration Utility (MCU)'''. It communicates with AST to provide board information and initiate restores and diagnostics over-the-air. MCU supports macOS 10.13.2 or later.&lt;br /&gt;
&lt;br /&gt;
[[Image:MCU.png|thumb|The Mac Configuration Utility startup screen.]]&lt;br /&gt;
&lt;br /&gt;
iBridge devices can still be managed if there is no firmware present by booting a diagnostic image, which is pushed to the device by MCU after a '''Blank Board Serializer''' test is initiated on AST. This test will also assign a serial number to a new board.&lt;br /&gt;
&lt;br /&gt;
During a restore, an Apple logo and progress bar will show on the screen, similar to that of a normal device restore. It is unknown if iBridge firmwares are signed, or if they are verified by the host or by iBridge devices.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Processors]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=T8012&amp;diff=107859</id>
		<title>T8012</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=T8012&amp;diff=107859"/>
		<updated>2020-10-14T18:00:32Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: /* Bootrom Exploits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''T8012''', also just known as the '''T2''' is the CPU introduced in the [[J137AP|second-generation iBridge processor]], the processor found on the iMac Pro, and used on all subsequent T2 enabled Mac products.&lt;br /&gt;
&lt;br /&gt;
== Enabled Mac Products ==&lt;br /&gt;
&lt;br /&gt;
Devices sourced from [https://github.com/libimobiledevice/libirecovery/blob/master/src/libirecovery.c]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!iBridge Product ID&lt;br /&gt;
!Board ID&lt;br /&gt;
!Board Minor&lt;br /&gt;
!Description (Product ID)&lt;br /&gt;
!checkm8/blackbird confirmed&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,1&lt;br /&gt;
|J137AP&lt;br /&gt;
|0x0A&lt;br /&gt;
|Apple T2 iMacPro1,1 (j137)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,3&lt;br /&gt;
|J680AP&lt;br /&gt;
|0x0B&lt;br /&gt;
|Apple T2 MacBookPro15,1 (j680)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,4&lt;br /&gt;
|J132AP&lt;br /&gt;
|0x0C&lt;br /&gt;
|Apple T2 MacBookPro15,2 (j132)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,5&lt;br /&gt;
|J174AP&lt;br /&gt;
|0x0E&lt;br /&gt;
|Apple T2 Macmini8,1 (j174)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,6&lt;br /&gt;
|J160AP&lt;br /&gt;
|0x0F&lt;br /&gt;
|Apple T2 MacPro7,1 (j160)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,7&lt;br /&gt;
|J780AP&lt;br /&gt;
|0x07&lt;br /&gt;
|Apple T2 MacBookPro15,3 (j780)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,8&lt;br /&gt;
|J140kAP&lt;br /&gt;
|0x17&lt;br /&gt;
|Apple T2 MacBookAir8,1 (j140k)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,10&lt;br /&gt;
|J213AP&lt;br /&gt;
|0x18&lt;br /&gt;
|Apple T2 MacBookPro15,4 (j213)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,11&lt;br /&gt;
|J230AP&lt;br /&gt;
|0x1F&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,12&lt;br /&gt;
|J140aAP&lt;br /&gt;
|0x37&lt;br /&gt;
|Apple T2 MacBookAir8,2 (j140a)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,13&lt;br /&gt;
|J214AP&lt;br /&gt;
|0x1E&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,14&lt;br /&gt;
|J152fAP&lt;br /&gt;
|0x3A&lt;br /&gt;
|Apple T2 MacBookPro16,1 (j152f)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,15&lt;br /&gt;
|J230kAP&lt;br /&gt;
|0x3F&lt;br /&gt;
|Apple T2 MacBookAir9,1 (j223k)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,16&lt;br /&gt;
|J214kAP&lt;br /&gt;
|0x3E&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,19&lt;br /&gt;
|J185AP&lt;br /&gt;
|0x22&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,20&lt;br /&gt;
|J185fAP&lt;br /&gt;
|0x23&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,21&lt;br /&gt;
|J223AP&lt;br /&gt;
|0x3B&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,22&lt;br /&gt;
|J215AP&lt;br /&gt;
|0x38&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==T2 Recovery USB Device ID==&lt;br /&gt;
During the restore process, the T2 presents as a [[Restore Mode]] &amp;lt;code&amp;gt;com.apple.recoveryd&amp;lt;/code&amp;gt; service, but uses the USB product ID of &amp;lt;code&amp;gt;0x8086&amp;lt;/code&amp;gt; instead of the iPhone's &amp;lt;code&amp;gt;0x1290-0x12AF&amp;lt;/code&amp;gt;.[https://github.com/libimobiledevice/usbmuxd/blob/master/udev/39-usbmuxd.rules.in]&lt;br /&gt;
&lt;br /&gt;
==Bootrom Exploits==&lt;br /&gt;
The T8012 uses Bootrom version [[Bootrom_3401.0.0.1.16]] which is vulnerable to [[checkm8]].  A fork of [[checkm8]] with support for the t2 exists at [https://github.com/h0m3us3r/ipwndfu h0m3us3r] and a checkra1n with T2 tutorial is at [https://blog.t8012.dev/t2-checkra1n-guide/ t8012 blog].  The adaption of checkm8 was performed by the [[t8012 checkm8]] group by brute forcing the various locations from ROM.  The copyright string reads &amp;lt;code&amp;gt;SecureROM for t8012si, Copyright 2007-2016, Apple Inc&amp;lt;/code&amp;gt;, for version [[Bootrom_3401.0.0.1.16]].&lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/axi0mX/status/1182915286858522624 axi0mX T2 support tweet]&lt;br /&gt;
* [https://twitter.com/qwertyoruiopz/status/1237400943047704576?s=21 quertyoruiop's early checkra1n previews]&lt;br /&gt;
&lt;br /&gt;
Similar to iPhones, iPads, and iPods, iBridge firmware bundles come in IPSW form. Build train codenames are appended with &amp;quot;HWBridge&amp;quot; to distinguish them from normal firmwares, and the disk image files inside have labels that are appended with &amp;quot;UniversalBridgeOS.&amp;quot; They can only be restored to if the Mac is in [[DFU mode]].&lt;br /&gt;
&lt;br /&gt;
=== The T2 Secure Enclave Processor (SEP) ===&lt;br /&gt;
&lt;br /&gt;
The T2 is based on the A10 silicon design and therefore has a A10 SEP.  The A10 SEP is a ARM Cortex-A7 32bit CPU.  The T2 Secure Enclave is vulnerable to the same exploit Pangu presented at MOSEC named `blackbird`.&lt;br /&gt;
&lt;br /&gt;
The T2 SEP is responsible for acting as a secure store for symmetric secrets (tokens) as well as asymmetric credentials that can be generated and wrapped by the SEP.  The SEP plays a key role in disk encryption.&lt;br /&gt;
&lt;br /&gt;
== Entering DFU Mode ==&lt;br /&gt;
The T2 models can be restored via a Thunderbolt cable using [https://apps.apple.com/us/app/apple-configurator-2/id1037126344?mt=12 Apple Configurator 2].&lt;br /&gt;
&lt;br /&gt;
=== Desktop Macs ===&lt;br /&gt;
For example, iMac Pro and Mac mini models from 2018 or later.&amp;lt;ref&amp;gt;https://support.apple.com/en-us/guide/apple-configurator-2/apdebea5be51/mac&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Completely power off the Mac; disconnect it from external power.&lt;br /&gt;
# Attach one end of a Thunderbolt cable to the correct Thunderbolt port on the Mac.&lt;br /&gt;
#* iMac Pro: The Thunderbolt port that is located next to the Ethernet port.&lt;br /&gt;
#* Mac mini: The Thunderbolt port that is located next to the HDMI port.&lt;br /&gt;
# Connect the other end to any Thunderbolt or USB port on the host Mac (the device which will be used for restoring).&lt;br /&gt;
# Hold down the power button on the back of the Mac for 3 seconds, while connecting the power cord.&lt;br /&gt;
&lt;br /&gt;
=== Portable Macs ===&lt;br /&gt;
For example, MacBook models from 2018 or later.&amp;lt;ref&amp;gt;https://support.apple.com/en-us/guide/apple-configurator-2/apd0020c3dc2/mac&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Completely power off the Mac; disconnect it from external power.&lt;br /&gt;
# Attach one end of a Thunderbolt cable to the Thunderbolt port that is located on the left side, closest to the front.&lt;br /&gt;
# Connect the other end to any Thunderbolt or USB port on the host Mac (the device which will be used for restoring).&lt;br /&gt;
# Hold down the power button, right Shift key, and left Control and Option keys, for 3 seconds.&lt;br /&gt;
&lt;br /&gt;
=== Identifying the T2 from DFU ===&lt;br /&gt;
&lt;br /&gt;
Once a device is in DFU enumerating the USB device yields the BoardID.  Using either Linux's &amp;lt;code&amp;gt;lsusb -v&amp;lt;/code&amp;gt; or macOS's &amp;lt;code&amp;gt;ioreg -p IOUSB&amp;lt;/code&amp;gt; the USB serial attribute will contain the same information as any other Apple A core iBoot device.  (http://newosxbook.com/bonus/iBoot.pdf).  The ChipID will always be 8012.  The value for BDID is the BoardID.  Full decoding of the version string can be performed using the code at https://github.com/das-iboot/das-iboot/blob/master/das_iboot/device.py.  These values for BDID, CPID, CPRV and ECID are in Hex.&lt;br /&gt;
&lt;br /&gt;
=== Identifying the T2 from macOS ===&lt;br /&gt;
&lt;br /&gt;
This will provide many of the same values as DFU but in Decimal instead of Hex like above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# ECID in decimal instead of Hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge UniqueChipID&lt;br /&gt;
# Chip ID CPID in decimal (32786 == 0x8012)&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge ChipID&lt;br /&gt;
# Board Revision CPRV in decimal instead of hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge BoardRevision&lt;br /&gt;
# Board ID (BDID) in decimal instead of hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge BoardId&lt;br /&gt;
# Hardware Model is the name of the Board&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge HWModel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mac Configuration Utility ==&lt;br /&gt;
[[Image:MCUIcon.png|thumb|The Mac Configuration Utility icon.]]&lt;br /&gt;
&lt;br /&gt;
In order to restore a firmware to an iBridge device, technicians must use two Apple Internal tools. The first one, '''Apple Service Toolkit (AST)''', is used to initiate a diagnostic session between the host Mac and the Mac in DFU mode. The second tool, which must be installed on the host Mac, is known as the '''Mac Configuration Utility (MCU)'''. It communicates with AST to provide board information and initiate restores and diagnostics over-the-air. MCU supports macOS 10.13.2 or later.&lt;br /&gt;
&lt;br /&gt;
[[Image:MCU.png|thumb|The Mac Configuration Utility startup screen.]]&lt;br /&gt;
&lt;br /&gt;
iBridge devices can still be managed if there is no firmware present by booting a diagnostic image, which is pushed to the device by MCU after a '''Blank Board Serializer''' test is initiated on AST. This test will also assign a serial number to a new board.&lt;br /&gt;
&lt;br /&gt;
During a restore, an Apple logo and progress bar will show on the screen, similar to that of a normal device restore. It is unknown if iBridge firmwares are signed, or if they are verified by the host or by iBridge devices.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Processors]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=T8012_checkm8&amp;diff=107858</id>
		<title>T8012 checkm8</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=T8012_checkm8&amp;diff=107858"/>
		<updated>2020-10-14T17:59:17Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: /* Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:t8012 checkm8}}&lt;br /&gt;
The least imaginative team name...&lt;br /&gt;
&lt;br /&gt;
'''t8012 checkm8''' is a team of who have applied the [[checkm8]] vulnerability to the [[t8012]] or &amp;quot;T2&amp;quot; security processor on modern Mac computers. &lt;br /&gt;
&lt;br /&gt;
==Work==&lt;br /&gt;
* PlugNPwn auto DFU for the T2 [https://blog.t8012.dev/plug-n-pwn/]&lt;br /&gt;
* [[Checkm8]] port to the T2 processor [https://github.com/h0m3us3r/ipwndfu]&lt;br /&gt;
* [[T2]] restore using '''libimobiledevice''' [https://gist.github.com/rickmark/9245ed3ef7f36d5a0421557f68c4681b]&lt;br /&gt;
* [[USB Target Disk Mode]]&lt;br /&gt;
* Apple [[SMC]] Firmware Reverse Engineering&lt;br /&gt;
* Analysis of [[FDR]] data in the SysCfg region of Flash, and it's potential for Malware&lt;br /&gt;
&lt;br /&gt;
== Official Members ==&lt;br /&gt;
*[[User:h0m3us3r|h0m3us3r]]&lt;br /&gt;
*[[User:aunali1|aunali1]]&lt;br /&gt;
*[[User:mrarm|mrarm]]&lt;br /&gt;
*[[User:rickmark|rickmark]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Website - https://t8012.dev&lt;br /&gt;
* Blog - https://blog.t8012.dev&lt;br /&gt;
* Twitter - https://twitter.com/t8012dev&lt;br /&gt;
* GitHub - https://github.com/t8012&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackers]]&lt;br /&gt;
[[Category:Teams]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Chimp_Cable&amp;diff=107749</id>
		<title>Chimp Cable</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Chimp_Cable&amp;diff=107749"/>
		<updated>2020-10-10T19:50:16Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Chimp_Cable.jpeg|right|thumb|A Normal Chimp Cable (credit Mr White)]]&lt;br /&gt;
&lt;br /&gt;
The '''Chimp Cable''' is a JTAG/SWD Cable capable of debugging CPFM 00 or 01 devices (EVT and DVT devices), or CPFM 03 (production devices) which demoted which have a USB-C port.  The Chimp is used with the [[T2]] and [[iPad Pro]].  They can be purchased from obscure markets. &lt;br /&gt;
&lt;br /&gt;
{{stub|hardware}}&lt;br /&gt;
[[Category:Cables]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Chimp_Cable&amp;diff=107748</id>
		<title>Chimp Cable</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Chimp_Cable&amp;diff=107748"/>
		<updated>2020-10-10T19:49:59Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Chimp_Cable.jpeg|right|thumb|A Normal Chimp Cable (credit Mr White)]]&lt;br /&gt;
&lt;br /&gt;
The '''Chimp Cable''' is a JTAG/SWD Cable capable of debugging CPFM 00 or 01 devices (EVT and DVT devices), or CPFM 03 (production devices) which demoted which have a USB-C port.  The Chimp is used with the [[T2]] and [[iPad Pro]].  They can be purchased from obscure markets. There are two known types of the Kanzi cable.&lt;br /&gt;
&lt;br /&gt;
{{stub|hardware}}&lt;br /&gt;
[[Category:Cables]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=File:Chimp_Cable.jpeg&amp;diff=107747</id>
		<title>File:Chimp Cable.jpeg</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=File:Chimp_Cable.jpeg&amp;diff=107747"/>
		<updated>2020-10-10T19:49:36Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Chimp_Cable&amp;diff=107746</id>
		<title>Chimp Cable</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Chimp_Cable&amp;diff=107746"/>
		<updated>2020-10-10T19:49:02Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Created page with &amp;quot;A Normal Chimp Cable (credit Mr White)  The ```Chimp Cable``` is a JTAG/SWD Cable capable of debugging CPFM 00 or 01 devices (EVT and DVT...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Chimp_Cable.jpeg|right|thumb|A Normal Chimp Cable (credit Mr White)]]&lt;br /&gt;
&lt;br /&gt;
The ```Chimp Cable``` is a JTAG/SWD Cable capable of debugging CPFM 00 or 01 devices (EVT and DVT devices), or CPFM 03 (production devices) which demoted which have a USB-C port.  The Chimp is used with the [[T2]] and [[iPad Pro]].  They can be purchased from obscure markets. There are two known types of the Kanzi cable.&lt;br /&gt;
&lt;br /&gt;
{{stub|hardware}}&lt;br /&gt;
[[Category:Cables]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=T8012_checkm8&amp;diff=107732</id>
		<title>T8012 checkm8</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=T8012_checkm8&amp;diff=107732"/>
		<updated>2020-10-09T05:13:42Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:t8012 checkm8}}&lt;br /&gt;
The least imaginative team name...&lt;br /&gt;
&lt;br /&gt;
'''t8012 checkm8''' is a team of who have applied the [[checkm8]] vulnerability to the [[t8012]] or &amp;quot;T2&amp;quot; security processor on modern Mac computers. &lt;br /&gt;
&lt;br /&gt;
==Work==&lt;br /&gt;
* [[Checkm8]] port to the T2 processor [https://github.com/h0m3us3r/ipwndfu]&lt;br /&gt;
* [[T2]] restore using '''libimobiledevice''' [https://gist.github.com/rickmark/9245ed3ef7f36d5a0421557f68c4681b]&lt;br /&gt;
* [[USB Target Disk Mode]]&lt;br /&gt;
* Apple [[SMC]] Firmware Reverse Engineering&lt;br /&gt;
* Analysis of [[FDR]] data in the SysCfg region of Flash, and it's potential for Malware&lt;br /&gt;
&lt;br /&gt;
== Official Members ==&lt;br /&gt;
*[[User:h0m3us3r|h0m3us3r]]&lt;br /&gt;
*[[User:aunali1|aunali1]]&lt;br /&gt;
*[[User:mrarm|mrarm]]&lt;br /&gt;
*[[User:rickmark|rickmark]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Website - https://t8012.dev&lt;br /&gt;
* Blog - https://blog.t8012.dev&lt;br /&gt;
* Twitter - https://twitter.com/t8012dev&lt;br /&gt;
* GitHub - https://github.com/t8012&lt;br /&gt;
&lt;br /&gt;
[[Category:Hackers]]&lt;br /&gt;
[[Category:Teams]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=IPSW_File_Format&amp;diff=107055</id>
		<title>IPSW File Format</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=IPSW_File_Format&amp;diff=107055"/>
		<updated>2020-09-16T23:58:50Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: /* Firmwares found in IPSW */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{redirect|IPSW|the component of XPwn|ipsw}}&lt;br /&gt;
{{see also|Disk Image Formats}}&lt;br /&gt;
'''IPSW''' ('''iP'''od&amp;lt;sup&amp;gt;[[#Notes|[1]&amp;lt;nowiki/&amp;gt;]]&amp;lt;/sup&amp;gt; '''S'''oft'''w'''are) files have the Magic Number 504B0304 (PK\003\004) and thus are [[wikipedia:ZIP (file format)|ZIP]] archives. They can be modified with typical zip/unzip tools (i.e. change extension to .zip and double click). IPSWs are used to deliver the [[iDevice|device's]] firmware to the end-user.&lt;br /&gt;
&lt;br /&gt;
== Archive Structure ==&lt;br /&gt;
* [[Restore Ramdisk]]&lt;br /&gt;
* [[Update Ramdisk]] (some firmwares don't have one due to various reasons)&lt;br /&gt;
* [[:/|Filesystem Ramdisk]] (the largest [[Apple Disk Image|.dmg]] file)&lt;br /&gt;
* [[Device Tree]] (model specific)&lt;br /&gt;
* [[Kernelcache]] (model specific; processor specific on pre-[[S5L8930|A4]])&lt;br /&gt;
* BuildManifest.plist (first appeared in [[iOS|iPhone OS]] 3.0 beta 2)&lt;br /&gt;
* Restore.plist&lt;br /&gt;
* ''Firmware/''&lt;br /&gt;
** ''all_flash/''&lt;br /&gt;
*** ''all_flash.XXXXX.production/'' (model specific i.e. [[M68AP]], [[N82AP]], etc.)&lt;br /&gt;
**** [[S5L File Formats#IMG2|IMG2]]/[[IMG3 File Format|IMG3]] files&lt;br /&gt;
**** manifest&lt;br /&gt;
** dfu/''&lt;br /&gt;
*** [[iBEC]].XXXXX.dfu (model specific i.e. [[M68AP]], [[N82AP]], etc.)&lt;br /&gt;
*** [[iBSS]].XXXXX.dfu&lt;br /&gt;
*** [[WTF]].XXXXX.dfu (model specific and only for [[M68AP]], [[N82AP]], [[N45AP]], [[N72AP]]; not present in firmwares for the [[N88AP|iPhone 3GS]] and later, because it was used to patch issues with the DFU mode that was burned into the bootrom)&lt;br /&gt;
** [[Baseband Device|Baseband]] (may be one or many files depending on the model)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
Here are the contents of the [[Kirkwood 7A341 (iPhone2,1)|iPhone 3GS 3.0 (7A341)]] firmware IPSW:&lt;br /&gt;
* &amp;lt;code&amp;gt;[[:/|018-5302-002.dmg]]&amp;lt;/code&amp;gt; (281214976 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;[[Update Ramdisk|018-5304-002.dmg]]&amp;lt;/code&amp;gt; (12769604 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;[[Restore Ramdisk|018-5306-002.dmg]]&amp;lt;/code&amp;gt; (12777796 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;!--[[#BuildManifest.plist|--&amp;gt;BuildManifest.plist&amp;lt;!--]]--&amp;gt;&amp;lt;/code&amp;gt; (21097 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;[[kernelcache]].release.s5l8920x&amp;lt;/code&amp;gt; (4695492 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;!--[[#Restore.plist|--&amp;gt;Restore.plist&amp;lt;!--]]--&amp;gt;&amp;lt;/code&amp;gt; (1763 bytes)&lt;br /&gt;
* ''&amp;lt;code&amp;gt;Firmware/&amp;lt;/code&amp;gt;''&lt;br /&gt;
** ''&amp;lt;code&amp;gt;all_flash/&amp;lt;/code&amp;gt;''&lt;br /&gt;
*** ''&amp;lt;code&amp;gt;all_flash.n88ap.production/&amp;lt;/code&amp;gt;''&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[AppleLogo|applelogo]].s5l8920x.img3&amp;lt;/code&amp;gt; (9604 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryCharging0|batterycharging0]].s5l8920x.img3&amp;lt;/code&amp;gt; (19716 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryCharging1|batterycharging1]].s5l8920x.img3&amp;lt;/code&amp;gt; (24900 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryFull|batteryfull]].s5l8920x.img3&amp;lt;/code&amp;gt; (76100 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryLow0|batterylow0]].s5l8920x.img3&amp;lt;/code&amp;gt; (56772 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryLow1|batterylow1]].s5l8920x.img3&amp;lt;/code&amp;gt; (65348 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[DeviceTree]].n88ap.img3&amp;lt;/code&amp;gt; (44996 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[GlyphCharging|glyphcharging]].s5l8920x.img3&amp;lt;/code&amp;gt; (20356 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[GlyphPlugin|glyphplugin]].s5l8920x.img3&amp;lt;/code&amp;gt; (19332 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[iBoot (Bootloader)|iBoot]].n88ap.RELEASE.img3&amp;lt;/code&amp;gt; (178500 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[LLB]].n88ap.RELEASE.img3&amp;lt;/code&amp;gt; (67908 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;manifest&amp;lt;/code&amp;gt; (341 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[NeedService|needservice]].s5l8920x.img3&amp;lt;/code&amp;gt; (20484 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[RecoveryMode|recoverymode]].s5l8920x.img3&amp;lt;/code&amp;gt; (47876 bytes)&lt;br /&gt;
** ''&amp;lt;code&amp;gt;dfu/&amp;lt;/code&amp;gt;''&lt;br /&gt;
*** &amp;lt;code&amp;gt;[[iBEC]].n88ap.RELEASE.dfu&amp;lt;/code&amp;gt; (104772 bytes)&lt;br /&gt;
*** &amp;lt;code&amp;gt;[[iBSS]].n88ap.RELEASE.dfu&amp;lt;/code&amp;gt; (104772 bytes)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmwares found in IPSW ==&lt;br /&gt;
Per http://newosxbook.com/bonus/vol1AppA.html&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Filename&lt;br /&gt;
! Use&lt;br /&gt;
|-&lt;br /&gt;
| ICE17-1.xx.xx.Release.bbfw&lt;br /&gt;
| Intel modem / baseband&lt;br /&gt;
|-&lt;br /&gt;
| Mav17-1.xx.xx.Release.bbfw&lt;br /&gt;
| Maverick modem / baseband&lt;br /&gt;
|-&lt;br /&gt;
| AOP/aopfw-iphone##aop.im4p&lt;br /&gt;
| Always on processor&lt;br /&gt;
|-&lt;br /&gt;
| Savage/Savage.B[0/2]-[Dev/Prod].[vt.]fw&lt;br /&gt;
| FaceID&lt;br /&gt;
|-&lt;br /&gt;
| Yonkers/Yonkers.EA01_F###_[Dev/Prod]fw&lt;br /&gt;
| FaceID&lt;br /&gt;
|-&lt;br /&gt;
| SE/Stockholm##.RELEASE.sefw&lt;br /&gt;
| Secure Element&lt;br /&gt;
|-&lt;br /&gt;
| Maggie/AppleMaggieFirmwareImage.im4p&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| cpu_Multitouch.im4p&lt;br /&gt;
| Multitouch controller&lt;br /&gt;
|-&lt;br /&gt;
| isp/adc-petra-d3x.im4p&lt;br /&gt;
| Image Signal Processor&lt;br /&gt;
|-&lt;br /&gt;
| ane/h11_ane_fw_quin.im4p&lt;br /&gt;
| [[Apple Neural Engine]]&lt;br /&gt;
|-&lt;br /&gt;
| WirelessPower/WirelessPower.iphone##.im4p&lt;br /&gt;
| Wireless charging controller&lt;br /&gt;
|-&lt;br /&gt;
| SmartIOFirmwareCHIP.im4p&lt;br /&gt;
| [[T8020]] and later Smart I/O&lt;br /&gt;
|-&lt;br /&gt;
| board_CallanFirmware.im4p&lt;br /&gt;
| Haptics Firmware&lt;br /&gt;
|-&lt;br /&gt;
| ave/AppleAVE2FW.im4p&lt;br /&gt;
| Audio/Video Encoder&lt;br /&gt;
|-&lt;br /&gt;
| agx/armfw_g11p.im4p&lt;br /&gt;
| GPU Scheduler/Command Stream Processor&lt;br /&gt;
|-&lt;br /&gt;
| all_flash/sep-firmware.*.im4p&lt;br /&gt;
| Secure Enclave Processor&lt;br /&gt;
|-&lt;br /&gt;
| liquiddetect@2436~iphone-lightning.im4p&lt;br /&gt;
| Liquid Damage Detection&lt;br /&gt;
|-&lt;br /&gt;
| pmp/t8030pmp.im4p&lt;br /&gt;
| Power Management Processor&lt;br /&gt;
|-&lt;br /&gt;
| Rose/r1p0/ftab.bin&lt;br /&gt;
| Rose (TouchID) sensor&lt;br /&gt;
|-&lt;br /&gt;
| vinyl_05.vnlfw&lt;br /&gt;
| eSIM&lt;br /&gt;
|-&lt;br /&gt;
| Veridian&lt;br /&gt;
| ? (Some form of signing/device integrity)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
# IPSW files have been used since the very first iPod, though they have [http://www.freemyipod.org/wiki/Firmware a different format] than firmwares for iOS devices.&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=IPSW_File_Format&amp;diff=107054</id>
		<title>IPSW File Format</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=IPSW_File_Format&amp;diff=107054"/>
		<updated>2020-09-16T23:56:53Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: /* Firmwares found in IPSW */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{redirect|IPSW|the component of XPwn|ipsw}}&lt;br /&gt;
{{see also|Disk Image Formats}}&lt;br /&gt;
'''IPSW''' ('''iP'''od&amp;lt;sup&amp;gt;[[#Notes|[1]&amp;lt;nowiki/&amp;gt;]]&amp;lt;/sup&amp;gt; '''S'''oft'''w'''are) files have the Magic Number 504B0304 (PK\003\004) and thus are [[wikipedia:ZIP (file format)|ZIP]] archives. They can be modified with typical zip/unzip tools (i.e. change extension to .zip and double click). IPSWs are used to deliver the [[iDevice|device's]] firmware to the end-user.&lt;br /&gt;
&lt;br /&gt;
== Archive Structure ==&lt;br /&gt;
* [[Restore Ramdisk]]&lt;br /&gt;
* [[Update Ramdisk]] (some firmwares don't have one due to various reasons)&lt;br /&gt;
* [[:/|Filesystem Ramdisk]] (the largest [[Apple Disk Image|.dmg]] file)&lt;br /&gt;
* [[Device Tree]] (model specific)&lt;br /&gt;
* [[Kernelcache]] (model specific; processor specific on pre-[[S5L8930|A4]])&lt;br /&gt;
* BuildManifest.plist (first appeared in [[iOS|iPhone OS]] 3.0 beta 2)&lt;br /&gt;
* Restore.plist&lt;br /&gt;
* ''Firmware/''&lt;br /&gt;
** ''all_flash/''&lt;br /&gt;
*** ''all_flash.XXXXX.production/'' (model specific i.e. [[M68AP]], [[N82AP]], etc.)&lt;br /&gt;
**** [[S5L File Formats#IMG2|IMG2]]/[[IMG3 File Format|IMG3]] files&lt;br /&gt;
**** manifest&lt;br /&gt;
** dfu/''&lt;br /&gt;
*** [[iBEC]].XXXXX.dfu (model specific i.e. [[M68AP]], [[N82AP]], etc.)&lt;br /&gt;
*** [[iBSS]].XXXXX.dfu&lt;br /&gt;
*** [[WTF]].XXXXX.dfu (model specific and only for [[M68AP]], [[N82AP]], [[N45AP]], [[N72AP]]; not present in firmwares for the [[N88AP|iPhone 3GS]] and later, because it was used to patch issues with the DFU mode that was burned into the bootrom)&lt;br /&gt;
** [[Baseband Device|Baseband]] (may be one or many files depending on the model)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
Here are the contents of the [[Kirkwood 7A341 (iPhone2,1)|iPhone 3GS 3.0 (7A341)]] firmware IPSW:&lt;br /&gt;
* &amp;lt;code&amp;gt;[[:/|018-5302-002.dmg]]&amp;lt;/code&amp;gt; (281214976 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;[[Update Ramdisk|018-5304-002.dmg]]&amp;lt;/code&amp;gt; (12769604 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;[[Restore Ramdisk|018-5306-002.dmg]]&amp;lt;/code&amp;gt; (12777796 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;!--[[#BuildManifest.plist|--&amp;gt;BuildManifest.plist&amp;lt;!--]]--&amp;gt;&amp;lt;/code&amp;gt; (21097 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;[[kernelcache]].release.s5l8920x&amp;lt;/code&amp;gt; (4695492 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;!--[[#Restore.plist|--&amp;gt;Restore.plist&amp;lt;!--]]--&amp;gt;&amp;lt;/code&amp;gt; (1763 bytes)&lt;br /&gt;
* ''&amp;lt;code&amp;gt;Firmware/&amp;lt;/code&amp;gt;''&lt;br /&gt;
** ''&amp;lt;code&amp;gt;all_flash/&amp;lt;/code&amp;gt;''&lt;br /&gt;
*** ''&amp;lt;code&amp;gt;all_flash.n88ap.production/&amp;lt;/code&amp;gt;''&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[AppleLogo|applelogo]].s5l8920x.img3&amp;lt;/code&amp;gt; (9604 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryCharging0|batterycharging0]].s5l8920x.img3&amp;lt;/code&amp;gt; (19716 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryCharging1|batterycharging1]].s5l8920x.img3&amp;lt;/code&amp;gt; (24900 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryFull|batteryfull]].s5l8920x.img3&amp;lt;/code&amp;gt; (76100 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryLow0|batterylow0]].s5l8920x.img3&amp;lt;/code&amp;gt; (56772 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryLow1|batterylow1]].s5l8920x.img3&amp;lt;/code&amp;gt; (65348 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[DeviceTree]].n88ap.img3&amp;lt;/code&amp;gt; (44996 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[GlyphCharging|glyphcharging]].s5l8920x.img3&amp;lt;/code&amp;gt; (20356 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[GlyphPlugin|glyphplugin]].s5l8920x.img3&amp;lt;/code&amp;gt; (19332 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[iBoot (Bootloader)|iBoot]].n88ap.RELEASE.img3&amp;lt;/code&amp;gt; (178500 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[LLB]].n88ap.RELEASE.img3&amp;lt;/code&amp;gt; (67908 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;manifest&amp;lt;/code&amp;gt; (341 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[NeedService|needservice]].s5l8920x.img3&amp;lt;/code&amp;gt; (20484 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[RecoveryMode|recoverymode]].s5l8920x.img3&amp;lt;/code&amp;gt; (47876 bytes)&lt;br /&gt;
** ''&amp;lt;code&amp;gt;dfu/&amp;lt;/code&amp;gt;''&lt;br /&gt;
*** &amp;lt;code&amp;gt;[[iBEC]].n88ap.RELEASE.dfu&amp;lt;/code&amp;gt; (104772 bytes)&lt;br /&gt;
*** &amp;lt;code&amp;gt;[[iBSS]].n88ap.RELEASE.dfu&amp;lt;/code&amp;gt; (104772 bytes)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmwares found in IPSW ==&lt;br /&gt;
Per http://newosxbook.com/bonus/vol1AppA.html&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Filename&lt;br /&gt;
! Use&lt;br /&gt;
|-&lt;br /&gt;
| ICE17-1.xx.xx.Release.bbfw&lt;br /&gt;
| Intel modem / baseband&lt;br /&gt;
|-&lt;br /&gt;
| Mav17-1.xx.xx.Release.bbfw&lt;br /&gt;
| Maverick modem / baseband&lt;br /&gt;
|-&lt;br /&gt;
| AOP/aopfw-iphone##aop.im4p&lt;br /&gt;
| Always on processor&lt;br /&gt;
|-&lt;br /&gt;
| Savage/Savage.B[0/2]-[Dev/Prod].[vt.]fw&lt;br /&gt;
| FaceID&lt;br /&gt;
|-&lt;br /&gt;
| Yonkers/Yonkers.EA01_F###_[Dev/Prod]fw&lt;br /&gt;
| FaceID&lt;br /&gt;
|-&lt;br /&gt;
| SE/Stockholm##.RELEASE.sefw&lt;br /&gt;
| Secure Element&lt;br /&gt;
|-&lt;br /&gt;
| Maggie/AppleMaggieFirmwareImage.im4p&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| cpu_Multitouch.im4p&lt;br /&gt;
| Multitouch controller&lt;br /&gt;
|-&lt;br /&gt;
| isp/adc-petra-d3x.im4p&lt;br /&gt;
| Image Signal Processor&lt;br /&gt;
|-&lt;br /&gt;
| ane/h11_ane_fw_quin.im4p&lt;br /&gt;
| [[Apple Neural Engine]]&lt;br /&gt;
|-&lt;br /&gt;
| WirelessPower/WirelessPower.iphone##.im4p&lt;br /&gt;
| Wireless charging controller&lt;br /&gt;
|-&lt;br /&gt;
| SmartIOFirmwareCHIP.im4p&lt;br /&gt;
| [[T8020]] and later Smart I/O&lt;br /&gt;
|-&lt;br /&gt;
| board_CallanFirmware.im4p&lt;br /&gt;
| Haptics Firmware&lt;br /&gt;
|-&lt;br /&gt;
| ave/AppleAVE2FW.im4p&lt;br /&gt;
| Audio/Video Encoder&lt;br /&gt;
|-&lt;br /&gt;
| agx/armfw_g11p.im4p&lt;br /&gt;
| GPU Scheduler/Command Stream Processor&lt;br /&gt;
|-&lt;br /&gt;
| all_flash/sep-firmware.*.im4p&lt;br /&gt;
| Secure Enclave Processor&lt;br /&gt;
|-&lt;br /&gt;
| liquiddetect@2436~iphone-lightning.im4p&lt;br /&gt;
| Liquid Damage Detection&lt;br /&gt;
|-&lt;br /&gt;
| pmp/t8030pmp.im4p&lt;br /&gt;
| Power Management Processor&lt;br /&gt;
|-&lt;br /&gt;
| Rose/r1p0/ftab.bin&lt;br /&gt;
| Rose (TouchID) sensor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
# IPSW files have been used since the very first iPod, though they have [http://www.freemyipod.org/wiki/Firmware a different format] than firmwares for iOS devices.&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=IPSW_File_Format&amp;diff=106953</id>
		<title>IPSW File Format</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=IPSW_File_Format&amp;diff=106953"/>
		<updated>2020-09-16T00:34:47Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: /* Firmwares found in IPSW */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{redirect|IPSW|the component of XPwn|ipsw}}&lt;br /&gt;
{{see also|Disk Image Formats}}&lt;br /&gt;
'''IPSW''' ('''iP'''od&amp;lt;sup&amp;gt;[[#Notes|[1]&amp;lt;nowiki/&amp;gt;]]&amp;lt;/sup&amp;gt; '''S'''oft'''w'''are) files have the Magic Number 504B0304 (PK\003\004) and thus are [[wikipedia:ZIP (file format)|ZIP]] archives. They can be modified with typical zip/unzip tools (i.e. change extension to .zip and double click). IPSWs are used to deliver the [[iDevice|device's]] firmware to the end-user.&lt;br /&gt;
&lt;br /&gt;
== Archive Structure ==&lt;br /&gt;
* [[Restore Ramdisk]]&lt;br /&gt;
* [[Update Ramdisk]] (some firmwares don't have one due to various reasons)&lt;br /&gt;
* [[:/|Filesystem Ramdisk]] (the largest [[Apple Disk Image|.dmg]] file)&lt;br /&gt;
* [[Device Tree]] (model specific)&lt;br /&gt;
* [[Kernelcache]] (model specific; processor specific on pre-[[S5L8930|A4]])&lt;br /&gt;
* BuildManifest.plist (first appeared in [[iOS|iPhone OS]] 3.0 beta 2)&lt;br /&gt;
* Restore.plist&lt;br /&gt;
* ''Firmware/''&lt;br /&gt;
** ''all_flash/''&lt;br /&gt;
*** ''all_flash.XXXXX.production/'' (model specific i.e. [[M68AP]], [[N82AP]], etc.)&lt;br /&gt;
**** [[S5L File Formats#IMG2|IMG2]]/[[IMG3 File Format|IMG3]] files&lt;br /&gt;
**** manifest&lt;br /&gt;
** dfu/''&lt;br /&gt;
*** [[iBEC]].XXXXX.dfu (model specific i.e. [[M68AP]], [[N82AP]], etc.)&lt;br /&gt;
*** [[iBSS]].XXXXX.dfu&lt;br /&gt;
*** [[WTF]].XXXXX.dfu (model specific and only for [[M68AP]], [[N82AP]], [[N45AP]], [[N72AP]]; not present in firmwares for the [[N88AP|iPhone 3GS]] and later, because it was used to patch issues with the DFU mode that was burned into the bootrom)&lt;br /&gt;
** [[Baseband Device|Baseband]] (may be one or many files depending on the model)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
Here are the contents of the [[Kirkwood 7A341 (iPhone2,1)|iPhone 3GS 3.0 (7A341)]] firmware IPSW:&lt;br /&gt;
* &amp;lt;code&amp;gt;[[:/|018-5302-002.dmg]]&amp;lt;/code&amp;gt; (281214976 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;[[Update Ramdisk|018-5304-002.dmg]]&amp;lt;/code&amp;gt; (12769604 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;[[Restore Ramdisk|018-5306-002.dmg]]&amp;lt;/code&amp;gt; (12777796 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;!--[[#BuildManifest.plist|--&amp;gt;BuildManifest.plist&amp;lt;!--]]--&amp;gt;&amp;lt;/code&amp;gt; (21097 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;[[kernelcache]].release.s5l8920x&amp;lt;/code&amp;gt; (4695492 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;!--[[#Restore.plist|--&amp;gt;Restore.plist&amp;lt;!--]]--&amp;gt;&amp;lt;/code&amp;gt; (1763 bytes)&lt;br /&gt;
* ''&amp;lt;code&amp;gt;Firmware/&amp;lt;/code&amp;gt;''&lt;br /&gt;
** ''&amp;lt;code&amp;gt;all_flash/&amp;lt;/code&amp;gt;''&lt;br /&gt;
*** ''&amp;lt;code&amp;gt;all_flash.n88ap.production/&amp;lt;/code&amp;gt;''&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[AppleLogo|applelogo]].s5l8920x.img3&amp;lt;/code&amp;gt; (9604 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryCharging0|batterycharging0]].s5l8920x.img3&amp;lt;/code&amp;gt; (19716 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryCharging1|batterycharging1]].s5l8920x.img3&amp;lt;/code&amp;gt; (24900 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryFull|batteryfull]].s5l8920x.img3&amp;lt;/code&amp;gt; (76100 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryLow0|batterylow0]].s5l8920x.img3&amp;lt;/code&amp;gt; (56772 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryLow1|batterylow1]].s5l8920x.img3&amp;lt;/code&amp;gt; (65348 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[DeviceTree]].n88ap.img3&amp;lt;/code&amp;gt; (44996 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[GlyphCharging|glyphcharging]].s5l8920x.img3&amp;lt;/code&amp;gt; (20356 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[GlyphPlugin|glyphplugin]].s5l8920x.img3&amp;lt;/code&amp;gt; (19332 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[iBoot (Bootloader)|iBoot]].n88ap.RELEASE.img3&amp;lt;/code&amp;gt; (178500 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[LLB]].n88ap.RELEASE.img3&amp;lt;/code&amp;gt; (67908 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;manifest&amp;lt;/code&amp;gt; (341 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[NeedService|needservice]].s5l8920x.img3&amp;lt;/code&amp;gt; (20484 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[RecoveryMode|recoverymode]].s5l8920x.img3&amp;lt;/code&amp;gt; (47876 bytes)&lt;br /&gt;
** ''&amp;lt;code&amp;gt;dfu/&amp;lt;/code&amp;gt;''&lt;br /&gt;
*** &amp;lt;code&amp;gt;[[iBEC]].n88ap.RELEASE.dfu&amp;lt;/code&amp;gt; (104772 bytes)&lt;br /&gt;
*** &amp;lt;code&amp;gt;[[iBSS]].n88ap.RELEASE.dfu&amp;lt;/code&amp;gt; (104772 bytes)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmwares found in IPSW ==&lt;br /&gt;
Per http://newosxbook.com/bonus/vol1AppA.html&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Filename&lt;br /&gt;
! Use&lt;br /&gt;
|-&lt;br /&gt;
| ICE17-1.xx.xx.Release.bbfw&lt;br /&gt;
| Intel modem / baseband&lt;br /&gt;
|-&lt;br /&gt;
| Mav17-1.xx.xx.Release.bbfw&lt;br /&gt;
| Maverick modem / baseband&lt;br /&gt;
|-&lt;br /&gt;
| AOP/aopfw-iphone##aop.im4p&lt;br /&gt;
| Always on processor&lt;br /&gt;
|-&lt;br /&gt;
| Savage/Savage.B[0/2]-[Dev/Prod].[vt.]fw&lt;br /&gt;
| FaceID&lt;br /&gt;
|-&lt;br /&gt;
| Yonkers/Yonkers.EA01_F###_[Dev/Prod]fw&lt;br /&gt;
| FaceID&lt;br /&gt;
|-&lt;br /&gt;
| SE/Stockholm##.RELEASE.sefw&lt;br /&gt;
| Secure Element&lt;br /&gt;
|-&lt;br /&gt;
| Maggie/AppleMaggieFirmwareImage.im4p&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| cpu_Multitouch.im4p&lt;br /&gt;
| Multitouch controller&lt;br /&gt;
|-&lt;br /&gt;
| isp/adc-petra-d3x.im4p&lt;br /&gt;
| Image Signal Processor&lt;br /&gt;
|-&lt;br /&gt;
| ane/h11_ane_fw_quin.im4p&lt;br /&gt;
| [[Apple Neural Engine]]&lt;br /&gt;
|-&lt;br /&gt;
| WirelessPower/WirelessPower.iphone##.im4p&lt;br /&gt;
| Wireless charging controller&lt;br /&gt;
|-&lt;br /&gt;
| SmartIOFirmwareCHIP.im4p&lt;br /&gt;
| [[T8020]] and later Smart I/O&lt;br /&gt;
|-&lt;br /&gt;
| board_CallanFirmware.im4p&lt;br /&gt;
| Haptics Firmware&lt;br /&gt;
|-&lt;br /&gt;
| ave/AppleAVE2FW.im4p&lt;br /&gt;
| Audio/Video Encoder&lt;br /&gt;
|-&lt;br /&gt;
| agx/armfw_g11p.im4p&lt;br /&gt;
| GPU Scheduler/Command Stream Processor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
# IPSW files have been used since the very first iPod, though they have [http://www.freemyipod.org/wiki/Firmware a different format] than firmwares for iOS devices.&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=IPSW_File_Format&amp;diff=106952</id>
		<title>IPSW File Format</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=IPSW_File_Format&amp;diff=106952"/>
		<updated>2020-09-16T00:34:26Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{redirect|IPSW|the component of XPwn|ipsw}}&lt;br /&gt;
{{see also|Disk Image Formats}}&lt;br /&gt;
'''IPSW''' ('''iP'''od&amp;lt;sup&amp;gt;[[#Notes|[1]&amp;lt;nowiki/&amp;gt;]]&amp;lt;/sup&amp;gt; '''S'''oft'''w'''are) files have the Magic Number 504B0304 (PK\003\004) and thus are [[wikipedia:ZIP (file format)|ZIP]] archives. They can be modified with typical zip/unzip tools (i.e. change extension to .zip and double click). IPSWs are used to deliver the [[iDevice|device's]] firmware to the end-user.&lt;br /&gt;
&lt;br /&gt;
== Archive Structure ==&lt;br /&gt;
* [[Restore Ramdisk]]&lt;br /&gt;
* [[Update Ramdisk]] (some firmwares don't have one due to various reasons)&lt;br /&gt;
* [[:/|Filesystem Ramdisk]] (the largest [[Apple Disk Image|.dmg]] file)&lt;br /&gt;
* [[Device Tree]] (model specific)&lt;br /&gt;
* [[Kernelcache]] (model specific; processor specific on pre-[[S5L8930|A4]])&lt;br /&gt;
* BuildManifest.plist (first appeared in [[iOS|iPhone OS]] 3.0 beta 2)&lt;br /&gt;
* Restore.plist&lt;br /&gt;
* ''Firmware/''&lt;br /&gt;
** ''all_flash/''&lt;br /&gt;
*** ''all_flash.XXXXX.production/'' (model specific i.e. [[M68AP]], [[N82AP]], etc.)&lt;br /&gt;
**** [[S5L File Formats#IMG2|IMG2]]/[[IMG3 File Format|IMG3]] files&lt;br /&gt;
**** manifest&lt;br /&gt;
** dfu/''&lt;br /&gt;
*** [[iBEC]].XXXXX.dfu (model specific i.e. [[M68AP]], [[N82AP]], etc.)&lt;br /&gt;
*** [[iBSS]].XXXXX.dfu&lt;br /&gt;
*** [[WTF]].XXXXX.dfu (model specific and only for [[M68AP]], [[N82AP]], [[N45AP]], [[N72AP]]; not present in firmwares for the [[N88AP|iPhone 3GS]] and later, because it was used to patch issues with the DFU mode that was burned into the bootrom)&lt;br /&gt;
** [[Baseband Device|Baseband]] (may be one or many files depending on the model)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
Here are the contents of the [[Kirkwood 7A341 (iPhone2,1)|iPhone 3GS 3.0 (7A341)]] firmware IPSW:&lt;br /&gt;
* &amp;lt;code&amp;gt;[[:/|018-5302-002.dmg]]&amp;lt;/code&amp;gt; (281214976 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;[[Update Ramdisk|018-5304-002.dmg]]&amp;lt;/code&amp;gt; (12769604 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;[[Restore Ramdisk|018-5306-002.dmg]]&amp;lt;/code&amp;gt; (12777796 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;!--[[#BuildManifest.plist|--&amp;gt;BuildManifest.plist&amp;lt;!--]]--&amp;gt;&amp;lt;/code&amp;gt; (21097 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;[[kernelcache]].release.s5l8920x&amp;lt;/code&amp;gt; (4695492 bytes)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;!--[[#Restore.plist|--&amp;gt;Restore.plist&amp;lt;!--]]--&amp;gt;&amp;lt;/code&amp;gt; (1763 bytes)&lt;br /&gt;
* ''&amp;lt;code&amp;gt;Firmware/&amp;lt;/code&amp;gt;''&lt;br /&gt;
** ''&amp;lt;code&amp;gt;all_flash/&amp;lt;/code&amp;gt;''&lt;br /&gt;
*** ''&amp;lt;code&amp;gt;all_flash.n88ap.production/&amp;lt;/code&amp;gt;''&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[AppleLogo|applelogo]].s5l8920x.img3&amp;lt;/code&amp;gt; (9604 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryCharging0|batterycharging0]].s5l8920x.img3&amp;lt;/code&amp;gt; (19716 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryCharging1|batterycharging1]].s5l8920x.img3&amp;lt;/code&amp;gt; (24900 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryFull|batteryfull]].s5l8920x.img3&amp;lt;/code&amp;gt; (76100 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryLow0|batterylow0]].s5l8920x.img3&amp;lt;/code&amp;gt; (56772 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[BatteryLow1|batterylow1]].s5l8920x.img3&amp;lt;/code&amp;gt; (65348 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[DeviceTree]].n88ap.img3&amp;lt;/code&amp;gt; (44996 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[GlyphCharging|glyphcharging]].s5l8920x.img3&amp;lt;/code&amp;gt; (20356 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[GlyphPlugin|glyphplugin]].s5l8920x.img3&amp;lt;/code&amp;gt; (19332 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[iBoot (Bootloader)|iBoot]].n88ap.RELEASE.img3&amp;lt;/code&amp;gt; (178500 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[LLB]].n88ap.RELEASE.img3&amp;lt;/code&amp;gt; (67908 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;manifest&amp;lt;/code&amp;gt; (341 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[NeedService|needservice]].s5l8920x.img3&amp;lt;/code&amp;gt; (20484 bytes)&lt;br /&gt;
**** &amp;lt;code&amp;gt;[[RecoveryMode|recoverymode]].s5l8920x.img3&amp;lt;/code&amp;gt; (47876 bytes)&lt;br /&gt;
** ''&amp;lt;code&amp;gt;dfu/&amp;lt;/code&amp;gt;''&lt;br /&gt;
*** &amp;lt;code&amp;gt;[[iBEC]].n88ap.RELEASE.dfu&amp;lt;/code&amp;gt; (104772 bytes)&lt;br /&gt;
*** &amp;lt;code&amp;gt;[[iBSS]].n88ap.RELEASE.dfu&amp;lt;/code&amp;gt; (104772 bytes)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmwares found in IPSW ==&lt;br /&gt;
Per http://newosxbook.com/bonus/vol1AppA.html&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Filename&lt;br /&gt;
! Use&lt;br /&gt;
|-&lt;br /&gt;
| ICE17-1.xx.xx.Release.bbfw&lt;br /&gt;
| Intel modem / baseband&lt;br /&gt;
| -&lt;br /&gt;
| Mav17-1.xx.xx.Release.bbfw&lt;br /&gt;
| Maverick modem / baseband&lt;br /&gt;
|-&lt;br /&gt;
| AOP/aopfw-iphone##aop.im4p&lt;br /&gt;
| Always on processor&lt;br /&gt;
|-&lt;br /&gt;
| Savage/Savage.B[0/2]-[Dev/Prod].[vt.]fw&lt;br /&gt;
| FaceID&lt;br /&gt;
|-&lt;br /&gt;
| Yonkers/Yonkers.EA01_F###_[Dev/Prod]fw&lt;br /&gt;
| FaceID&lt;br /&gt;
|-&lt;br /&gt;
| SE/Stockholm##.RELEASE.sefw&lt;br /&gt;
| Secure Element&lt;br /&gt;
|-&lt;br /&gt;
| Maggie/AppleMaggieFirmwareImage.im4p&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| cpu_Multitouch.im4p&lt;br /&gt;
| Multitouch controller&lt;br /&gt;
|-&lt;br /&gt;
| isp/adc-petra-d3x.im4p&lt;br /&gt;
| Image Signal Processor&lt;br /&gt;
|-&lt;br /&gt;
| ane/h11_ane_fw_quin.im4p&lt;br /&gt;
| [[Apple Neural Engine]]&lt;br /&gt;
|-&lt;br /&gt;
| WirelessPower/WirelessPower.iphone##.im4p&lt;br /&gt;
| Wireless charging controller&lt;br /&gt;
|-&lt;br /&gt;
| SmartIOFirmwareCHIP.im4p&lt;br /&gt;
| [[T8020]] and later Smart I/O&lt;br /&gt;
|-&lt;br /&gt;
| board_CallanFirmware.im4p&lt;br /&gt;
| Haptics Firmware&lt;br /&gt;
|-&lt;br /&gt;
| ave/AppleAVE2FW.im4p&lt;br /&gt;
| Audio/Video Encoder&lt;br /&gt;
|-&lt;br /&gt;
| agx/armfw_g11p.im4p&lt;br /&gt;
| GPU Scheduler/Command Stream Processor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
# IPSW files have been used since the very first iPod, though they have [http://www.freemyipod.org/wiki/Firmware a different format] than firmwares for iOS devices.&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Savage&amp;diff=106951</id>
		<title>Savage</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Savage&amp;diff=106951"/>
		<updated>2020-09-16T00:22:42Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Redirected page to FaceID&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[FaceID]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Yonkers&amp;diff=106950</id>
		<title>Yonkers</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Yonkers&amp;diff=106950"/>
		<updated>2020-09-16T00:22:15Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Redirected page to FaceID&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[FaceID]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=ANE&amp;diff=106948</id>
		<title>ANE</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=ANE&amp;diff=106948"/>
		<updated>2020-09-16T00:21:38Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Redirected page to Apple Neural Engine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Apple Neural Engine]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Provisioning_Profiles&amp;diff=106683</id>
		<title>Provisioning Profiles</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Provisioning_Profiles&amp;diff=106683"/>
		<updated>2020-09-03T00:51:33Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Created page with &amp;quot;= Introduction =  Provisioning profiles allow for running apps with entitlements or signing certificates outside of the normal configuration of iOS.  == File Format ==  The `m...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Provisioning profiles allow for running apps with entitlements or signing certificates outside of the normal configuration of iOS.&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
&lt;br /&gt;
The `mobileprovision` file is a PKCS7 (CMS) signed payload of a plist.&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Tristar&amp;diff=106682</id>
		<title>Tristar</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Tristar&amp;diff=106682"/>
		<updated>2020-09-03T00:48:51Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Apple ASIC that multiplexes the Lightning port.  Superseded by [[Hydra]] in iPhone X and later&lt;br /&gt;
&lt;br /&gt;
http://ramtin-amin.fr/tristar.html&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Hydra&amp;diff=106681</id>
		<title>Hydra</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Hydra&amp;diff=106681"/>
		<updated>2020-09-03T00:48:41Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Created page with &amp;quot;= Introduction =  Successor to the Tristar&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Successor to the [[Tristar]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Tristar&amp;diff=106680</id>
		<title>Tristar</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Tristar&amp;diff=106680"/>
		<updated>2020-09-03T00:48:12Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Created page with &amp;quot;= Introduction =  Apple ASIC that multiplexes the Lightning port.  Superseded by Hydra in iPhone X and later&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Apple ASIC that multiplexes the Lightning port.  Superseded by [[Hydra]] in iPhone X and later&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=SecureBoot&amp;diff=106590</id>
		<title>SecureBoot</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=SecureBoot&amp;diff=106590"/>
		<updated>2020-08-29T00:36:34Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: /* = Verified Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
&lt;br /&gt;
With the advent of the [[T2]] [[macOS]] gained the ability to verify the integrity of the OS as it is booted.&lt;br /&gt;
&lt;br /&gt;
=== Verified Components ===&lt;br /&gt;
&lt;br /&gt;
* The T2 verifies MacEFI via [[img4]] and feeds it to the Intel CPU via eSPI&lt;br /&gt;
* MacEFI verifies the `boot.efi` component&lt;br /&gt;
** If in Full Security mode it requires a [[im4m]] manifest that is specific to the T2 [[ECID]]&lt;br /&gt;
** If in Medium Security mode it requires a [[im4m]] manifest that is specific to the T2 [[CPID]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=SecureBoot&amp;diff=106589</id>
		<title>SecureBoot</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=SecureBoot&amp;diff=106589"/>
		<updated>2020-08-29T00:36:26Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: Created page with &amp;quot;== Introduction ==   With the advent of the T2 macOS gained the ability to verify the integrity of the OS as it is booted.  === Verified Components ==  * The T2 verifi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
&lt;br /&gt;
With the advent of the [[T2]] [[macOS]] gained the ability to verify the integrity of the OS as it is booted.&lt;br /&gt;
&lt;br /&gt;
=== Verified Components ==&lt;br /&gt;
&lt;br /&gt;
* The T2 verifies MacEFI via [[img4]] and feeds it to the Intel CPU via eSPI&lt;br /&gt;
* MacEFI verifies the `boot.efi` component&lt;br /&gt;
** If in Full Security mode it requires a [[im4m]] manifest that is specific to the T2 [[ECID]]&lt;br /&gt;
** If in Medium Security mode it requires a [[im4m]] manifest that is specific to the T2 [[CPID]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=T8012&amp;diff=106588</id>
		<title>T8012</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=T8012&amp;diff=106588"/>
		<updated>2020-08-29T00:32:47Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: /* Bootrom Exploits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''T8012''', also just known as the '''T2''' is the CPU introduced in the [[J137AP|second-generation iBridge processor]], the processor found on the iMac Pro, and used on all subsequent T2 enabled Mac products.&lt;br /&gt;
&lt;br /&gt;
== Enabled Mac Products ==&lt;br /&gt;
&lt;br /&gt;
Devices sourced from [https://github.com/libimobiledevice/libirecovery/blob/master/src/libirecovery.c]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!iBridge Product ID&lt;br /&gt;
!Board ID&lt;br /&gt;
!Board Minor&lt;br /&gt;
!Description (Product ID)&lt;br /&gt;
!checkm8/blackbird confirmed&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,1&lt;br /&gt;
|J137AP&lt;br /&gt;
|0x0A&lt;br /&gt;
|Apple T2 iMacPro1,1 (j137)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,3&lt;br /&gt;
|J680AP&lt;br /&gt;
|0x0B&lt;br /&gt;
|Apple T2 MacBookPro15,1 (j680)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,4&lt;br /&gt;
|J132AP&lt;br /&gt;
|0x0C&lt;br /&gt;
|Apple T2 MacBookPro15,2 (j132)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,5&lt;br /&gt;
|J174AP&lt;br /&gt;
|0x0E&lt;br /&gt;
|Apple T2 Macmini8,1 (j174)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,6&lt;br /&gt;
|J160AP&lt;br /&gt;
|0x0F&lt;br /&gt;
|Apple T2 MacPro7,1 (j160)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,7&lt;br /&gt;
|J780AP&lt;br /&gt;
|0x07&lt;br /&gt;
|Apple T2 MacBookPro15,3 (j780)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,8&lt;br /&gt;
|J140kAP&lt;br /&gt;
|0x17&lt;br /&gt;
|Apple T2 MacBookAir8,1 (j140k)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,10&lt;br /&gt;
|J213AP&lt;br /&gt;
|0x18&lt;br /&gt;
|Apple T2 MacBookPro15,4 (j213)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,11&lt;br /&gt;
|J230AP&lt;br /&gt;
|0x1F&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,12&lt;br /&gt;
|J140aAP&lt;br /&gt;
|0x37&lt;br /&gt;
|Apple T2 MacBookAir8,2 (j140a)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,13&lt;br /&gt;
|J214AP&lt;br /&gt;
|0x1E&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,14&lt;br /&gt;
|J152fAP&lt;br /&gt;
|0x3A&lt;br /&gt;
|Apple T2 MacBookPro16,1 (j152f)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,15&lt;br /&gt;
|J230kAP&lt;br /&gt;
|0x3F&lt;br /&gt;
|Apple T2 MacBookAir9,1 (j223k)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,16&lt;br /&gt;
|J214kAP&lt;br /&gt;
|0x3E&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,19&lt;br /&gt;
|J185AP&lt;br /&gt;
|0x22&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,20&lt;br /&gt;
|J185fAP&lt;br /&gt;
|0x23&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,21&lt;br /&gt;
|J223AP&lt;br /&gt;
|0x3B&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,22&lt;br /&gt;
|J215AP&lt;br /&gt;
|0x38&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==T2 Recovery USB Device ID==&lt;br /&gt;
During the restore process, the T2 presents as a [[Restore Mode]] &amp;lt;code&amp;gt;com.apple.recoveryd&amp;lt;/code&amp;gt; service, but uses the USB product ID of &amp;lt;code&amp;gt;0x8086&amp;lt;/code&amp;gt; instead of the iPhone's &amp;lt;code&amp;gt;0x1290-0x12AF&amp;lt;/code&amp;gt;.[https://github.com/libimobiledevice/usbmuxd/blob/master/udev/39-usbmuxd.rules.in]&lt;br /&gt;
&lt;br /&gt;
==Bootrom Exploits==&lt;br /&gt;
The T8012 uses Bootrom version [[Bootrom_3401.0.0.1.16]] which is vulnerable to [[checkm8]].  A fork of [[checkm8]] with support for the t2 exists at [https://github.com/h0m3us3r/ipwndfu h0m3us3r].  The adaption of checkm8 was performed by the [[t8012 checkm8]] group by brute forcing the various locations from ROM.  The copyright string reads &amp;lt;code&amp;gt;SecureROM for t8012si, Copyright 2007-2016, Apple Inc&amp;lt;/code&amp;gt;, for version [[Bootrom_3401.0.0.1.16]].&lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/axi0mX/status/1182915286858522624 axi0mX T2 support tweet]&lt;br /&gt;
* [https://twitter.com/qwertyoruiopz/status/1237400943047704576?s=21 quertyoruiop's early checkra1n previews]&lt;br /&gt;
&lt;br /&gt;
Similar to iPhones, iPads, and iPods, iBridge firmware bundles come in IPSW form. Build train codenames are appended with &amp;quot;HWBridge&amp;quot; to distinguish them from normal firmwares, and the disk image files inside have labels that are appended with &amp;quot;UniversalBridgeOS.&amp;quot; They can only be restored to if the Mac is in [[DFU mode]].&lt;br /&gt;
&lt;br /&gt;
=== The T2 Secure Enclave Processor (SEP) ===&lt;br /&gt;
&lt;br /&gt;
The T2 is based on the A10 silicon design and therefore has a A10 SEP.  The A10 SEP is a ARM Cortex-A7 32bit CPU.  The T2 Secure Enclave is vulnerable to the same exploit Pangu presented at MOSEC named `blackbird`.&lt;br /&gt;
&lt;br /&gt;
The T2 SEP is responsible for acting as a secure store for symmetric secrets (tokens) as well as asymmetric credentials that can be generated and wrapped by the SEP.  The SEP plays a key role in disk encryption.&lt;br /&gt;
&lt;br /&gt;
== Entering DFU Mode ==&lt;br /&gt;
The T2 models can be restored via a Thunderbolt cable using [https://apps.apple.com/us/app/apple-configurator-2/id1037126344?mt=12 Apple Configurator 2].&lt;br /&gt;
&lt;br /&gt;
=== Desktop Macs ===&lt;br /&gt;
For example, iMac Pro and Mac mini models from 2018 or later.&amp;lt;ref&amp;gt;https://support.apple.com/en-us/guide/apple-configurator-2/apdebea5be51/mac&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Completely power off the Mac; disconnect it from external power.&lt;br /&gt;
# Attach one end of a Thunderbolt cable to the correct Thunderbolt port on the Mac.&lt;br /&gt;
#* iMac Pro: The Thunderbolt port that is located next to the Ethernet port.&lt;br /&gt;
#* Mac mini: The Thunderbolt port that is located next to the HDMI port.&lt;br /&gt;
# Connect the other end to any Thunderbolt or USB port on the host Mac (the device which will be used for restoring).&lt;br /&gt;
# Hold down the power button on the back of the Mac for 3 seconds, while connecting the power cord.&lt;br /&gt;
&lt;br /&gt;
=== Portable Macs ===&lt;br /&gt;
For example, MacBook models from 2018 or later.&amp;lt;ref&amp;gt;https://support.apple.com/en-us/guide/apple-configurator-2/apd0020c3dc2/mac&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Completely power off the Mac; disconnect it from external power.&lt;br /&gt;
# Attach one end of a Thunderbolt cable to the Thunderbolt port that is located on the left side, closest to the front.&lt;br /&gt;
# Connect the other end to any Thunderbolt or USB port on the host Mac (the device which will be used for restoring).&lt;br /&gt;
# Hold down the power button, right Shift key, and left Control and Option keys, for 3 seconds.&lt;br /&gt;
&lt;br /&gt;
=== Identifying the T2 from DFU ===&lt;br /&gt;
&lt;br /&gt;
Once a device is in DFU enumerating the USB device yields the BoardID.  Using either Linux's &amp;lt;code&amp;gt;lsusb -v&amp;lt;/code&amp;gt; or macOS's &amp;lt;code&amp;gt;ioreg -p IOUSB&amp;lt;/code&amp;gt; the USB serial attribute will contain the same information as any other Apple A core iBoot device.  (http://newosxbook.com/bonus/iBoot.pdf).  The ChipID will always be 8012.  The value for BDID is the BoardID.  Full decoding of the version string can be performed using the code at https://github.com/das-iboot/das-iboot/blob/master/das_iboot/device.py.  These values for BDID, CPID, CPRV and ECID are in Hex.&lt;br /&gt;
&lt;br /&gt;
=== Identifying the T2 from macOS ===&lt;br /&gt;
&lt;br /&gt;
This will provide many of the same values as DFU but in Decimal instead of Hex like above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# ECID in decimal instead of Hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge UniqueChipID&lt;br /&gt;
# Chip ID CPID in decimal (32786 == 0x8012)&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge ChipID&lt;br /&gt;
# Board Revision CPRV in decimal instead of hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge BoardRevision&lt;br /&gt;
# Board ID (BDID) in decimal instead of hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge BoardId&lt;br /&gt;
# Hardware Model is the name of the Board&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge HWModel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mac Configuration Utility ==&lt;br /&gt;
[[Image:MCUIcon.png|thumb|The Mac Configuration Utility icon.]]&lt;br /&gt;
&lt;br /&gt;
In order to restore a firmware to an iBridge device, technicians must use two Apple Internal tools. The first one, '''Apple Service Toolkit (AST)''', is used to initiate a diagnostic session between the host Mac and the Mac in DFU mode. The second tool, which must be installed on the host Mac, is known as the '''Mac Configuration Utility (MCU)'''. It communicates with AST to provide board information and initiate restores and diagnostics over-the-air. MCU supports macOS 10.13.2 or later.&lt;br /&gt;
&lt;br /&gt;
[[Image:MCU.png|thumb|The Mac Configuration Utility startup screen.]]&lt;br /&gt;
&lt;br /&gt;
iBridge devices can still be managed if there is no firmware present by booting a diagnostic image, which is pushed to the device by MCU after a '''Blank Board Serializer''' test is initiated on AST. This test will also assign a serial number to a new board.&lt;br /&gt;
&lt;br /&gt;
During a restore, an Apple logo and progress bar will show on the screen, similar to that of a normal device restore. It is unknown if iBridge firmwares are signed, or if they are verified by the host or by iBridge devices.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Processors]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=T8012&amp;diff=106587</id>
		<title>T8012</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=T8012&amp;diff=106587"/>
		<updated>2020-08-29T00:32:30Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: /* The T2 SEP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''T8012''', also just known as the '''T2''' is the CPU introduced in the [[J137AP|second-generation iBridge processor]], the processor found on the iMac Pro, and used on all subsequent T2 enabled Mac products.&lt;br /&gt;
&lt;br /&gt;
== Enabled Mac Products ==&lt;br /&gt;
&lt;br /&gt;
Devices sourced from [https://github.com/libimobiledevice/libirecovery/blob/master/src/libirecovery.c]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!iBridge Product ID&lt;br /&gt;
!Board ID&lt;br /&gt;
!Board Minor&lt;br /&gt;
!Description (Product ID)&lt;br /&gt;
!checkm8/blackbird confirmed&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,1&lt;br /&gt;
|J137AP&lt;br /&gt;
|0x0A&lt;br /&gt;
|Apple T2 iMacPro1,1 (j137)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,3&lt;br /&gt;
|J680AP&lt;br /&gt;
|0x0B&lt;br /&gt;
|Apple T2 MacBookPro15,1 (j680)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,4&lt;br /&gt;
|J132AP&lt;br /&gt;
|0x0C&lt;br /&gt;
|Apple T2 MacBookPro15,2 (j132)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,5&lt;br /&gt;
|J174AP&lt;br /&gt;
|0x0E&lt;br /&gt;
|Apple T2 Macmini8,1 (j174)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,6&lt;br /&gt;
|J160AP&lt;br /&gt;
|0x0F&lt;br /&gt;
|Apple T2 MacPro7,1 (j160)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,7&lt;br /&gt;
|J780AP&lt;br /&gt;
|0x07&lt;br /&gt;
|Apple T2 MacBookPro15,3 (j780)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,8&lt;br /&gt;
|J140kAP&lt;br /&gt;
|0x17&lt;br /&gt;
|Apple T2 MacBookAir8,1 (j140k)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,10&lt;br /&gt;
|J213AP&lt;br /&gt;
|0x18&lt;br /&gt;
|Apple T2 MacBookPro15,4 (j213)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,11&lt;br /&gt;
|J230AP&lt;br /&gt;
|0x1F&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,12&lt;br /&gt;
|J140aAP&lt;br /&gt;
|0x37&lt;br /&gt;
|Apple T2 MacBookAir8,2 (j140a)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,13&lt;br /&gt;
|J214AP&lt;br /&gt;
|0x1E&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,14&lt;br /&gt;
|J152fAP&lt;br /&gt;
|0x3A&lt;br /&gt;
|Apple T2 MacBookPro16,1 (j152f)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,15&lt;br /&gt;
|J230kAP&lt;br /&gt;
|0x3F&lt;br /&gt;
|Apple T2 MacBookAir9,1 (j223k)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,16&lt;br /&gt;
|J214kAP&lt;br /&gt;
|0x3E&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,19&lt;br /&gt;
|J185AP&lt;br /&gt;
|0x22&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,20&lt;br /&gt;
|J185fAP&lt;br /&gt;
|0x23&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,21&lt;br /&gt;
|J223AP&lt;br /&gt;
|0x3B&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,22&lt;br /&gt;
|J215AP&lt;br /&gt;
|0x38&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==T2 Recovery USB Device ID==&lt;br /&gt;
During the restore process, the T2 presents as a [[Restore Mode]] &amp;lt;code&amp;gt;com.apple.recoveryd&amp;lt;/code&amp;gt; service, but uses the USB product ID of &amp;lt;code&amp;gt;0x8086&amp;lt;/code&amp;gt; instead of the iPhone's &amp;lt;code&amp;gt;0x1290-0x12AF&amp;lt;/code&amp;gt;.[https://github.com/libimobiledevice/usbmuxd/blob/master/udev/39-usbmuxd.rules.in]&lt;br /&gt;
&lt;br /&gt;
==Bootrom Exploits==&lt;br /&gt;
The T8012 uses Bootrom version [[Bootrom_3401.0.0.1.16]] which is vulnerable to [[checkm8]].  A fork of [[checkm8]] with support for the t2 exists at [https://github.com/h0m3us3r/ipwndfu h0m3us3r].  The adaption of checkm8 was performed by the [[t8012 checkm8]] group by brute forcing the various locations from ROM.  The copyright string reads &amp;lt;code&amp;gt;SecureROM for t8012si, Copyright 2007-2016, Apple Inc&amp;lt;/code&amp;gt;, for version [[Bootrom_3401.0.0.1.16]].&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/axi0mX/status/1182915286858522624 axi0mX T2 support tweet]&lt;br /&gt;
[https://twitter.com/qwertyoruiopz/status/1237400943047704576?s=21 quertyoruiop's early checkra1n previews]&lt;br /&gt;
&lt;br /&gt;
Similar to iPhones, iPads, and iPods, iBridge firmware bundles come in IPSW form. Build train codenames are appended with &amp;quot;HWBridge&amp;quot; to distinguish them from normal firmwares, and the disk image files inside have labels that are appended with &amp;quot;UniversalBridgeOS.&amp;quot; They can only be restored to if the Mac is in [[DFU mode]].&lt;br /&gt;
&lt;br /&gt;
=== The T2 Secure Enclave Processor (SEP) ===&lt;br /&gt;
&lt;br /&gt;
The T2 is based on the A10 silicon design and therefore has a A10 SEP.  The A10 SEP is a ARM Cortex-A7 32bit CPU.  The T2 Secure Enclave is vulnerable to the same exploit Pangu presented at MOSEC named `blackbird`.&lt;br /&gt;
&lt;br /&gt;
The T2 SEP is responsible for acting as a secure store for symmetric secrets (tokens) as well as asymmetric credentials that can be generated and wrapped by the SEP.  The SEP plays a key role in disk encryption.&lt;br /&gt;
&lt;br /&gt;
== Entering DFU Mode ==&lt;br /&gt;
The T2 models can be restored via a Thunderbolt cable using [https://apps.apple.com/us/app/apple-configurator-2/id1037126344?mt=12 Apple Configurator 2].&lt;br /&gt;
&lt;br /&gt;
=== Desktop Macs ===&lt;br /&gt;
For example, iMac Pro and Mac mini models from 2018 or later.&amp;lt;ref&amp;gt;https://support.apple.com/en-us/guide/apple-configurator-2/apdebea5be51/mac&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Completely power off the Mac; disconnect it from external power.&lt;br /&gt;
# Attach one end of a Thunderbolt cable to the correct Thunderbolt port on the Mac.&lt;br /&gt;
#* iMac Pro: The Thunderbolt port that is located next to the Ethernet port.&lt;br /&gt;
#* Mac mini: The Thunderbolt port that is located next to the HDMI port.&lt;br /&gt;
# Connect the other end to any Thunderbolt or USB port on the host Mac (the device which will be used for restoring).&lt;br /&gt;
# Hold down the power button on the back of the Mac for 3 seconds, while connecting the power cord.&lt;br /&gt;
&lt;br /&gt;
=== Portable Macs ===&lt;br /&gt;
For example, MacBook models from 2018 or later.&amp;lt;ref&amp;gt;https://support.apple.com/en-us/guide/apple-configurator-2/apd0020c3dc2/mac&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Completely power off the Mac; disconnect it from external power.&lt;br /&gt;
# Attach one end of a Thunderbolt cable to the Thunderbolt port that is located on the left side, closest to the front.&lt;br /&gt;
# Connect the other end to any Thunderbolt or USB port on the host Mac (the device which will be used for restoring).&lt;br /&gt;
# Hold down the power button, right Shift key, and left Control and Option keys, for 3 seconds.&lt;br /&gt;
&lt;br /&gt;
=== Identifying the T2 from DFU ===&lt;br /&gt;
&lt;br /&gt;
Once a device is in DFU enumerating the USB device yields the BoardID.  Using either Linux's &amp;lt;code&amp;gt;lsusb -v&amp;lt;/code&amp;gt; or macOS's &amp;lt;code&amp;gt;ioreg -p IOUSB&amp;lt;/code&amp;gt; the USB serial attribute will contain the same information as any other Apple A core iBoot device.  (http://newosxbook.com/bonus/iBoot.pdf).  The ChipID will always be 8012.  The value for BDID is the BoardID.  Full decoding of the version string can be performed using the code at https://github.com/das-iboot/das-iboot/blob/master/das_iboot/device.py.  These values for BDID, CPID, CPRV and ECID are in Hex.&lt;br /&gt;
&lt;br /&gt;
=== Identifying the T2 from macOS ===&lt;br /&gt;
&lt;br /&gt;
This will provide many of the same values as DFU but in Decimal instead of Hex like above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# ECID in decimal instead of Hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge UniqueChipID&lt;br /&gt;
# Chip ID CPID in decimal (32786 == 0x8012)&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge ChipID&lt;br /&gt;
# Board Revision CPRV in decimal instead of hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge BoardRevision&lt;br /&gt;
# Board ID (BDID) in decimal instead of hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge BoardId&lt;br /&gt;
# Hardware Model is the name of the Board&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge HWModel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mac Configuration Utility ==&lt;br /&gt;
[[Image:MCUIcon.png|thumb|The Mac Configuration Utility icon.]]&lt;br /&gt;
&lt;br /&gt;
In order to restore a firmware to an iBridge device, technicians must use two Apple Internal tools. The first one, '''Apple Service Toolkit (AST)''', is used to initiate a diagnostic session between the host Mac and the Mac in DFU mode. The second tool, which must be installed on the host Mac, is known as the '''Mac Configuration Utility (MCU)'''. It communicates with AST to provide board information and initiate restores and diagnostics over-the-air. MCU supports macOS 10.13.2 or later.&lt;br /&gt;
&lt;br /&gt;
[[Image:MCU.png|thumb|The Mac Configuration Utility startup screen.]]&lt;br /&gt;
&lt;br /&gt;
iBridge devices can still be managed if there is no firmware present by booting a diagnostic image, which is pushed to the device by MCU after a '''Blank Board Serializer''' test is initiated on AST. This test will also assign a serial number to a new board.&lt;br /&gt;
&lt;br /&gt;
During a restore, an Apple logo and progress bar will show on the screen, similar to that of a normal device restore. It is unknown if iBridge firmwares are signed, or if they are verified by the host or by iBridge devices.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Processors]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=T8012&amp;diff=106586</id>
		<title>T8012</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=T8012&amp;diff=106586"/>
		<updated>2020-08-29T00:31:21Z</updated>

		<summary type="html">&lt;p&gt;Rickmark: /* The T2 SEP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''T8012''', also just known as the '''T2''' is the CPU introduced in the [[J137AP|second-generation iBridge processor]], the processor found on the iMac Pro, and used on all subsequent T2 enabled Mac products.&lt;br /&gt;
&lt;br /&gt;
== Enabled Mac Products ==&lt;br /&gt;
&lt;br /&gt;
Devices sourced from [https://github.com/libimobiledevice/libirecovery/blob/master/src/libirecovery.c]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!iBridge Product ID&lt;br /&gt;
!Board ID&lt;br /&gt;
!Board Minor&lt;br /&gt;
!Description (Product ID)&lt;br /&gt;
!checkm8/blackbird confirmed&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,1&lt;br /&gt;
|J137AP&lt;br /&gt;
|0x0A&lt;br /&gt;
|Apple T2 iMacPro1,1 (j137)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,3&lt;br /&gt;
|J680AP&lt;br /&gt;
|0x0B&lt;br /&gt;
|Apple T2 MacBookPro15,1 (j680)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,4&lt;br /&gt;
|J132AP&lt;br /&gt;
|0x0C&lt;br /&gt;
|Apple T2 MacBookPro15,2 (j132)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,5&lt;br /&gt;
|J174AP&lt;br /&gt;
|0x0E&lt;br /&gt;
|Apple T2 Macmini8,1 (j174)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,6&lt;br /&gt;
|J160AP&lt;br /&gt;
|0x0F&lt;br /&gt;
|Apple T2 MacPro7,1 (j160)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,7&lt;br /&gt;
|J780AP&lt;br /&gt;
|0x07&lt;br /&gt;
|Apple T2 MacBookPro15,3 (j780)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,8&lt;br /&gt;
|J140kAP&lt;br /&gt;
|0x17&lt;br /&gt;
|Apple T2 MacBookAir8,1 (j140k)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,10&lt;br /&gt;
|J213AP&lt;br /&gt;
|0x18&lt;br /&gt;
|Apple T2 MacBookPro15,4 (j213)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,11&lt;br /&gt;
|J230AP&lt;br /&gt;
|0x1F&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,12&lt;br /&gt;
|J140aAP&lt;br /&gt;
|0x37&lt;br /&gt;
|Apple T2 MacBookAir8,2 (j140a)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,13&lt;br /&gt;
|J214AP&lt;br /&gt;
|0x1E&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,14&lt;br /&gt;
|J152fAP&lt;br /&gt;
|0x3A&lt;br /&gt;
|Apple T2 MacBookPro16,1 (j152f)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,15&lt;br /&gt;
|J230kAP&lt;br /&gt;
|0x3F&lt;br /&gt;
|Apple T2 MacBookAir9,1 (j223k)&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,16&lt;br /&gt;
|J214kAP&lt;br /&gt;
|0x3E&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,19&lt;br /&gt;
|J185AP&lt;br /&gt;
|0x22&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,20&lt;br /&gt;
|J185fAP&lt;br /&gt;
|0x23&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,21&lt;br /&gt;
|J223AP&lt;br /&gt;
|0x3B&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|iBridge2,22&lt;br /&gt;
|J215AP&lt;br /&gt;
|0x38&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==T2 Recovery USB Device ID==&lt;br /&gt;
During the restore process, the T2 presents as a [[Restore Mode]] &amp;lt;code&amp;gt;com.apple.recoveryd&amp;lt;/code&amp;gt; service, but uses the USB product ID of &amp;lt;code&amp;gt;0x8086&amp;lt;/code&amp;gt; instead of the iPhone's &amp;lt;code&amp;gt;0x1290-0x12AF&amp;lt;/code&amp;gt;.[https://github.com/libimobiledevice/usbmuxd/blob/master/udev/39-usbmuxd.rules.in]&lt;br /&gt;
&lt;br /&gt;
==Bootrom Exploits==&lt;br /&gt;
The T8012 uses Bootrom version [[Bootrom_3401.0.0.1.16]] which is vulnerable to [[checkm8]].  A fork of [[checkm8]] with support for the t2 exists at [https://github.com/h0m3us3r/ipwndfu h0m3us3r].  The adaption of checkm8 was performed by the [[t8012 checkm8]] group by brute forcing the various locations from ROM.  The copyright string reads &amp;lt;code&amp;gt;SecureROM for t8012si, Copyright 2007-2016, Apple Inc&amp;lt;/code&amp;gt;, for version [[Bootrom_3401.0.0.1.16]].&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/axi0mX/status/1182915286858522624 axi0mX T2 support tweet]&lt;br /&gt;
[https://twitter.com/qwertyoruiopz/status/1237400943047704576?s=21 quertyoruiop's early checkra1n previews]&lt;br /&gt;
&lt;br /&gt;
Similar to iPhones, iPads, and iPods, iBridge firmware bundles come in IPSW form. Build train codenames are appended with &amp;quot;HWBridge&amp;quot; to distinguish them from normal firmwares, and the disk image files inside have labels that are appended with &amp;quot;UniversalBridgeOS.&amp;quot; They can only be restored to if the Mac is in [[DFU mode]].&lt;br /&gt;
&lt;br /&gt;
=== The T2 SEP ===&lt;br /&gt;
&lt;br /&gt;
The T2 is based on the A10 silicon design and therefore has a A10 SEP.  The A10 SEP is a ARM Cortex-A7 32bit CPU.  The T2 Secure Enclave is vulnerable to the same exploit Pangu presented at MOSEC named `blackbird`.&lt;br /&gt;
&lt;br /&gt;
== Entering DFU Mode ==&lt;br /&gt;
The T2 models can be restored via a Thunderbolt cable using [https://apps.apple.com/us/app/apple-configurator-2/id1037126344?mt=12 Apple Configurator 2].&lt;br /&gt;
&lt;br /&gt;
=== Desktop Macs ===&lt;br /&gt;
For example, iMac Pro and Mac mini models from 2018 or later.&amp;lt;ref&amp;gt;https://support.apple.com/en-us/guide/apple-configurator-2/apdebea5be51/mac&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Completely power off the Mac; disconnect it from external power.&lt;br /&gt;
# Attach one end of a Thunderbolt cable to the correct Thunderbolt port on the Mac.&lt;br /&gt;
#* iMac Pro: The Thunderbolt port that is located next to the Ethernet port.&lt;br /&gt;
#* Mac mini: The Thunderbolt port that is located next to the HDMI port.&lt;br /&gt;
# Connect the other end to any Thunderbolt or USB port on the host Mac (the device which will be used for restoring).&lt;br /&gt;
# Hold down the power button on the back of the Mac for 3 seconds, while connecting the power cord.&lt;br /&gt;
&lt;br /&gt;
=== Portable Macs ===&lt;br /&gt;
For example, MacBook models from 2018 or later.&amp;lt;ref&amp;gt;https://support.apple.com/en-us/guide/apple-configurator-2/apd0020c3dc2/mac&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Completely power off the Mac; disconnect it from external power.&lt;br /&gt;
# Attach one end of a Thunderbolt cable to the Thunderbolt port that is located on the left side, closest to the front.&lt;br /&gt;
# Connect the other end to any Thunderbolt or USB port on the host Mac (the device which will be used for restoring).&lt;br /&gt;
# Hold down the power button, right Shift key, and left Control and Option keys, for 3 seconds.&lt;br /&gt;
&lt;br /&gt;
=== Identifying the T2 from DFU ===&lt;br /&gt;
&lt;br /&gt;
Once a device is in DFU enumerating the USB device yields the BoardID.  Using either Linux's &amp;lt;code&amp;gt;lsusb -v&amp;lt;/code&amp;gt; or macOS's &amp;lt;code&amp;gt;ioreg -p IOUSB&amp;lt;/code&amp;gt; the USB serial attribute will contain the same information as any other Apple A core iBoot device.  (http://newosxbook.com/bonus/iBoot.pdf).  The ChipID will always be 8012.  The value for BDID is the BoardID.  Full decoding of the version string can be performed using the code at https://github.com/das-iboot/das-iboot/blob/master/das_iboot/device.py.  These values for BDID, CPID, CPRV and ECID are in Hex.&lt;br /&gt;
&lt;br /&gt;
=== Identifying the T2 from macOS ===&lt;br /&gt;
&lt;br /&gt;
This will provide many of the same values as DFU but in Decimal instead of Hex like above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# ECID in decimal instead of Hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge UniqueChipID&lt;br /&gt;
# Chip ID CPID in decimal (32786 == 0x8012)&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge ChipID&lt;br /&gt;
# Board Revision CPRV in decimal instead of hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge BoardRevision&lt;br /&gt;
# Board ID (BDID) in decimal instead of hex&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge BoardId&lt;br /&gt;
# Hardware Model is the name of the Board&lt;br /&gt;
/usr/libexec/remotectl get-property localbridge HWModel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mac Configuration Utility ==&lt;br /&gt;
[[Image:MCUIcon.png|thumb|The Mac Configuration Utility icon.]]&lt;br /&gt;
&lt;br /&gt;
In order to restore a firmware to an iBridge device, technicians must use two Apple Internal tools. The first one, '''Apple Service Toolkit (AST)''', is used to initiate a diagnostic session between the host Mac and the Mac in DFU mode. The second tool, which must be installed on the host Mac, is known as the '''Mac Configuration Utility (MCU)'''. It communicates with AST to provide board information and initiate restores and diagnostics over-the-air. MCU supports macOS 10.13.2 or later.&lt;br /&gt;
&lt;br /&gt;
[[Image:MCU.png|thumb|The Mac Configuration Utility startup screen.]]&lt;br /&gt;
&lt;br /&gt;
iBridge devices can still be managed if there is no firmware present by booting a diagnostic image, which is pushed to the device by MCU after a '''Blank Board Serializer''' test is initiated on AST. This test will also assign a serial number to a new board.&lt;br /&gt;
&lt;br /&gt;
During a restore, an Apple logo and progress bar will show on the screen, similar to that of a normal device restore. It is unknown if iBridge firmwares are signed, or if they are verified by the host or by iBridge devices.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Processors]]&lt;/div&gt;</summary>
		<author><name>Rickmark</name></author>
		
	</entry>
</feed>