<?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=Redart</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=Redart"/>
	<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/wiki/Special:Contributions/Redart"/>
	<updated>2026-05-13T12:40:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Baseband_Device&amp;diff=18506</id>
		<title>Baseband Device</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Baseband_Device&amp;diff=18506"/>
		<updated>2011-06-09T11:53:13Z</updated>

		<summary type="html">&lt;p&gt;Redart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the device in the iPhone that manages all the functions which require an antenna. The baseband processor has its own RAM and firmware in NOR flash, separate from the [[ARM]] core resources. The baseband is a resource to the OS. The Wi-Fi and Bluetooth are managed by the main CPU, although the baseband stores their MAC addresses in its NVRAM.&lt;br /&gt;
&lt;br /&gt;
The [[M68ap|iPhone]]'s baseband processor is the [[S-Gold 2]]. The [[N82ap|iPhone 3G]], the [[N88ap|iPhone 3GS]] and the [[K48ap|iPad]] make use of the [[X-Gold 608]] chip for this purpose. The [[N90ap|iPhone 4 (GSM)]] and [[K94ap|iPad 2]] use the [[XMM 6180]], the [[N92ap|iPhone 4 (CDMA)]] uses the [[MDM6600]].&lt;br /&gt;
&lt;br /&gt;
You can check some [[Baseband Commands]].&lt;br /&gt;
&lt;br /&gt;
==[[Seczone]]==&lt;br /&gt;
This is the area in the baseband where the lock state is stored.&lt;br /&gt;
&lt;br /&gt;
===Layout===&lt;br /&gt;
 0x400--NCK token&lt;br /&gt;
 0xA00--IMEI signature&lt;br /&gt;
 0xB00--IMEI&lt;br /&gt;
 0xC00--Locks table&lt;br /&gt;
&lt;br /&gt;
===Encryption===&lt;br /&gt;
Many of the sections are encrypted using [[Baseband TEA Keys|TEA]] based off the [[CHIPID]] and [[NORID]]. See [[NCK Brute Force]] for more info.&lt;br /&gt;
&lt;br /&gt;
==Exploits==&lt;br /&gt;
* [[SIM hacks]]&lt;br /&gt;
&lt;br /&gt;
===[[S-Gold  2]]===&lt;br /&gt;
* [[Fakeblank]]&lt;br /&gt;
* [[IPSF]]&lt;br /&gt;
* [[Minus 0x400]]&lt;br /&gt;
* [[Minus 0x20000 with Back Extend Erase]]&lt;br /&gt;
&lt;br /&gt;
===[[X-Gold 608]]=== &lt;br /&gt;
* [[JerrySIM]]&lt;br /&gt;
* [[AT+stkprof]]&lt;br /&gt;
* [[AT+XLOG Vulnerability]]&lt;br /&gt;
* [[AT+XEMN Heap Overflow]]&lt;br /&gt;
* [[AT+XAPP Vulnerability]]&lt;br /&gt;
&lt;br /&gt;
===[[XMM 6180]]===&lt;br /&gt;
* [[AT+XAPP Vulnerability]]&lt;br /&gt;
&lt;br /&gt;
==Theoretical Attacks==&lt;br /&gt;
* [[NCK Brute Force]]&lt;br /&gt;
* [[Baseband JTAG]]&lt;br /&gt;
&lt;br /&gt;
==Boot Chain==&lt;br /&gt;
[[Baseband Bootrom|bootrom]]-&amp;gt;[[Baseband Bootloader|bootloader]]-&amp;gt;[[Baseband Firmware|firmware]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Baseband]]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Baseband_Device&amp;diff=18505</id>
		<title>Baseband Device</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Baseband_Device&amp;diff=18505"/>
		<updated>2011-06-09T11:52:55Z</updated>

		<summary type="html">&lt;p&gt;Redart: added ipad2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the device in the iPhone that manages all the functions which require an antenna. The baseband processor has its own RAM and firmware in NOR flash, separate from the [[ARM]] core resources. The baseband is a resource to the OS. The Wi-Fi and Bluetooth are managed by the main CPU, although the baseband stores their MAC addresses in its NVRAM.&lt;br /&gt;
&lt;br /&gt;
The [[M68ap|iPhone]]'s baseband processor is the [[S-Gold 2]]. The [[N82ap|iPhone 3G]], the [[N88ap|iPhone 3GS]] and the [[K48ap|iPad]] make use of the [[X-Gold 608]] chip for this purpose. The [[N90ap|iPhone 4 (GSM)]] and [[K94ap|iPad 2]] uses the [[XMM 6180]], the [[N92ap|iPhone 4 (CDMA)]] uses the [[MDM6600]].&lt;br /&gt;
&lt;br /&gt;
You can check some [[Baseband Commands]].&lt;br /&gt;
&lt;br /&gt;
==[[Seczone]]==&lt;br /&gt;
This is the area in the baseband where the lock state is stored.&lt;br /&gt;
&lt;br /&gt;
===Layout===&lt;br /&gt;
 0x400--NCK token&lt;br /&gt;
 0xA00--IMEI signature&lt;br /&gt;
 0xB00--IMEI&lt;br /&gt;
 0xC00--Locks table&lt;br /&gt;
&lt;br /&gt;
===Encryption===&lt;br /&gt;
Many of the sections are encrypted using [[Baseband TEA Keys|TEA]] based off the [[CHIPID]] and [[NORID]]. See [[NCK Brute Force]] for more info.&lt;br /&gt;
&lt;br /&gt;
==Exploits==&lt;br /&gt;
* [[SIM hacks]]&lt;br /&gt;
&lt;br /&gt;
===[[S-Gold  2]]===&lt;br /&gt;
* [[Fakeblank]]&lt;br /&gt;
* [[IPSF]]&lt;br /&gt;
* [[Minus 0x400]]&lt;br /&gt;
* [[Minus 0x20000 with Back Extend Erase]]&lt;br /&gt;
&lt;br /&gt;
===[[X-Gold 608]]=== &lt;br /&gt;
* [[JerrySIM]]&lt;br /&gt;
* [[AT+stkprof]]&lt;br /&gt;
* [[AT+XLOG Vulnerability]]&lt;br /&gt;
* [[AT+XEMN Heap Overflow]]&lt;br /&gt;
* [[AT+XAPP Vulnerability]]&lt;br /&gt;
&lt;br /&gt;
===[[XMM 6180]]===&lt;br /&gt;
* [[AT+XAPP Vulnerability]]&lt;br /&gt;
&lt;br /&gt;
==Theoretical Attacks==&lt;br /&gt;
* [[NCK Brute Force]]&lt;br /&gt;
* [[Baseband JTAG]]&lt;br /&gt;
&lt;br /&gt;
==Boot Chain==&lt;br /&gt;
[[Baseband Bootrom|bootrom]]-&amp;gt;[[Baseband Bootloader|bootloader]]-&amp;gt;[[Baseband Firmware|firmware]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Baseband]]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=17562</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=17562"/>
		<updated>2011-04-19T09:31:10Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* iPhone 4 (GSM model) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Latest Apple download links can be found [http://www.itunes.com/version here].&lt;br /&gt;
&lt;br /&gt;
==[[Apple TV]]==&lt;br /&gt;
===[[K66ap|Apple TV (2nd generation)]]===&lt;br /&gt;
'''NOTE:''' The version in parentheses is what the Apple TV reports on TV.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.1 (4.0)&lt;br /&gt;
| [[Mojave 8M89 (Apple TV 2G)|Mojave 8M89]]&lt;br /&gt;
| [http://appldnld.apple.com/AppleTV/061-8940.20100926.Tvtnz/AppleTV2,1_4.1_8M89_Restore.ipsw AppleTV2,1_4.1_8M89_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;68647d6ce163fc20891ca5bcff647c8eecc2b8d9&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 253,759,976&lt;br /&gt;
|-&lt;br /&gt;
| 4.2 (4.1)&lt;br /&gt;
| [[jasper 8C150 (Apple TV 2G)|Jasper 8C150]]&lt;br /&gt;
| [http://appldnld.apple.com/AppleTV/061-8747.20101122.Vgtr5/AppleTV2,1_4.2_8C150_Restore.ipsw AppleTV2,1_4.2_8C150_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;58f9ab479783dad3dff3834452abc2917aaef2a5&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 279,991,056&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1 (4.1.1)&lt;br /&gt;
| [[jasper 8C154 (Apple TV 2G)|Jasper 8C154]]&lt;br /&gt;
| [http://appldnld.apple.com/AppleTV/061-9978.20101214.gmabr/AppleTV2,1_4.2.1_8C154_Restore.ipsw AppleTV2,1_4.2.1_8C154_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c2b1adea595afa2b9caf633f0a820d3b66424dbf&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 280,052,510&lt;br /&gt;
|-&lt;br /&gt;
| 4.3 (4.2)&lt;br /&gt;
| [[Durango 8F191m (Apple TV 2G)|Durango 8F191m]]&lt;br /&gt;
| [http://appldnld.apple.com/AppleTV/061-9584.20110308.Cxdew/AppleTV2,1_4.3_8F191m_Restore.ipsw AppleTV2,1_4.3_8F191m_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;71bf070e755753e6dd29e2fc13cff9e248b58bd0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 332,470,394&lt;br /&gt;
|-&lt;br /&gt;
| 4.3 (4.2.1)&lt;br /&gt;
| [[Durango 8F202 (Apple TV 2G)|Durango 8F202]]&lt;br /&gt;
| [http://appldnld.apple.com/AppleTV/041-0574.20110322.Dcfr5/AppleTV2,1_4.3_8F202_Restore.ipsw AppleTV2,1_4.3_8F202_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;41faee6b543ecace1f31558c0a167e86fe784122&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 334,284,882&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
==[[iPad]]==&lt;br /&gt;
===[[K48ap|iPad]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[X-Gold 608#Known iPad Firmware Versions|Baseband]] (3G only)&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.2&lt;br /&gt;
| [[Wildcat 7B367 (iPad)|Wildcat 7B367]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; | [[6.15.00]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPad/061-7987.20100403.mjiTr/iPad1,1_3.2_7B367_Restore.ipsw iPad1,1_3.2_7B367_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;172e8297af74b91971a802e6ad137c891f553099&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 478,959,325&lt;br /&gt;
|-&lt;br /&gt;
| 3.2.1&lt;br /&gt;
| [[Wildcat 7B405 (iPad)|Wildcat 7B405]]&lt;br /&gt;
| [http://appldnld.apple.com/iPad/061-8282.20100713.vgtgh/iPad1,1_3.2.1_7B405_Restore.ipsw iPad1,1_3.2.1_7B405_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;de0a2b64cd335d48fb4abc9ed8700f5dbdf768ca&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 479,012,625&lt;br /&gt;
|-&lt;br /&gt;
| 3.2.2&lt;br /&gt;
| [[Wildcat 7B500 (iPad)|Wildcat 7B500]]&lt;br /&gt;
| [http://appldnld.apple.com/iPad/061-8801.20100811.CvfR5/iPad1,1_3.2.2_7B500_Restore.ipsw iPad1,1_3.2.2_7B500_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;68b613f78581d36eab96aa5a007001dff142baa3&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix to prevent malicious misuse of [[Star]]'s exploits.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 479,001,595&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148 (iPad)|Jasper 8C148]]&lt;br /&gt;
| [[7.10.00]]&lt;br /&gt;
| [http://appldnld.apple.com/iPad/061-9857.20101122.VGthy/iPad1,1_4.2.1_8C148_Restore.ipsw iPad1,1_4.2.1_8C148_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8717b3bedc925b587566442ad375aa65d857e79a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 578,084,840&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F190 (iPad)|Durango 8F190]]&lt;br /&gt;
| [[7.11.00]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0329.20110311.Cvfre/iPad1,1_4.3_8F190_Restore.ipsw iPad1,1_4.3_8F190_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;fc97d5959a1e29d707586871004ea12e95815237&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| 625,814,678&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPad)|Durango 8G4]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[7.11.01]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0550.20110325.Zsw6y/iPad1,1_4.3.1_8G4_Restore.ipsw iPad1,1_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6615b368d665630e80da975232567daf87a042b6&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 621,768,387&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPad)|Durango 8H7]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0661.20110414.W9Q8r/iPad1,1_4.3.2_8H7_Restore.ipsw iPad1,1_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;2c86c5915a8f9e56776deba22dc048c2f42db8b7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 622,148,907&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
===[[iPad 2]]===&lt;br /&gt;
====[[K93ap|Wi-Fi model]]====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F191 (iPad 2 Wi-Fi)|Durango 8F191]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0368.20110311.SwtHr/iPad2,1_4.3_8F191_Restore.ipsw iPad2,1_4.3_8F191_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c4db3a44dc0986bc8344f7672cfa0255bea8af14&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 641,816,049&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPad 2 Wi-Fi)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0556.20110325.64rfg/iPad2,1_4.3.1_8G4_Restore.ipsw iPad2,1_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;becf01c807e4c9f2654e3ffd1b83973f512ae51d&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| 636,932,642&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPad 2 Wi-Fi)|Durango 8H7]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0663.20110414.U7bTI/iPad2,1_4.3.2_8H7_Restore.ipsw iPad2,1_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f3df44893159ec283166a77ee75fe091ac0899b0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| 637,204,516&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====[[K94ap|GSM model]]====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[XMM 6180#Known Firmware Versions|Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F191 (iPad 2 GSM)|Durango 8F191]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| [[4.10.01]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0369.20110311.Xzsew/iPad2,2_4.3_8F191_Restore.ipsw iPad2,2_4.3_8F191_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;03f4af63f7751e429aef57ae00e675f96b271573&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 649,374,499&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPad 2 GSM)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0557.20110325.Jy76y/iPad2,2_4.3.1_8G4_Restore.ipsw iPad2,2_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;862dbf2c94dc2f30b02101905a91a45c95c353a7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| 644,359,977&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPad 2 GSM)|Durango 8H7]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0664.20110414.39vUS/iPad2,2_4.3.2_8H7_Restore.ipsw iPad2,2_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e52bd4bd8eabd48e5cfd02f895292d5644e805be&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| 644,615,497&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====[[K95ap|CDMA model]]====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| Baseband&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F191 (iPad 2 CDMA)|Durango 8F191]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| [[2.0.4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0334.20110311Plgt5/iPad2,3_4.3_8F191_Restore.ipsw iPad2,3_4.3_8F191_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;435b84104aa3f0ae7883f9d6b1a7a3e96e552dd2&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 656,018,665&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPad 2 CDMA)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0544.20110325.Dew3r/iPad2,3_4.3.1_8G4_Restore.ipsw iPad2,3_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;1903162ce3ffa9725304eb78275583977d1808cc&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| 650,897,625&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H8 (iPad 2 CDMA)|Durango 8H8]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0665.20110414.MbwVr/iPad2,3_4.3.2_8H8_Restore.ipsw iPad2,3_4.3.2_8H8_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;aee35de332048941f72bfbbbdf8591a1f306c65d&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| 651,222,830&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==[[iPhone]]==&lt;br /&gt;
===[[M68ap|iPhone]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[Baseband Firmware]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;99&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;91&amp;quot;| Publicly available virgin SW [[unlock]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[Alpine 1A420]]&lt;br /&gt;
| [http://img399.imageshack.us/i/iphone2go0.jpg/ 03.06.01_G]&lt;br /&gt;
| iphoneproto.zip&lt;br /&gt;
| &amp;lt;code&amp;gt;6e798e906c6590a7521ef89b731569be6d05b3aa&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prototype; [http://forums.macrumors.com/showthread.php?t=627449 macrumors]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 109,813,128&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0&lt;br /&gt;
| [[Heavenly 1A543a (iPhone)|Heavenly 1A543a]]&lt;br /&gt;
| 03.11.02_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3538.20070629.B7vXa/iPhone1,1_1.0_1A543a_Restore.ipsw iPhone1,1_1.0_1A543a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;fb8bb3ee2e9a997affbb97868599f2995c78209c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial US shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,604,348&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1&lt;br /&gt;
| [[Heavenly 1C25 (iPhone)|Heavenly 1C25]]&lt;br /&gt;
| 03.12.06_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3614.20070731.Nt6Y7/iPhone1,1_1.0.1_1C25_Restore.ipsw iPhone1,1_1.0.1_1C25_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a00b85a7a55d62a94be5fbf5effbc42fd63f3097&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,958&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| [[Heavenly 1C28 (iPhone)|Heavenly 1C28]]&lt;br /&gt;
| 03.14.08_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3823.20070821.vormd/iPhone1,1_1.0.2_1C28_Restore.ipsw iPhone1,1_1.0.2_1C28_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;7f5c0ff1f84a0202b75a55c3fcb362e415334d1e&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,324&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| [[Snowbird 3A109a (iPhone)|Snowbird 3A109a]]&lt;br /&gt;
| 04.01.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3883.20070927.In76t/iPhone1,1_1.1.1_3A109a_Restore.ipsw iPhone1,1_1.1.1_3A109a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;d441dd1c71ce18f25d8fc4faa71c1e6eaa02d02c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 159,668,150&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| [[Oktoberfest 3B48b (iPhone)|Oktoberfest 3B48b]]&lt;br /&gt;
| 04.02.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4037.20071107.5Bghn/iPhone1,1_1.1.2_3B48b_Restore.ipsw iPhone1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;797c02e7d660940e8d9a16cc7229ccf3f67dd8b1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial Euro shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 167,927,501&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| [[Little Bear 4A93 (iPhone)|Little Bear 4A93]]&lt;br /&gt;
| 04.03.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4061.20080115.4Fvn7/iPhone1,1_1.1.3_4A93_Restore.ipsw iPhone1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b3dec7580bd00dc4faf28449d9618ef40aeacc96&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,950,551&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| [[Little Bear 4A102 (iPhone)|Little Bear 4A102]]&lt;br /&gt;
| 04.04.05_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4313.20080226.Sw39i/iPhone1,1_1.1.4_4A102_Restore.ipsw iPhone1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;000811bac096011b50ebf6ec1ec2285b62fda4cb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,946,442&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| [[Big Bear 5A347 (iPhone)|Big Bear 5A347]]&lt;br /&gt;
|rowspan=&amp;quot;11&amp;quot;| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4956.20080710.V50OI/iPhone1,1_2.0_5A347_Restore.ipsw iPhone1,1_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9c510a3cfce789fa5f92a8f763c231bac82ff6d4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;11&amp;quot; {{yes|[[BootNeuter]]}}&lt;br /&gt;
| 228,768,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| [[Big Bear 5B108 (iPhone)|Big Bear 5B108]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5135.20080729.Vfgtr/iPhone1,1_2.0.1_5B108_Restore.ipsw iPhone1,1_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;61de6a2bd6ceddc9ecabad1671b91a59b3824bc4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 254,048,068&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| [[Big Bear 5C1 (iPhone)|Big Bear 5C1]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5246.20080818.2V0hO/iPhone1,1_2.0.2_5C1_Restore.ipsw iPhone1,1_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b84b57bea919bdc720287ec908c1378e7d7b5e1b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 253,589,000&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| [[Sugar Bowl 5F136 (iPhone)|Sugar Bowl 5F136]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5202.20080909.gkbEj/iPhone1,1_2.1_5F136_Restore.ipsw iPhone1,1_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;353b7745767b85932e14e262e69463620939bdf7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,171,241&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| [[Timberline 5G77 (iPhone)|Timberline 5G77]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5779.20081120.Pt5yH/iPhone1,1_2.2_5G77_Restore.ipsw iPhone1,1_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;cbfc6ff886ce89868a55547b9fb980dbf92e6418&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,576,980&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| [[SUTimberline 5H11 (iPhone)|SUTimberline 5H11]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5830.20090127.Mmni6/iPhone1,1_2.2.1_5H11_Restore.ipsw iPhone1,1_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;43b95ebe1e51f8d30eae916053396595c08440d3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,593,705&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone)|Kirkwood 7A341]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6580.20090617.XsP76/iPhone1,1_3.0_7A341_Restore.ipsw iPhone1,1_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;2afd3f8ede17390737f508473ed205506a0bd23f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,394,111&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| [[Kirkwood 7A400 (iPhone)|Kirkwood 7A400]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6974.20090731.Cf4Tg/iPhone1,1_3.0.1_7A400_Restore.ipsw  iPhone1,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34c391fbbc7b31b159372766de39ce5c9cc26ebb&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix for an SMS exploit.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,439,502&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone)|Northstar 7C144]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6605.20090909.PQ3ws/iPhone1,1_3.1_7C144_Restore.ipsw iPhone1,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b7b5f436f81c6f855410e8b44a3d432ccaacd6fc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,536,460&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone)|Northstar 7D11]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7268.20091008.32pNe/iPhone1,1_3.1.2_7D11_Restore.ipsw iPhone1,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e4a1171542dbbd3093516d9c02047b9f7e143050&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,515,888&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPhone)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7481.20100202.4orot/iPhone1,1_3.1.3_7E18_Restore.ipsw iPhone1,1_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;eab23a7f8d2a17cb71046c50fc5f67ec390a3c2b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 238,319,275&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N82ap|iPhone 3G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[X-Gold 608#Known iPhone Firmware Versions|Baseband]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;99&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;90&amp;quot;| Publicly available virgin SW [[unlock]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| [[Big Bear 5A345 (iPhone 3G)|Big Bear 5A345]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[1.45.00]]&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; {{partial|Upgrade to 2.2}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| [[Big Bear 5A347 (iPhone 3G)|Big Bear 5A347]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4955.20080710.bgt53/iPhone1,2_2.0_5A347_Restore.ipsw iPhone1,2_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;af9506ca0034e462674f9f59c5406f159eaf9fc1&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 235,957,125&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| [[Big Bear 5B108 (iPhone 3G)|Big Bear 5B108]]&lt;br /&gt;
| [[1.48.02]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5134.20080729.Q2W3E/iPhone1,2_2.0.1_5B108_Restore.ipsw iPhone1,2_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e81c7ac7e334a3e9d81b3b47894bfaa1ec495482&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 261,224,227&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| [[Big Bear 5C1 (iPhone 3G)|Big Bear 5C1]]&lt;br /&gt;
| [[2.08.01]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5241.20080818.t5Fv3/iPhone1,2_2.0.2_5C1_Restore.ipsw iPhone1,2_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;bef7fef954293046420fbcf947379839178a195b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,761,030&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| [[Sugar Bowl 5F136 (iPhone 3G)|Sugar Bowl 5F136]]&lt;br /&gt;
| [[2.11.07]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5198.20080909.K3294/iPhone1,2_2.1_5F136_Restore.ipsw iPhone1,2_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c6957dcbf2a95ccfd6dce374a727b1b7700a9043&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 249,341,655&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| [[Timberline 5G77 (iPhone 3G)|Timberline 5G77]]&lt;br /&gt;
| [[2.28.00]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5778.20081120.Aqw4R/iPhone1,2_2.2_5G77_Restore.ipsw iPhone1,2_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f67f8b2b842428bf89456cda0c2d5cf954d111a4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[Ultrasn0w|yellowsn0w]]}}&lt;br /&gt;
| 258,342,348&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| [[SUTimberline 5H11 (iPhone 3G)|SUTimberline 5H11]]&lt;br /&gt;
| [[2.30.03]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5828.20090127.aQLi8/iPhone1,2_2.2.1_5H11_Restore.ipsw iPhone1,2_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e0098e6fab5c90b59e067e03ae3ccd4a7cd0f39c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{partial|Upgrade to 3.0}}&lt;br /&gt;
| 258,359,073&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3G)|Kirkwood 7A341]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[4.26.08]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6578.20090617.VfgtU/iPhone1,2_3.0_7A341_Restore.ipsw iPhone1,2_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;94f1fb43de12bff0f168ce690b7e794cc6220ae3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; {{yes|[[ultrasn0w]]}}&lt;br /&gt;
| 241,229,233&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| [[Kirkwood 7A400 (iPhone 3G)|Kirkwood 7A400]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6972.20090731.Zx3Rr/iPhone1,2_3.0.1_7A400_Restore.ipsw  iPhone1,2_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a148ff39fa4dea499e7a9dd007b63e90c4f56666&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix for an SMS exploit.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 241,274,617&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3G)|Northstar 7C144]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[5.11.07]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6600.20090909.AwndZ/iPhone1,2_3.1_7C144_Restore.ipsw iPhone1,2_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b3b3c148170b012012278efda9ff5c38282d559&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; {{yes|[[blacksn0w]] or [[ultrasn0w]]}}&lt;br /&gt;
| 253,361,339&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone 3G)|Northstar 7D11]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7265.20091008.Xsd32/iPhone1,2_3.1.2_7D11_Restore.ipsw iPhone1,2_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b1a6ab2771bb5da372ba75a8fa3e1d72b71359d0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 253,340,786&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPhone 3G)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| [[5.12.01]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7468.20100202.pbnrt/iPhone1,2_3.1.3_7E18_Restore.ipsw iPhone1,2_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f5950afca546f93e281ba3cdb08bc0cfed7f0896&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[ultrasn0w]]}}&lt;br /&gt;
| 239,139,281&lt;br /&gt;
|-&lt;br /&gt;
| 4.0&lt;br /&gt;
| [[Apex 8A293 (iPhone 3G)|Apex 8A293]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; | [[5.13.04]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone4/061-7436.20100621.58Yt4/iPhone1,2_4.0_8A293_Restore.ipsw iPhone1,2_4.0_8A293_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;ee1eba9281b902d7ff3f24d50f9aebff0df27f92&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; {{yes|[[ultrasn0w]]}}&lt;br /&gt;
| 306,274,631&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.1&lt;br /&gt;
| [[Apex 8A306 (iPhone 3G)|Apex 8A306]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8616.20100715.phnt4/iPhone1,2_4.0.1_8A306_Restore.ipsw iPhone1,2_4.0.1_8A306_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;940bd2b36c646f6673419eab661ac1f13248e592&amp;lt;/code&amp;gt;&lt;br /&gt;
| New formula to calculate bars. Otherwise, it's the same as 4.0.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 320,237,975&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.2&lt;br /&gt;
| [[Apex 8A400 (iPhone 3G)|Apex 8A400]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8802.20100811.XcfpR/iPhone1,2_4.0.2_8A400_Restore.ipsw iPhone1,2_4.0.2_8A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;ee2bc74719170a7a2440b593b6f300727c930c69&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix to prevent malicious misuse of [[Star]]'s exploits.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 320,216,794&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B117 (iPhone 3G)|Baker 8B117]]&lt;br /&gt;
| [[5.14.02]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-7932.20100908.3fgt5/iPhone1,2_4.1_8B117_Restore.ipsw iPhone1,2_4.1_8B117_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;d87bab469dd1146ab83ddcc23f03b3164d7e09d4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{partial|Upgrade baseband to [[6.15.00]]}}&lt;br /&gt;
| 323,137,556&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148 (iPhone 3G)|Jasper 8C148]]&lt;br /&gt;
| [[5.15.04]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9853.20101122.Vfgt5/iPhone1,2_4.2.1_8C148_Restore.ipsw iPhone1,2_4.2.1_8C148_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;d2ed58586e8ca2153f2e2ec585bba8afc5173378&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{partial|Upgrade baseband to [[6.15.00]]}}&lt;br /&gt;
| 338,579,762&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N88ap|iPhone 3GS]]===&lt;br /&gt;
Units with the new bootrom began shipping around September 2009.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[X-Gold 608#Known iPhone Firmware Versions|Baseband]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Publicly available virgin [[jailbreak]]? ([[IBoot-359.3|old bootrom]])&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]? ([[IBoot-359.3.2|new bootrom]])&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Publicly available virgin SW [[unlock]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3GS)|Kirkwood 7A341]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[4.26.08]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6582.20090617.LlI87/iPhone2,1_3.0_7A341_Restore.ipsw iPhone2,1_3.0_7A341_Restore.ipsw] &lt;br /&gt;
| &amp;lt;code&amp;gt;d8534408c8679c830fd0c4e36ef9762c11ef73df&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; {{no|[[SHSH]]s unavailable at release}}&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; {{yes|[[ultrasn0w]]}}&lt;br /&gt;
| 312,292,933&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| [[Kirkwood 7A400 (iPhone 3GS)|Kirkwood 7A400]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6976.20090731.Vgbt5/iPhone2,1_3.0.1_7A400_Restore.ipsw  iPhone2,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;30006575af931e3da0521febace005152cdb8853&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix for an SMS exploit.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 312,330,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3GS)|Northstar 7C144]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[5.11.07]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6609.20090909.mwws4/iPhone2,1_3.1_7C144_Restore.ipsw  iPhone2,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;527c74f87588afa1d69c1e2c08eedc88f113013a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; {{yes|[[blacksn0w]] or [[ultrasn0w]]}}&lt;br /&gt;
| 321,011,474&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone 3GS)|Northstar 7D11]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7270.20091008.phn32/iPhone2,1_3.1.2_7D11_Restore.ipsw iPhone2,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6998bb7d9e869b2d89a08853312f9457d070fb1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 321,015,700&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPhone 3GS)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| [[5.12.01]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7472.20100202.8tugj/iPhone2,1_3.1.3_7E18_Restore.ipsw iPhone2,1_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8cb3775e62c6f72059a962bf891b4e145b965052&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[ultrasn0w]]}}&lt;br /&gt;
| 305,122,343&lt;br /&gt;
|-&lt;br /&gt;
| 4.0&lt;br /&gt;
| [[Apex 8A293 (iPhone 3GS)|Apex 8A293]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; | [[5.13.04]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone4/061-7437.20100621.5urG8/iPhone2,1_4.0_8A293_Restore.ipsw iPhone2,1_4.0_8A293_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e065245874c73510ceb8fa4bd9388b60d46eb252&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; {{yes|[[ultrasn0w]]}}&lt;br /&gt;
| 396,281,280&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.1&lt;br /&gt;
| [[Apex 8A306 (iPhone 3GS)‎|Apex 8A306]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8618.20100715.Zapn4/iPhone2,1_4.0.1_8A306_Restore.ipsw iPhone2,1_4.0.1_8A306_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c2b6fb9a158547ce726baa1bf8f0558a71518fec&amp;lt;/code&amp;gt;&lt;br /&gt;
| New formula to calculate bars. Otherwise, it's the same as 4.0.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 396,322,891&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.2&lt;br /&gt;
| [[Apex 8A400 (iPhone 3GS)|Apex 8A400]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8805.20100811.Dcr4e/iPhone2,1_4.0.2_8A400_Restore.ipsw iPhone2,1_4.0.2_8A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;61d21363ced6e006cc226f9a0a0e9c6ed8e048ab&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix to prevent malicious misuse of [[Star]]'s exploits.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 396,310,640&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B117 (iPhone 3GS)|Baker 8B117]]&lt;br /&gt;
| [[5.14.02]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-7938.20100908.F3rCk/iPhone2,1_4.1_8B117_Restore.ipsw iPhone2,1_4.1_8B117_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;2d1657cd33ae23b8d4e79e41fe758d09d3c52e30&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{partial|Upgrade baseband to [[6.15.00]]}}&lt;br /&gt;
| 400,572,133&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148a (iPhone 3GS)|Jasper 8C148a]]&lt;br /&gt;
| [[5.15.04]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9895.20101122.Cdew2/iPhone2,1_4.2.1_8C148a_Restore.ipsw iPhone2,1_4.2.1_8C148a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;2787bb9fbf18594279d05682e6fd16d2b9612a2a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{partial|Upgrade baseband to [[6.15.00]]}}&lt;br /&gt;
| 420,813,164&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F190 (iPhone 3GS)|Durango 8F190]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[5.16.00]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0328.20110311.Lkhy6/iPhone2,1_4.3_8F190_Restore.ipsw iPhone2,1_4.3_8F190_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;d05108c7338f7df7026b2d9a84f632a096bace92&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; {{partial|Upgrade baseband to [[6.15.00]]}}&lt;br /&gt;
| 443,762,287&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPhone 3GS)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0549.20110325.ZxP8u/iPhone2,1_4.3.1_8G4_Restore.ipsw iPhone2,1_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6de986f2dbd16a65db122e7c54a70f31812d028a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 440,276,917&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPhone 3GS)|Durango 8H7]]&lt;br /&gt;
| [[5.16.02]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0660.20110414.Gwed5/iPhone2,1_4.3.2_8H7_Restore.ipsw iPhone2,1_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;4021a2d82971fc4c637f1fdb6ce7c4dcfb7ac0d7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{partial|Upgrade baseband to [[6.15.00]]}}&lt;br /&gt;
| 440,519,356&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
===[[N90ap|iPhone 4 (GSM model)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[XMM 6180#Known Firmware Versions|Baseband]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Publicly available virgin SW [[unlock]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.0&lt;br /&gt;
| [[Apex 8A293 (iPhone 4)|Apex 8A293]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; | [[1.59.00]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone4/061-7380.20100621,Vfgb5/iPhone3,1_4.0_8A293_Restore.ipsw iPhone3,1_4.0_8A293_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;171c2a3995fa149f2a369ccd87f82c5c30da3f88&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; {{Yes|[[ultrasn0w]]}}&lt;br /&gt;
| 607,363,121&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.1&lt;br /&gt;
| [[Apex 8A306 (iPhone 4)|Apex 8A306]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8619.20100715.4Pnsx/iPhone3,1_4.0.1_8A306_Restore.ipsw iPhone3,1_4.0.1_8A306_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a9cf20679273b7e502ab384854ba96cc2a54d532&amp;lt;/code&amp;gt;&lt;br /&gt;
| New formula to calculate bars. Otherwise, it's the same as 4.0.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 607,380,127&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.2&lt;br /&gt;
| [[Apex 8A400 (iPhone 4)|Apex 8A400]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8807.20100811.3Edre/iPhone3,1_4.0.2_8A400_Restore.ipsw iPhone3,1_4.0.2_8A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;19eb071cdb9f1601b106825d0a16b1449c6eef8c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix to prevent malicious misuse of [[Star]]'s exploits.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 607,375,880&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B117 (iPhone 4)|Baker 8B117]]&lt;br /&gt;
| [[2.10.04]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-7939.20100908.Lcyg3/iPhone3,1_4.1_8B117_Restore.ipsw iPhone3,1_4.1_8B117_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;a3f8a333ca181146b862ca6a59c9a6e7c27eba0b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| 618,501,195&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148 (iPhone 4)|Jasper 8C148]]&lt;br /&gt;
| [[3.10.01]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9858.20101122.Er456/iPhone3,1_4.2.1_8C148_Restore.ipsw iPhone3,1_4.2.1_8C148_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;366b28e9c95936bd4b11a84d54fefaf079fd6411&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| 654,550,096&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F190 (iPhone 4)|Durango 8F190]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| [[4.10.01]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0330.20110311.Cswe3/iPhone3,1_4.3_8F190_Restore.ipsw iPhone3,1_4.3_8F190_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;146cd896abb21680383fe675cbc99fc36d3cce57&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; {{No}}&lt;br /&gt;
| 702,264,955&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPhone 4)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0551.20110325.Aw2Dr/iPhone3,1_4.3.1_8G4_Restore.ipsw iPhone3,1_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;6694f69c84d36248d5bb71ba78ddb1f4946260f0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 698,304,690&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPhone 4)|Durango 8H7]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0662.20110414.byQ84/iPhone3,1_4.3.2_8H7_Restore.ipsw iPhone3,1_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt; 211e556a558ad18921c8b837db65aa20a373db77&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 698,525,410&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
===[[N92ap|iPhone 4 (CDMA model)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| Baseband&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Publicly available virgin SW [[unlock]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.5&lt;br /&gt;
| [[Phoenix 8E128 (iPhone 4 CDMA)|Phoenix 8E128]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[1.0.05]]&lt;br /&gt;
| No download available&lt;br /&gt;
| &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial Shipment&lt;br /&gt;
| {{no}}&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.6&lt;br /&gt;
| [[Phoenix 8E200 (iPhone 4 CDMA)|Phoenix 8E200]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0177.20110131.Pyvrz/iPhone3,3_4.2.6_8E200_Restore.ipsw iPhone3,3_4.2.6_8E200_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f32cf46790a473a6c12f9dbd3773bf40fbdf6eee&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial Shipment&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 683,594,406&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.7&lt;br /&gt;
| [[Phoenix 8E303 (iPhone 4 CDMA)|Phoenix 8E303]]&lt;br /&gt;
| [[1.0.06]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0614.20110414.B47xa/iPhone3,3_4.2.7_8E303_Restore.ipsw iPhone3,3_4.2.7_8E303_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;724c173be65ffb1ca3ea5da73a331ddf1319884f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 684,508,142&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
==[[iPod touch]]==&lt;br /&gt;
===[[N45ap|iPod touch (1st generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| [[Snowbird 3A100a (iPod touch)|Snowbird 3A100a]]&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{no}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| [[Snowbird 3A101a (iPod touch)|Snowbird 3A101a]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3882.20070910.N8uyT/iPod1,1_1.1_3A101a_Restore.ipsw iPod1,1_1.1_3A101a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b0d83c7f8b4328174a3f31e0e93f60e591ae143&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 157,890,186&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| [[Snowbird 3A110a (iPod touch)|Snowbird 3A110a]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3932.20070927.p23dD/iPod1,1_1.1.1_3A110a_Restore.ipsw iPod1,1_1.1.1_3A110a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;84bbc6ea8bf29745195bc9926c1874f7c2a36f32&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,906,686&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| [[Oktoberfest 3B48b (iPod touch)|Oktoberfest 3B48b]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4036.20071107.9g3DF/iPod1,1_1.1.2_3B48b_Restore.ipsw iPod1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;108d8ffe9ea75e61cd5e57170ad388b7fa00d923&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 165,567,897&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| [[Little Bear 4A93 (iPod touch)|Little Bear 4A93]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-4060.20080115.9Iuh5/iPod1,1_1.1.3_4A93_Restore.ipsw iPod1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8dca23eec69d5ae58fbf3d4a23276e46cbb2e3c6&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,511,411&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| [[Little Bear 4A102 (iPod touch)|Little Bear 4A102]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4312.20080226.Btu45/iPod1,1_1.1.4_4A102_Restore.ipsw iPod1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c148d1eb1c979bb6434175411d4a372103a4fdd2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,589&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.5&lt;br /&gt;
| [[Little Bear 4B1 (iPod touch)|Little Bear 4B1]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4841.20080714.bgy8O/iPod1,1_1.1.5_4B1_Restore.ipsw iPod1,1_1.1.5_4B1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;1b818911316e4248ee01d3ec67f9d39afc3db240&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| [[Big Bear 5A347 (iPod touch)|Big Bear 5A347]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;ae82798e85f9953b0f4798bad36187cb020c9d22&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 233,409,573&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| [[Big Bear 5B108 (iPod touch)|Big Bear 5B108]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;a81b6e7af4b85ef436d047f9da57c0f694d8964a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,660,321&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| [[Big Bear 5C1 (iPod touch)|Big Bear 5C1]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c8b6f9fefa3f3777c56285dfe4c735b1e08a81a2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,201,218&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| [[Sugar Bowl 5F137 (iPod touch)|Sugar Bowl 5F137]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc7f6d0972927df502ffca47438ca75dcccffaf3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 251,155,156&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| [[Timberline 5G77 (iPod touch)|Timberline 5G77]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;081a7de363230fb38d0ce092cbbe42f2a50c8a5f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,186,851&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| [[SUTimberline 5H11 (iPod touch)|SUTimberline 5H11]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc69be9e421bc0630567184506ab771f6b7ef68b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,166,688&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPod touch)|Kirkwood 7A341]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;dff2bd14931225908a360fb8e60a336f17d2dd6d&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,458,552&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch)|Northstar 7C145]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c6270780c166db4c9f4f0a7fa945754a1f9fe7e8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 249,755,862&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPod touch)|Northstar 7D11]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;7367dd9ba58a3b9777307368a0128e696fdfc9a6&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| 249,780,497&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPod touch)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;5f897990f19d2f093b35e0813d7d77806404fb1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 235,678,189&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N72ap|iPod touch (2nd generation)]]===&lt;br /&gt;
Units with the new bootrom have model numbers that start with &amp;quot;MC.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Publicly available virgin [[jailbreak]]? ([[IBoot-240.4|old bootrom]])&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]? ([[IBoot-240.5.1|new bootrom]])&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.1&lt;br /&gt;
| [[Sugar Bowl 5F138 (iPod touch 2G)|Sugar Bowl 5F138]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-5494.20080909.8i9o0/iPod2,1_2.1.1_5F138_Restore.ipsw iPod2,1_2.1.1_5F138_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c3c700be49ad227d1152188e7c1e46b8958fd1e4&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot; {{no|Incompatible device/&lt;br /&gt;
firmware match}}&lt;br /&gt;
| 282,083,944&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| [[Timberline 5G77a (iPod touch 2G)|Timberline 5G77a]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-5358.20081120.Gtghy/iPod2,1_2.2_5G77a_Restore.ipsw iPod2,1_2.2_5G77a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34a0a489605f34d6cc6c9954edcaaf9a050deedc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 291,123,491&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| [[SUTimberline 5H11a (iPod touch 2G)|SUTimberline 5H11a]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5863.20090127.rt56K/iPod2,1_2.2.1_5H11a_Restore.ipsw iPod2,1_2.2.1_5H11a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9af5625ea34acdd8abeb6fce71a72651d0c815d5&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,140,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPod touch 2G)|Kirkwood 7A341]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;0f7fc76d9b9aa826b5ab14be9821a315d3d9dc42&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.x is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 270,315,364&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 2G)|Northstar 7C145]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e0d8800a4fc7cc5be6976ddbceb43c2d2a7120d7&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment for units with the new bootrom.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| 277,753,989&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPod touch 2G)|Northstar 7D11]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e7c83d4a5baec0e81816ae1cd1caf9a4dc38ebf0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 277,794,671&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPod touch 2G)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;5f4f5c01eda2f811f73167e7d1f82dbeed82367b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 263,275,211&lt;br /&gt;
|-&lt;br /&gt;
| 4.0&lt;br /&gt;
| [[Apex 8A293 (iPod touch 2G)|Apex 8A293]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone4/061-7435.20100621.tr49t/iPod2,1_4.0_8A293_Restore.ipsw iPod2,1_4.0_8A293_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c026c373bc535496a6f901de2ba37d4a487413bf&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 330,278,777&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.2&lt;br /&gt;
| [[Apex 8A400 (iPod touch 2G)|Apex 8A400]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8551.20100811.Xcder/iPod2,1_4.0.2_8A400_Restore.ipsw iPod2,1_4.0.2_8A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;06a42297d94461264eb64d7c8640cc5d1c19edeb&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix to prevent malicious misuse of [[Star]]'s exploits.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| 344,248,876&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B117 (iPod touch 2G)|Baker 8B117]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-7937.20100908.ghj4f/iPod2,1_4.1_8B117_Restore.ipsw iPod2,1_4.1_8B117_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;97abde6207660bd876fd476275dd526d0dcf3d19&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 348,027,174&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148 (iPod touch 2G)|Jasper 8C148]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9855.20101122.Lrft6/iPod2,1_4.2.1_8C148_Restore.ipsw iPod2,1_4.2.1_8C148_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;b9efddc7bb4350c237a8d3846af61bbfc8a2f647&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|363,553,480&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
===[[N18ap|iPod touch (3rd generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;99&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C145]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-7163.20090909.NtstR/iPod3,1_3.1.1_7C145_Restore.ipsw iPod3,1_3.1.1_7C145_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a3eddbe2cf77858bae7087dc8b2035f0d3097e57&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
| 311,702,789&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C146 (iPod touch 3G)|Northstar 7C146]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7238.20090918.23GhT/iPod3,1_3.1.1_7C146_Restore.ipsw iPod3,1_3.1.1_7C146_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f66a7286b261137f25ddbbd84047f9a7ea181904&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| 311,690,768&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPod touch 3G)|Northstar 7D11]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7271.20091008.Tch23/iPod3,1_3.1.2_7D11_Restore.ipsw iPod3,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;02dcee28d788d594a2939ab564f4f183af6ccdf2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 311,740,034&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPod touch 3G)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7473.20100202.4i44t/iPod3,1_3.1.3_7E18_Restore.ipsw iPod3,1_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;375fd469b18bfc0b74c7cfa5b4d5945197b1d106&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 295,870,806&lt;br /&gt;
|-&lt;br /&gt;
| 4.0&lt;br /&gt;
| [[Apex 8A293 (iPod touch 3G)|Apex 8A293]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone4/061-7381.20100621.AzSP9/iPod3,1_4.0_8A293_Restore.ipsw iPod3,1_4.0_8A293_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;36fe02b83f87d6305db572e1644841e3cd64cc7d&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 384,178,784&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.2&lt;br /&gt;
| [[Apex 8A400 (iPod touch 3G)|Apex 8A400]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8554.20100811.Bgt54/iPod3,1_4.0.2_8A400_Restore.ipsw iPod3,1_4.0.2_8A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;481b21044130125b117d53207f725b70fb061855&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix to prevent malicious misuse of [[Star]]'s exploits.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 384,203,993&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B117 (iPod touch 3G)|Baker 8B117]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-7941.20100908.sV9KE/iPod3,1_4.1_8B117_Restore.ipsw iPod3,1_4.1_8B117_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;3162bad4060b7a58c9942ddb483e5bd9bcc5269f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 388,255,189&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148 (iPod touch 3G)|Jasper 8C148]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9860.20101122.Xsde3/iPod3,1_4.2.1_8C148_Restore.ipsw iPod3,1_4.2.1_8C148_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;1127a042c535f7cf0be950ff8946862d5fb05b36&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 408,118,620&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F190 (iPod touch 3G)|Durango 8F190]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8366.20110311.Fr45t/iPod3,1_4.3_8F190_Restore.ipsw iPod3,1_4.3_8F190_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;3df936f2caf0759e6ac7f2339d663f3cad8b95f9&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| 433,166,165&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPod touch 3G)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0552.20110325.Yt67u/iPod3,1_4.3.1_8G4_Restore.ipsw iPod3,1_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;6879818321fd18267a15b91afbb1758dddd5dd5e&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 429,132,326&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPod touch 3G)|Durango 8H7]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0667.20110414.95hVL/iPod3,1_4.3.2_8H7_Restore.ipsw iPod3,1_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;cac5436f85d9b42a5d2e9e495d34bd4ec2e4cf7f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 429,339,223&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
===[[N81ap|iPod touch (4th generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;99&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B117 (iPod touch 4G)|Baker 8B117]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8490.20100901.hyjtR/iPod4,1_4.1_8B117_Restore.ipsw iPod4,1_4.1_8B117_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a464492bf6ad25d65b378c85d8b181f973ede38a&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 608,360,672&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B118 (iPod touch 4G)|Baker 8B118]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9344.20100922.Urgt43/iPod4,1_4.1_8B118_Restore.ipsw iPod4,1_4.1_8B118_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;331fb1342f5dab8c04cead74384a1e0fc1145952&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 608,360,927&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148 (iPod touch 4G)|Jasper 8C148]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9859.20101122.$erft/iPod4,1_4.2.1_8C148_Restore.ipsw iPod4,1_4.2.1_8C148_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6a890696126d0cb7f9ccd6b913ecb09cf2029820&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 638,177,119&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F190 (iPod touch 4G)|Durango 8F190]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9588.20110311.GtP7y/iPod4,1_4.3_8F190_Restore.ipsw iPod4,1_4.3_8F190_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;0a463245f640d3e9a7528b6da0b6ff04b75c96bc&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| 684,595,902&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPod touch 4G)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0545.20110325.We3Rt/iPod4,1_4.3.1_8G4_Restore.ipsw iPod4,1_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;4a395e045a722de53e78e7aa7584a5201f455b5c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 681,680,434&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPod touch 4G)|Durango 8H7]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0666.20110414.3QvM1/iPod4,1_4.3.2_8H7_Restore.ipsw iPod4,1_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;4ee16cf07e792e1f4369e940ddf0786ac4bb2fd2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 681,851,983&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[VFDecrypt]]&lt;br /&gt;
* [[VFDecrypt Keys]]&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
*[http://www.trejan.com/projects/ipod/ Firmware List]&lt;br /&gt;
*[http://itunes.com/version Apple Firmware XML]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=17561</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=17561"/>
		<updated>2011-04-19T09:30:14Z</updated>

		<summary type="html">&lt;p&gt;Redart: 4.3.2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Latest Apple download links can be found [http://www.itunes.com/version here].&lt;br /&gt;
&lt;br /&gt;
==[[Apple TV]]==&lt;br /&gt;
===[[K66ap|Apple TV (2nd generation)]]===&lt;br /&gt;
'''NOTE:''' The version in parentheses is what the Apple TV reports on TV.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.1 (4.0)&lt;br /&gt;
| [[Mojave 8M89 (Apple TV 2G)|Mojave 8M89]]&lt;br /&gt;
| [http://appldnld.apple.com/AppleTV/061-8940.20100926.Tvtnz/AppleTV2,1_4.1_8M89_Restore.ipsw AppleTV2,1_4.1_8M89_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;68647d6ce163fc20891ca5bcff647c8eecc2b8d9&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 253,759,976&lt;br /&gt;
|-&lt;br /&gt;
| 4.2 (4.1)&lt;br /&gt;
| [[jasper 8C150 (Apple TV 2G)|Jasper 8C150]]&lt;br /&gt;
| [http://appldnld.apple.com/AppleTV/061-8747.20101122.Vgtr5/AppleTV2,1_4.2_8C150_Restore.ipsw AppleTV2,1_4.2_8C150_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;58f9ab479783dad3dff3834452abc2917aaef2a5&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 279,991,056&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1 (4.1.1)&lt;br /&gt;
| [[jasper 8C154 (Apple TV 2G)|Jasper 8C154]]&lt;br /&gt;
| [http://appldnld.apple.com/AppleTV/061-9978.20101214.gmabr/AppleTV2,1_4.2.1_8C154_Restore.ipsw AppleTV2,1_4.2.1_8C154_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c2b1adea595afa2b9caf633f0a820d3b66424dbf&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 280,052,510&lt;br /&gt;
|-&lt;br /&gt;
| 4.3 (4.2)&lt;br /&gt;
| [[Durango 8F191m (Apple TV 2G)|Durango 8F191m]]&lt;br /&gt;
| [http://appldnld.apple.com/AppleTV/061-9584.20110308.Cxdew/AppleTV2,1_4.3_8F191m_Restore.ipsw AppleTV2,1_4.3_8F191m_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;71bf070e755753e6dd29e2fc13cff9e248b58bd0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 332,470,394&lt;br /&gt;
|-&lt;br /&gt;
| 4.3 (4.2.1)&lt;br /&gt;
| [[Durango 8F202 (Apple TV 2G)|Durango 8F202]]&lt;br /&gt;
| [http://appldnld.apple.com/AppleTV/041-0574.20110322.Dcfr5/AppleTV2,1_4.3_8F202_Restore.ipsw AppleTV2,1_4.3_8F202_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;41faee6b543ecace1f31558c0a167e86fe784122&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 334,284,882&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
==[[iPad]]==&lt;br /&gt;
===[[K48ap|iPad]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[X-Gold 608#Known iPad Firmware Versions|Baseband]] (3G only)&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.2&lt;br /&gt;
| [[Wildcat 7B367 (iPad)|Wildcat 7B367]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; | [[6.15.00]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPad/061-7987.20100403.mjiTr/iPad1,1_3.2_7B367_Restore.ipsw iPad1,1_3.2_7B367_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;172e8297af74b91971a802e6ad137c891f553099&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 478,959,325&lt;br /&gt;
|-&lt;br /&gt;
| 3.2.1&lt;br /&gt;
| [[Wildcat 7B405 (iPad)|Wildcat 7B405]]&lt;br /&gt;
| [http://appldnld.apple.com/iPad/061-8282.20100713.vgtgh/iPad1,1_3.2.1_7B405_Restore.ipsw iPad1,1_3.2.1_7B405_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;de0a2b64cd335d48fb4abc9ed8700f5dbdf768ca&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 479,012,625&lt;br /&gt;
|-&lt;br /&gt;
| 3.2.2&lt;br /&gt;
| [[Wildcat 7B500 (iPad)|Wildcat 7B500]]&lt;br /&gt;
| [http://appldnld.apple.com/iPad/061-8801.20100811.CvfR5/iPad1,1_3.2.2_7B500_Restore.ipsw iPad1,1_3.2.2_7B500_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;68b613f78581d36eab96aa5a007001dff142baa3&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix to prevent malicious misuse of [[Star]]'s exploits.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 479,001,595&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148 (iPad)|Jasper 8C148]]&lt;br /&gt;
| [[7.10.00]]&lt;br /&gt;
| [http://appldnld.apple.com/iPad/061-9857.20101122.VGthy/iPad1,1_4.2.1_8C148_Restore.ipsw iPad1,1_4.2.1_8C148_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8717b3bedc925b587566442ad375aa65d857e79a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 578,084,840&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F190 (iPad)|Durango 8F190]]&lt;br /&gt;
| [[7.11.00]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0329.20110311.Cvfre/iPad1,1_4.3_8F190_Restore.ipsw iPad1,1_4.3_8F190_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;fc97d5959a1e29d707586871004ea12e95815237&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| 625,814,678&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPad)|Durango 8G4]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[7.11.01]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0550.20110325.Zsw6y/iPad1,1_4.3.1_8G4_Restore.ipsw iPad1,1_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6615b368d665630e80da975232567daf87a042b6&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 621,768,387&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPad)|Durango 8H7]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0661.20110414.W9Q8r/iPad1,1_4.3.2_8H7_Restore.ipsw iPad1,1_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;2c86c5915a8f9e56776deba22dc048c2f42db8b7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 622,148,907&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
===[[iPad 2]]===&lt;br /&gt;
====[[K93ap|Wi-Fi model]]====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F191 (iPad 2 Wi-Fi)|Durango 8F191]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0368.20110311.SwtHr/iPad2,1_4.3_8F191_Restore.ipsw iPad2,1_4.3_8F191_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c4db3a44dc0986bc8344f7672cfa0255bea8af14&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 641,816,049&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPad 2 Wi-Fi)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0556.20110325.64rfg/iPad2,1_4.3.1_8G4_Restore.ipsw iPad2,1_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;becf01c807e4c9f2654e3ffd1b83973f512ae51d&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| 636,932,642&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPad 2 Wi-Fi)|Durango 8H7]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0663.20110414.U7bTI/iPad2,1_4.3.2_8H7_Restore.ipsw iPad2,1_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f3df44893159ec283166a77ee75fe091ac0899b0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| 637,204,516&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====[[K94ap|GSM model]]====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[XMM 6180#Known Firmware Versions|Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F191 (iPad 2 GSM)|Durango 8F191]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| [[4.10.01]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0369.20110311.Xzsew/iPad2,2_4.3_8F191_Restore.ipsw iPad2,2_4.3_8F191_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;03f4af63f7751e429aef57ae00e675f96b271573&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 649,374,499&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPad 2 GSM)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0557.20110325.Jy76y/iPad2,2_4.3.1_8G4_Restore.ipsw iPad2,2_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;862dbf2c94dc2f30b02101905a91a45c95c353a7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| 644,359,977&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPad 2 GSM)|Durango 8H7]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0664.20110414.39vUS/iPad2,2_4.3.2_8H7_Restore.ipsw iPad2,2_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e52bd4bd8eabd48e5cfd02f895292d5644e805be&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| 644,615,497&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====[[K95ap|CDMA model]]====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| Baseband&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F191 (iPad 2 CDMA)|Durango 8F191]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| [[2.0.4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0334.20110311Plgt5/iPad2,3_4.3_8F191_Restore.ipsw iPad2,3_4.3_8F191_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;435b84104aa3f0ae7883f9d6b1a7a3e96e552dd2&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 656,018,665&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPad 2 CDMA)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0544.20110325.Dew3r/iPad2,3_4.3.1_8G4_Restore.ipsw iPad2,3_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;1903162ce3ffa9725304eb78275583977d1808cc&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| 650,897,625&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H8 (iPad 2 CDMA)|Durango 8H8]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0665.20110414.MbwVr/iPad2,3_4.3.2_8H8_Restore.ipsw iPad2,3_4.3.2_8H8_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;aee35de332048941f72bfbbbdf8591a1f306c65d&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| 651,222,830&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==[[iPhone]]==&lt;br /&gt;
===[[M68ap|iPhone]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[Baseband Firmware]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;99&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;91&amp;quot;| Publicly available virgin SW [[unlock]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[Alpine 1A420]]&lt;br /&gt;
| [http://img399.imageshack.us/i/iphone2go0.jpg/ 03.06.01_G]&lt;br /&gt;
| iphoneproto.zip&lt;br /&gt;
| &amp;lt;code&amp;gt;6e798e906c6590a7521ef89b731569be6d05b3aa&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prototype; [http://forums.macrumors.com/showthread.php?t=627449 macrumors]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 109,813,128&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0&lt;br /&gt;
| [[Heavenly 1A543a (iPhone)|Heavenly 1A543a]]&lt;br /&gt;
| 03.11.02_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3538.20070629.B7vXa/iPhone1,1_1.0_1A543a_Restore.ipsw iPhone1,1_1.0_1A543a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;fb8bb3ee2e9a997affbb97868599f2995c78209c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial US shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,604,348&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1&lt;br /&gt;
| [[Heavenly 1C25 (iPhone)|Heavenly 1C25]]&lt;br /&gt;
| 03.12.06_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3614.20070731.Nt6Y7/iPhone1,1_1.0.1_1C25_Restore.ipsw iPhone1,1_1.0.1_1C25_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a00b85a7a55d62a94be5fbf5effbc42fd63f3097&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,958&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| [[Heavenly 1C28 (iPhone)|Heavenly 1C28]]&lt;br /&gt;
| 03.14.08_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3823.20070821.vormd/iPhone1,1_1.0.2_1C28_Restore.ipsw iPhone1,1_1.0.2_1C28_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;7f5c0ff1f84a0202b75a55c3fcb362e415334d1e&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,324&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| [[Snowbird 3A109a (iPhone)|Snowbird 3A109a]]&lt;br /&gt;
| 04.01.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3883.20070927.In76t/iPhone1,1_1.1.1_3A109a_Restore.ipsw iPhone1,1_1.1.1_3A109a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;d441dd1c71ce18f25d8fc4faa71c1e6eaa02d02c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 159,668,150&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| [[Oktoberfest 3B48b (iPhone)|Oktoberfest 3B48b]]&lt;br /&gt;
| 04.02.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4037.20071107.5Bghn/iPhone1,1_1.1.2_3B48b_Restore.ipsw iPhone1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;797c02e7d660940e8d9a16cc7229ccf3f67dd8b1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial Euro shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 167,927,501&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| [[Little Bear 4A93 (iPhone)|Little Bear 4A93]]&lt;br /&gt;
| 04.03.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4061.20080115.4Fvn7/iPhone1,1_1.1.3_4A93_Restore.ipsw iPhone1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b3dec7580bd00dc4faf28449d9618ef40aeacc96&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,950,551&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| [[Little Bear 4A102 (iPhone)|Little Bear 4A102]]&lt;br /&gt;
| 04.04.05_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4313.20080226.Sw39i/iPhone1,1_1.1.4_4A102_Restore.ipsw iPhone1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;000811bac096011b50ebf6ec1ec2285b62fda4cb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,946,442&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| [[Big Bear 5A347 (iPhone)|Big Bear 5A347]]&lt;br /&gt;
|rowspan=&amp;quot;11&amp;quot;| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4956.20080710.V50OI/iPhone1,1_2.0_5A347_Restore.ipsw iPhone1,1_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9c510a3cfce789fa5f92a8f763c231bac82ff6d4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;11&amp;quot; {{yes|[[BootNeuter]]}}&lt;br /&gt;
| 228,768,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| [[Big Bear 5B108 (iPhone)|Big Bear 5B108]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5135.20080729.Vfgtr/iPhone1,1_2.0.1_5B108_Restore.ipsw iPhone1,1_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;61de6a2bd6ceddc9ecabad1671b91a59b3824bc4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 254,048,068&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| [[Big Bear 5C1 (iPhone)|Big Bear 5C1]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5246.20080818.2V0hO/iPhone1,1_2.0.2_5C1_Restore.ipsw iPhone1,1_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b84b57bea919bdc720287ec908c1378e7d7b5e1b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 253,589,000&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| [[Sugar Bowl 5F136 (iPhone)|Sugar Bowl 5F136]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5202.20080909.gkbEj/iPhone1,1_2.1_5F136_Restore.ipsw iPhone1,1_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;353b7745767b85932e14e262e69463620939bdf7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,171,241&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| [[Timberline 5G77 (iPhone)|Timberline 5G77]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5779.20081120.Pt5yH/iPhone1,1_2.2_5G77_Restore.ipsw iPhone1,1_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;cbfc6ff886ce89868a55547b9fb980dbf92e6418&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,576,980&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| [[SUTimberline 5H11 (iPhone)|SUTimberline 5H11]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5830.20090127.Mmni6/iPhone1,1_2.2.1_5H11_Restore.ipsw iPhone1,1_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;43b95ebe1e51f8d30eae916053396595c08440d3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,593,705&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone)|Kirkwood 7A341]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6580.20090617.XsP76/iPhone1,1_3.0_7A341_Restore.ipsw iPhone1,1_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;2afd3f8ede17390737f508473ed205506a0bd23f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,394,111&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| [[Kirkwood 7A400 (iPhone)|Kirkwood 7A400]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6974.20090731.Cf4Tg/iPhone1,1_3.0.1_7A400_Restore.ipsw  iPhone1,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34c391fbbc7b31b159372766de39ce5c9cc26ebb&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix for an SMS exploit.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,439,502&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone)|Northstar 7C144]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6605.20090909.PQ3ws/iPhone1,1_3.1_7C144_Restore.ipsw iPhone1,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b7b5f436f81c6f855410e8b44a3d432ccaacd6fc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,536,460&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone)|Northstar 7D11]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7268.20091008.32pNe/iPhone1,1_3.1.2_7D11_Restore.ipsw iPhone1,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e4a1171542dbbd3093516d9c02047b9f7e143050&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,515,888&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPhone)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7481.20100202.4orot/iPhone1,1_3.1.3_7E18_Restore.ipsw iPhone1,1_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;eab23a7f8d2a17cb71046c50fc5f67ec390a3c2b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 238,319,275&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N82ap|iPhone 3G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[X-Gold 608#Known iPhone Firmware Versions|Baseband]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;99&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;90&amp;quot;| Publicly available virgin SW [[unlock]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| [[Big Bear 5A345 (iPhone 3G)|Big Bear 5A345]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[1.45.00]]&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; {{partial|Upgrade to 2.2}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| [[Big Bear 5A347 (iPhone 3G)|Big Bear 5A347]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4955.20080710.bgt53/iPhone1,2_2.0_5A347_Restore.ipsw iPhone1,2_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;af9506ca0034e462674f9f59c5406f159eaf9fc1&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 235,957,125&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| [[Big Bear 5B108 (iPhone 3G)|Big Bear 5B108]]&lt;br /&gt;
| [[1.48.02]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5134.20080729.Q2W3E/iPhone1,2_2.0.1_5B108_Restore.ipsw iPhone1,2_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e81c7ac7e334a3e9d81b3b47894bfaa1ec495482&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 261,224,227&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| [[Big Bear 5C1 (iPhone 3G)|Big Bear 5C1]]&lt;br /&gt;
| [[2.08.01]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5241.20080818.t5Fv3/iPhone1,2_2.0.2_5C1_Restore.ipsw iPhone1,2_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;bef7fef954293046420fbcf947379839178a195b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,761,030&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| [[Sugar Bowl 5F136 (iPhone 3G)|Sugar Bowl 5F136]]&lt;br /&gt;
| [[2.11.07]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5198.20080909.K3294/iPhone1,2_2.1_5F136_Restore.ipsw iPhone1,2_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c6957dcbf2a95ccfd6dce374a727b1b7700a9043&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 249,341,655&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| [[Timberline 5G77 (iPhone 3G)|Timberline 5G77]]&lt;br /&gt;
| [[2.28.00]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5778.20081120.Aqw4R/iPhone1,2_2.2_5G77_Restore.ipsw iPhone1,2_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f67f8b2b842428bf89456cda0c2d5cf954d111a4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[Ultrasn0w|yellowsn0w]]}}&lt;br /&gt;
| 258,342,348&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| [[SUTimberline 5H11 (iPhone 3G)|SUTimberline 5H11]]&lt;br /&gt;
| [[2.30.03]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5828.20090127.aQLi8/iPhone1,2_2.2.1_5H11_Restore.ipsw iPhone1,2_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e0098e6fab5c90b59e067e03ae3ccd4a7cd0f39c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{partial|Upgrade to 3.0}}&lt;br /&gt;
| 258,359,073&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3G)|Kirkwood 7A341]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[4.26.08]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6578.20090617.VfgtU/iPhone1,2_3.0_7A341_Restore.ipsw iPhone1,2_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;94f1fb43de12bff0f168ce690b7e794cc6220ae3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; {{yes|[[ultrasn0w]]}}&lt;br /&gt;
| 241,229,233&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| [[Kirkwood 7A400 (iPhone 3G)|Kirkwood 7A400]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6972.20090731.Zx3Rr/iPhone1,2_3.0.1_7A400_Restore.ipsw  iPhone1,2_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a148ff39fa4dea499e7a9dd007b63e90c4f56666&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix for an SMS exploit.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 241,274,617&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3G)|Northstar 7C144]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[5.11.07]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6600.20090909.AwndZ/iPhone1,2_3.1_7C144_Restore.ipsw iPhone1,2_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b3b3c148170b012012278efda9ff5c38282d559&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; {{yes|[[blacksn0w]] or [[ultrasn0w]]}}&lt;br /&gt;
| 253,361,339&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone 3G)|Northstar 7D11]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7265.20091008.Xsd32/iPhone1,2_3.1.2_7D11_Restore.ipsw iPhone1,2_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b1a6ab2771bb5da372ba75a8fa3e1d72b71359d0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 253,340,786&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPhone 3G)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| [[5.12.01]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7468.20100202.pbnrt/iPhone1,2_3.1.3_7E18_Restore.ipsw iPhone1,2_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f5950afca546f93e281ba3cdb08bc0cfed7f0896&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[ultrasn0w]]}}&lt;br /&gt;
| 239,139,281&lt;br /&gt;
|-&lt;br /&gt;
| 4.0&lt;br /&gt;
| [[Apex 8A293 (iPhone 3G)|Apex 8A293]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; | [[5.13.04]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone4/061-7436.20100621.58Yt4/iPhone1,2_4.0_8A293_Restore.ipsw iPhone1,2_4.0_8A293_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;ee1eba9281b902d7ff3f24d50f9aebff0df27f92&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; {{yes|[[ultrasn0w]]}}&lt;br /&gt;
| 306,274,631&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.1&lt;br /&gt;
| [[Apex 8A306 (iPhone 3G)|Apex 8A306]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8616.20100715.phnt4/iPhone1,2_4.0.1_8A306_Restore.ipsw iPhone1,2_4.0.1_8A306_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;940bd2b36c646f6673419eab661ac1f13248e592&amp;lt;/code&amp;gt;&lt;br /&gt;
| New formula to calculate bars. Otherwise, it's the same as 4.0.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 320,237,975&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.2&lt;br /&gt;
| [[Apex 8A400 (iPhone 3G)|Apex 8A400]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8802.20100811.XcfpR/iPhone1,2_4.0.2_8A400_Restore.ipsw iPhone1,2_4.0.2_8A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;ee2bc74719170a7a2440b593b6f300727c930c69&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix to prevent malicious misuse of [[Star]]'s exploits.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 320,216,794&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B117 (iPhone 3G)|Baker 8B117]]&lt;br /&gt;
| [[5.14.02]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-7932.20100908.3fgt5/iPhone1,2_4.1_8B117_Restore.ipsw iPhone1,2_4.1_8B117_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;d87bab469dd1146ab83ddcc23f03b3164d7e09d4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{partial|Upgrade baseband to [[6.15.00]]}}&lt;br /&gt;
| 323,137,556&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148 (iPhone 3G)|Jasper 8C148]]&lt;br /&gt;
| [[5.15.04]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9853.20101122.Vfgt5/iPhone1,2_4.2.1_8C148_Restore.ipsw iPhone1,2_4.2.1_8C148_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;d2ed58586e8ca2153f2e2ec585bba8afc5173378&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{partial|Upgrade baseband to [[6.15.00]]}}&lt;br /&gt;
| 338,579,762&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N88ap|iPhone 3GS]]===&lt;br /&gt;
Units with the new bootrom began shipping around September 2009.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[X-Gold 608#Known iPhone Firmware Versions|Baseband]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Publicly available virgin [[jailbreak]]? ([[IBoot-359.3|old bootrom]])&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]? ([[IBoot-359.3.2|new bootrom]])&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Publicly available virgin SW [[unlock]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3GS)|Kirkwood 7A341]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[4.26.08]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6582.20090617.LlI87/iPhone2,1_3.0_7A341_Restore.ipsw iPhone2,1_3.0_7A341_Restore.ipsw] &lt;br /&gt;
| &amp;lt;code&amp;gt;d8534408c8679c830fd0c4e36ef9762c11ef73df&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; {{no|[[SHSH]]s unavailable at release}}&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; {{yes|[[ultrasn0w]]}}&lt;br /&gt;
| 312,292,933&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| [[Kirkwood 7A400 (iPhone 3GS)|Kirkwood 7A400]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6976.20090731.Vgbt5/iPhone2,1_3.0.1_7A400_Restore.ipsw  iPhone2,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;30006575af931e3da0521febace005152cdb8853&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix for an SMS exploit.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 312,330,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3GS)|Northstar 7C144]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[5.11.07]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6609.20090909.mwws4/iPhone2,1_3.1_7C144_Restore.ipsw  iPhone2,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;527c74f87588afa1d69c1e2c08eedc88f113013a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; {{yes|[[blacksn0w]] or [[ultrasn0w]]}}&lt;br /&gt;
| 321,011,474&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone 3GS)|Northstar 7D11]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7270.20091008.phn32/iPhone2,1_3.1.2_7D11_Restore.ipsw iPhone2,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6998bb7d9e869b2d89a08853312f9457d070fb1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 321,015,700&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPhone 3GS)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| [[5.12.01]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7472.20100202.8tugj/iPhone2,1_3.1.3_7E18_Restore.ipsw iPhone2,1_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8cb3775e62c6f72059a962bf891b4e145b965052&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[ultrasn0w]]}}&lt;br /&gt;
| 305,122,343&lt;br /&gt;
|-&lt;br /&gt;
| 4.0&lt;br /&gt;
| [[Apex 8A293 (iPhone 3GS)|Apex 8A293]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; | [[5.13.04]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone4/061-7437.20100621.5urG8/iPhone2,1_4.0_8A293_Restore.ipsw iPhone2,1_4.0_8A293_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e065245874c73510ceb8fa4bd9388b60d46eb252&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; {{yes|[[ultrasn0w]]}}&lt;br /&gt;
| 396,281,280&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.1&lt;br /&gt;
| [[Apex 8A306 (iPhone 3GS)‎|Apex 8A306]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8618.20100715.Zapn4/iPhone2,1_4.0.1_8A306_Restore.ipsw iPhone2,1_4.0.1_8A306_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c2b6fb9a158547ce726baa1bf8f0558a71518fec&amp;lt;/code&amp;gt;&lt;br /&gt;
| New formula to calculate bars. Otherwise, it's the same as 4.0.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 396,322,891&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.2&lt;br /&gt;
| [[Apex 8A400 (iPhone 3GS)|Apex 8A400]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8805.20100811.Dcr4e/iPhone2,1_4.0.2_8A400_Restore.ipsw iPhone2,1_4.0.2_8A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;61d21363ced6e006cc226f9a0a0e9c6ed8e048ab&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix to prevent malicious misuse of [[Star]]'s exploits.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 396,310,640&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B117 (iPhone 3GS)|Baker 8B117]]&lt;br /&gt;
| [[5.14.02]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-7938.20100908.F3rCk/iPhone2,1_4.1_8B117_Restore.ipsw iPhone2,1_4.1_8B117_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;2d1657cd33ae23b8d4e79e41fe758d09d3c52e30&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{partial|Upgrade baseband to [[6.15.00]]}}&lt;br /&gt;
| 400,572,133&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148a (iPhone 3GS)|Jasper 8C148a]]&lt;br /&gt;
| [[5.15.04]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9895.20101122.Cdew2/iPhone2,1_4.2.1_8C148a_Restore.ipsw iPhone2,1_4.2.1_8C148a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;2787bb9fbf18594279d05682e6fd16d2b9612a2a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{partial|Upgrade baseband to [[6.15.00]]}}&lt;br /&gt;
| 420,813,164&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F190 (iPhone 3GS)|Durango 8F190]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[5.16.00]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0328.20110311.Lkhy6/iPhone2,1_4.3_8F190_Restore.ipsw iPhone2,1_4.3_8F190_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;d05108c7338f7df7026b2d9a84f632a096bace92&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; {{partial|Upgrade baseband to [[6.15.00]]}}&lt;br /&gt;
| 443,762,287&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPhone 3GS)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0549.20110325.ZxP8u/iPhone2,1_4.3.1_8G4_Restore.ipsw iPhone2,1_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6de986f2dbd16a65db122e7c54a70f31812d028a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 440,276,917&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPhone 3GS)|Durango 8H7]]&lt;br /&gt;
| [[5.16.02]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0660.20110414.Gwed5/iPhone2,1_4.3.2_8H7_Restore.ipsw iPhone2,1_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;4021a2d82971fc4c637f1fdb6ce7c4dcfb7ac0d7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{partial|Upgrade baseband to [[6.15.00]]}}&lt;br /&gt;
| 440,519,356&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
===[[N90ap|iPhone 4 (GSM model)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[XMM 6180#Known Firmware Versions|Baseband]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Publicly available virgin SW [[unlock]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.0&lt;br /&gt;
| [[Apex 8A293 (iPhone 4)|Apex 8A293]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; | [[1.59.00]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone4/061-7380.20100621,Vfgb5/iPhone3,1_4.0_8A293_Restore.ipsw iPhone3,1_4.0_8A293_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;171c2a3995fa149f2a369ccd87f82c5c30da3f88&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; {{Yes|[[ultrasn0w]]}}&lt;br /&gt;
| 607,363,121&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.1&lt;br /&gt;
| [[Apex 8A306 (iPhone 4)|Apex 8A306]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8619.20100715.4Pnsx/iPhone3,1_4.0.1_8A306_Restore.ipsw iPhone3,1_4.0.1_8A306_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a9cf20679273b7e502ab384854ba96cc2a54d532&amp;lt;/code&amp;gt;&lt;br /&gt;
| New formula to calculate bars. Otherwise, it's the same as 4.0.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 607,380,127&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.2&lt;br /&gt;
| [[Apex 8A400 (iPhone 4)|Apex 8A400]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8807.20100811.3Edre/iPhone3,1_4.0.2_8A400_Restore.ipsw iPhone3,1_4.0.2_8A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;19eb071cdb9f1601b106825d0a16b1449c6eef8c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix to prevent malicious misuse of [[Star]]'s exploits.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 607,375,880&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B117 (iPhone 4)|Baker 8B117]]&lt;br /&gt;
| [[2.10.04]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-7939.20100908.Lcyg3/iPhone3,1_4.1_8B117_Restore.ipsw iPhone3,1_4.1_8B117_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;a3f8a333ca181146b862ca6a59c9a6e7c27eba0b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| 618,501,195&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148 (iPhone 4)|Jasper 8C148]]&lt;br /&gt;
| [[3.10.01]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9858.20101122.Er456/iPhone3,1_4.2.1_8C148_Restore.ipsw iPhone3,1_4.2.1_8C148_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;366b28e9c95936bd4b11a84d54fefaf079fd6411&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| 654,550,096&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F190 (iPhone 4)|Durango 8F190]]&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| [[4.10.01]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0330.20110311.Cswe3/iPhone3,1_4.3_8F190_Restore.ipsw iPhone3,1_4.3_8F190_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;146cd896abb21680383fe675cbc99fc36d3cce57&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; {{No}}&lt;br /&gt;
| 702,264,955&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPhone 4)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0551.20110325.Aw2Dr/iPhone3,1_4.3.1_8G4_Restore.ipsw iPhone3,1_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;6694f69c84d36248d5bb71ba78ddb1f4946260f0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 698,304,690&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPhone 4)|Durango 8H7]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0662.20110414.byQ84/iPhone3,1_4.3.2_8H7_Restore.ipsw iPhone3,1_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt; 211e556a558ad18921c8b837db65aa20a373db77&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| 698,525,410&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
===[[N92ap|iPhone 4 (CDMA model)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| Baseband&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Publicly available virgin SW [[unlock]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.5&lt;br /&gt;
| [[Phoenix 8E128 (iPhone 4 CDMA)|Phoenix 8E128]]&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[1.0.05]]&lt;br /&gt;
| No download available&lt;br /&gt;
| &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial Shipment&lt;br /&gt;
| {{no}}&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.6&lt;br /&gt;
| [[Phoenix 8E200 (iPhone 4 CDMA)|Phoenix 8E200]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0177.20110131.Pyvrz/iPhone3,3_4.2.6_8E200_Restore.ipsw iPhone3,3_4.2.6_8E200_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f32cf46790a473a6c12f9dbd3773bf40fbdf6eee&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial Shipment&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 683,594,406&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.7&lt;br /&gt;
| [[Phoenix 8E303 (iPhone 4 CDMA)|Phoenix 8E303]]&lt;br /&gt;
| [[1.0.06]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0614.20110414.B47xa/iPhone3,3_4.2.7_8E303_Restore.ipsw iPhone3,3_4.2.7_8E303_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;724c173be65ffb1ca3ea5da73a331ddf1319884f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 684,508,142&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
==[[iPod touch]]==&lt;br /&gt;
===[[N45ap|iPod touch (1st generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| [[Snowbird 3A100a (iPod touch)|Snowbird 3A100a]]&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{no}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| [[Snowbird 3A101a (iPod touch)|Snowbird 3A101a]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3882.20070910.N8uyT/iPod1,1_1.1_3A101a_Restore.ipsw iPod1,1_1.1_3A101a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b0d83c7f8b4328174a3f31e0e93f60e591ae143&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 157,890,186&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| [[Snowbird 3A110a (iPod touch)|Snowbird 3A110a]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3932.20070927.p23dD/iPod1,1_1.1.1_3A110a_Restore.ipsw iPod1,1_1.1.1_3A110a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;84bbc6ea8bf29745195bc9926c1874f7c2a36f32&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,906,686&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| [[Oktoberfest 3B48b (iPod touch)|Oktoberfest 3B48b]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4036.20071107.9g3DF/iPod1,1_1.1.2_3B48b_Restore.ipsw iPod1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;108d8ffe9ea75e61cd5e57170ad388b7fa00d923&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 165,567,897&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| [[Little Bear 4A93 (iPod touch)|Little Bear 4A93]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-4060.20080115.9Iuh5/iPod1,1_1.1.3_4A93_Restore.ipsw iPod1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8dca23eec69d5ae58fbf3d4a23276e46cbb2e3c6&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,511,411&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| [[Little Bear 4A102 (iPod touch)|Little Bear 4A102]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4312.20080226.Btu45/iPod1,1_1.1.4_4A102_Restore.ipsw iPod1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c148d1eb1c979bb6434175411d4a372103a4fdd2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,589&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.5&lt;br /&gt;
| [[Little Bear 4B1 (iPod touch)|Little Bear 4B1]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4841.20080714.bgy8O/iPod1,1_1.1.5_4B1_Restore.ipsw iPod1,1_1.1.5_4B1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;1b818911316e4248ee01d3ec67f9d39afc3db240&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| [[Big Bear 5A347 (iPod touch)|Big Bear 5A347]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;ae82798e85f9953b0f4798bad36187cb020c9d22&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 233,409,573&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| [[Big Bear 5B108 (iPod touch)|Big Bear 5B108]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;a81b6e7af4b85ef436d047f9da57c0f694d8964a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,660,321&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| [[Big Bear 5C1 (iPod touch)|Big Bear 5C1]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c8b6f9fefa3f3777c56285dfe4c735b1e08a81a2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,201,218&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| [[Sugar Bowl 5F137 (iPod touch)|Sugar Bowl 5F137]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc7f6d0972927df502ffca47438ca75dcccffaf3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 251,155,156&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| [[Timberline 5G77 (iPod touch)|Timberline 5G77]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;081a7de363230fb38d0ce092cbbe42f2a50c8a5f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,186,851&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| [[SUTimberline 5H11 (iPod touch)|SUTimberline 5H11]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc69be9e421bc0630567184506ab771f6b7ef68b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,166,688&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPod touch)|Kirkwood 7A341]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;dff2bd14931225908a360fb8e60a336f17d2dd6d&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,458,552&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch)|Northstar 7C145]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c6270780c166db4c9f4f0a7fa945754a1f9fe7e8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 249,755,862&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPod touch)|Northstar 7D11]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;7367dd9ba58a3b9777307368a0128e696fdfc9a6&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| 249,780,497&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPod touch)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;5f897990f19d2f093b35e0813d7d77806404fb1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 235,678,189&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N72ap|iPod touch (2nd generation)]]===&lt;br /&gt;
Units with the new bootrom have model numbers that start with &amp;quot;MC.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Publicly available virgin [[jailbreak]]? ([[IBoot-240.4|old bootrom]])&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Publicly available virgin [[jailbreak]]? ([[IBoot-240.5.1|new bootrom]])&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.1&lt;br /&gt;
| [[Sugar Bowl 5F138 (iPod touch 2G)|Sugar Bowl 5F138]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-5494.20080909.8i9o0/iPod2,1_2.1.1_5F138_Restore.ipsw iPod2,1_2.1.1_5F138_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c3c700be49ad227d1152188e7c1e46b8958fd1e4&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot; {{no|Incompatible device/&lt;br /&gt;
firmware match}}&lt;br /&gt;
| 282,083,944&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| [[Timberline 5G77a (iPod touch 2G)|Timberline 5G77a]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-5358.20081120.Gtghy/iPod2,1_2.2_5G77a_Restore.ipsw iPod2,1_2.2_5G77a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34a0a489605f34d6cc6c9954edcaaf9a050deedc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 291,123,491&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| [[SUTimberline 5H11a (iPod touch 2G)|SUTimberline 5H11a]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5863.20090127.rt56K/iPod2,1_2.2.1_5H11a_Restore.ipsw iPod2,1_2.2.1_5H11a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9af5625ea34acdd8abeb6fce71a72651d0c815d5&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,140,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPod touch 2G)|Kirkwood 7A341]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;0f7fc76d9b9aa826b5ab14be9821a315d3d9dc42&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.x is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 270,315,364&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 2G)|Northstar 7C145]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e0d8800a4fc7cc5be6976ddbceb43c2d2a7120d7&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment for units with the new bootrom.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| 277,753,989&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPod touch 2G)|Northstar 7D11]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e7c83d4a5baec0e81816ae1cd1caf9a4dc38ebf0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 277,794,671&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPod touch 2G)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;5f4f5c01eda2f811f73167e7d1f82dbeed82367b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 263,275,211&lt;br /&gt;
|-&lt;br /&gt;
| 4.0&lt;br /&gt;
| [[Apex 8A293 (iPod touch 2G)|Apex 8A293]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone4/061-7435.20100621.tr49t/iPod2,1_4.0_8A293_Restore.ipsw iPod2,1_4.0_8A293_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c026c373bc535496a6f901de2ba37d4a487413bf&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 330,278,777&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.2&lt;br /&gt;
| [[Apex 8A400 (iPod touch 2G)|Apex 8A400]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8551.20100811.Xcder/iPod2,1_4.0.2_8A400_Restore.ipsw iPod2,1_4.0.2_8A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;06a42297d94461264eb64d7c8640cc5d1c19edeb&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix to prevent malicious misuse of [[Star]]'s exploits.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| 344,248,876&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B117 (iPod touch 2G)|Baker 8B117]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-7937.20100908.ghj4f/iPod2,1_4.1_8B117_Restore.ipsw iPod2,1_4.1_8B117_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;97abde6207660bd876fd476275dd526d0dcf3d19&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 348,027,174&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148 (iPod touch 2G)|Jasper 8C148]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9855.20101122.Lrft6/iPod2,1_4.2.1_8C148_Restore.ipsw iPod2,1_4.2.1_8C148_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;b9efddc7bb4350c237a8d3846af61bbfc8a2f647&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|363,553,480&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
===[[N18ap|iPod touch (3rd generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;99&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C145]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-7163.20090909.NtstR/iPod3,1_3.1.1_7C145_Restore.ipsw iPod3,1_3.1.1_7C145_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a3eddbe2cf77858bae7087dc8b2035f0d3097e57&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
| 311,702,789&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C146 (iPod touch 3G)|Northstar 7C146]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7238.20090918.23GhT/iPod3,1_3.1.1_7C146_Restore.ipsw iPod3,1_3.1.1_7C146_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f66a7286b261137f25ddbbd84047f9a7ea181904&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| 311,690,768&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPod touch 3G)|Northstar 7D11]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7271.20091008.Tch23/iPod3,1_3.1.2_7D11_Restore.ipsw iPod3,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;02dcee28d788d594a2939ab564f4f183af6ccdf2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 311,740,034&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPod touch 3G)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7473.20100202.4i44t/iPod3,1_3.1.3_7E18_Restore.ipsw iPod3,1_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;375fd469b18bfc0b74c7cfa5b4d5945197b1d106&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 295,870,806&lt;br /&gt;
|-&lt;br /&gt;
| 4.0&lt;br /&gt;
| [[Apex 8A293 (iPod touch 3G)|Apex 8A293]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone4/061-7381.20100621.AzSP9/iPod3,1_4.0_8A293_Restore.ipsw iPod3,1_4.0_8A293_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;36fe02b83f87d6305db572e1644841e3cd64cc7d&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 384,178,784&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.2&lt;br /&gt;
| [[Apex 8A400 (iPod touch 3G)|Apex 8A400]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8554.20100811.Bgt54/iPod3,1_4.0.2_8A400_Restore.ipsw iPod3,1_4.0.2_8A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;481b21044130125b117d53207f725b70fb061855&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hotfix to prevent malicious misuse of [[Star]]'s exploits.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 384,203,993&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B117 (iPod touch 3G)|Baker 8B117]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-7941.20100908.sV9KE/iPod3,1_4.1_8B117_Restore.ipsw iPod3,1_4.1_8B117_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;3162bad4060b7a58c9942ddb483e5bd9bcc5269f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 388,255,189&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148 (iPod touch 3G)|Jasper 8C148]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9860.20101122.Xsde3/iPod3,1_4.2.1_8C148_Restore.ipsw iPod3,1_4.2.1_8C148_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;1127a042c535f7cf0be950ff8946862d5fb05b36&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 408,118,620&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F190 (iPod touch 3G)|Durango 8F190]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8366.20110311.Fr45t/iPod3,1_4.3_8F190_Restore.ipsw iPod3,1_4.3_8F190_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;3df936f2caf0759e6ac7f2339d663f3cad8b95f9&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| 433,166,165&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPod touch 3G)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0552.20110325.Yt67u/iPod3,1_4.3.1_8G4_Restore.ipsw iPod3,1_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;6879818321fd18267a15b91afbb1758dddd5dd5e&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 429,132,326&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPod touch 3G)|Durango 8H7]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0667.20110414.95hVL/iPod3,1_4.3.2_8H7_Restore.ipsw iPod3,1_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
|&amp;lt;code&amp;gt;cac5436f85d9b42a5d2e9e495d34bd4ec2e4cf7f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 429,339,223&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
===[[N81ap|iPod touch (4th generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;99&amp;quot;| Publicly available virgin [[jailbreak]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B117 (iPod touch 4G)|Baker 8B117]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-8490.20100901.hyjtR/iPod4,1_4.1_8B117_Restore.ipsw iPod4,1_4.1_8B117_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a464492bf6ad25d65b378c85d8b181f973ede38a&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 608,360,672&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| [[Baker 8B118 (iPod touch 4G)|Baker 8B118]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9344.20100922.Urgt43/iPod4,1_4.1_8B118_Restore.ipsw iPod4,1_4.1_8B118_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;331fb1342f5dab8c04cead74384a1e0fc1145952&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 608,360,927&lt;br /&gt;
|-&lt;br /&gt;
| 4.2.1&lt;br /&gt;
| [[Jasper 8C148 (iPod touch 4G)|Jasper 8C148]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9859.20101122.$erft/iPod4,1_4.2.1_8C148_Restore.ipsw iPod4,1_4.2.1_8C148_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6a890696126d0cb7f9ccd6b913ecb09cf2029820&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 638,177,119&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| [[Durango 8F190 (iPod touch 4G)|Durango 8F190]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/061-9588.20110311.GtP7y/iPod4,1_4.3_8F190_Restore.ipsw iPod4,1_4.3_8F190_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;0a463245f640d3e9a7528b6da0b6ff04b75c96bc&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| 684,595,902&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.1&lt;br /&gt;
| [[Durango 8G4 (iPod touch 4G)|Durango 8G4]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0545.20110325.We3Rt/iPod4,1_4.3.1_8G4_Restore.ipsw iPod4,1_4.3.1_8G4_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;4a395e045a722de53e78e7aa7584a5201f455b5c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 681,680,434&lt;br /&gt;
|-&lt;br /&gt;
| 4.3.2&lt;br /&gt;
| [[Durango 8H7 (iPod touch 4G)|Durango 8H7]]&lt;br /&gt;
| [http://appldnld.apple.com/iPhone4/041-0666.20110414.3QvM1/iPod4,1_4.3.2_8H7_Restore.ipsw iPod4,1_4.3.2_8H7_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;4ee16cf07e792e1f4369e940ddf0786ac4bb2fd2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 681,851,983&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] only.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[VFDecrypt]]&lt;br /&gt;
* [[VFDecrypt Keys]]&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
*[http://www.trejan.com/projects/ipod/ Firmware List]&lt;br /&gt;
*[http://itunes.com/version Apple Firmware XML]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Jailbreak_(S5L8920%2B)&amp;diff=12042</id>
		<title>Jailbreak (S5L8920+)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Jailbreak_(S5L8920%2B)&amp;diff=12042"/>
		<updated>2010-11-03T10:07:08Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* ECID */ For new devics SHSHs are still necessary&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When the [[N88ap|iPhone 3GS]] was initially released, Apple did not have enough time to fix the [[0x24000 Segment Overflow]] in the [[S5L8920 (Bootrom)|S5L8920]]. However, in order to flash an exploited [[LLB]] and jailbreak the iPhone 3GS, '''one''' of the following needs to be done:&lt;br /&gt;
* Find a new [[iBoot]] exploit every time a new firmware is out.&lt;br /&gt;
* Find a way to bypass the [[ECID]] checks.&lt;br /&gt;
* Use a bootrom exploit that allows unsigned code execution via USB (2 of them were finally found by Geohot and Chronic Dev Team).&lt;br /&gt;
&lt;br /&gt;
This also applies to the iPhone 3GS with [[iBoot-359.3.2|the new bootrom]], [[N18ap|iPod touch 3G]] and later devices, except a bootrom exploit for the normal boot-chain or a library based jailbreak payload (similar to [[Star]]) is needed as well.&lt;br /&gt;
&lt;br /&gt;
==ECID==&lt;br /&gt;
Apple added a new tag to the [[IMG3 File Format]] called ECID. The ECID is ''unique'' to each phone, and its signature is being checked. With this method, Apple attempts to block downgrades once newer firmware becomes available, unless you have a dump of your old firmware's unique IMG3 or signed certificate. Therefore, iBoot exploits won't be so useful for tethered jailbreaks, because such exploits will be closed in new firmwares. [http://iphonejtag.blogspot.com/2009/06/ecid-field-downgrades-no-dice.html].&lt;br /&gt;
&lt;br /&gt;
The issue was resolved when Geohot released his [[limera1n]] tool exploiting bootrom security hole which allowed him to upload unsigned iBoot. Still the problem remains with newer devices with [[0x24000 Segment Overflow|0x24000]] fixed - tampering with firmware makes such jailbreak tethered unless some other exploit is used. &lt;br /&gt;
&lt;br /&gt;
There are methods to help keep your downgrading ability, though.&lt;br /&gt;
&lt;br /&gt;
* If it was cached prior to 3.1's release, 3GS owners were able save a file which contains the signature of the 3.0 [[iBSS]] containing their [[ECID]], using the [http://purplera1n.com/ purplera1n website]. A tool has not been created to incorporate this file into a fully signed iBSS, however. &lt;br /&gt;
* Saurik's servers are actively caching the necessary files. [http://www.saurik.com/id/12#howto Instructions] to use the servers are included.&lt;br /&gt;
* The [[SHSH]] associated with an ECID can be also saved by running [[TinyUmbrella]]. [[TinyUmbrella]] allows the user to restore to whatever version is associated with that [[SHSH]] file permanently. This is based on the aforementioned service [[Saurik]] provides remotely from his server(s).&lt;br /&gt;
&lt;br /&gt;
Release of [[PwnageTool]] 4.1.2 makes storing [[SHSH]]s unnecessary for old bootrom iDevices - there is always a way now to flash jailbroken firmware. Newer devices should continue to backup SHSHs - only original Apple-signed kernelcache can be booted untethered.&lt;br /&gt;
&lt;br /&gt;
==Jailbreak tools==&lt;br /&gt;
===[[K48ap|iPad]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.2&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.2.1&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.2.2&lt;br /&gt;
|-&lt;br /&gt;
| [[Spirit]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Star]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[redsn0w]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|0.9.6b2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N88ap|iPhone 3GS]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;9&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.0&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.0.1&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.1&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.1.2&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.1.3&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 4.0&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 4.0.1&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 4.0.2&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 4.1&lt;br /&gt;
|-&lt;br /&gt;
| [[purplera1n]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[redsn0w]]&lt;br /&gt;
| {{yes|0.8}}&lt;br /&gt;
| {{yes|0.8}}&lt;br /&gt;
| {{yes|0.9.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 0.9.3&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|0.9.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 0.9.3&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|0.9.6b2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[blackra1n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Spirit]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Star]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{partial|Restore from a custom firmware&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|3.1.4}}&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; {{partial|Restore from a custom firmware&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; {{partial|Restore from a custom firmware with unofficial bundle&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|-&lt;br /&gt;
| [[sn0wbreeze]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{partial|1.4&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; or 2.0.2&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{partial|1.5.1&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; or 2.0.2&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{partial|1.7&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt; or 2.0.2&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; {{partial|2.0.2&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] on devices with the [[iBoot-359.3.2|new bootrom]]. Requires usage of the [[usb_control_msg(0x21, 2) Exploit]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; Only applicable for devices with the [[iBoot-359.3|old bootrom]]. Requires the device to have signature checks disabled (pwned).&lt;br /&gt;
&lt;br /&gt;
===[[N90ap|iPhone 4]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0.1&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0.2&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.1&lt;br /&gt;
|-&lt;br /&gt;
| [[Star]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[redsn0w]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|0.9.6b2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N18ap|iPod touch 3G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.1.1&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.1.2&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.1.3&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0.2&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.1&lt;br /&gt;
|-&lt;br /&gt;
| [[blackra1n]]&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[redsn0w]]&lt;br /&gt;
| {{yes|0.9.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 0.9.3&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|0.9.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 0.9.3&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|0.9.6b2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Spirit]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Star]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[sn0wbreeze]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|2.0.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{partial|2.0.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{partial|1.7&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 2.0.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; {{partial|2.0.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]]. Requires usage of the [[usb_control_msg(0x21, 2) Exploit]].&lt;br /&gt;
&lt;br /&gt;
===[[N81ap |iPod touch 4G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.1&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Timeline&amp;diff=11979</id>
		<title>Timeline</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Timeline&amp;diff=11979"/>
		<updated>2010-11-02T12:53:12Z</updated>

		<summary type="html">&lt;p&gt;Redart: redsn0w released&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2010==&lt;br /&gt;
===October===&lt;br /&gt;
*October 31 -- The [[iPhone Dev Team|Dev Team]] releases [[redsn0w]] 0.9.6b2 which jailbreaks iOS 4.1, 4.2 and 3.2.2 on every device available at the time of release (except for iPT 2G MC). It also includes &amp;quot;DFU&amp;quot; button allowing to flash custom ipsw from Windows[http://blog.iphone-dev.org/post/1452044444/redsn0w-limera1n-fun (see blog post)].&lt;br /&gt;
*October 20 -- The [[iPhone Dev Team|Dev Team]] releases [[PwnageTool]] 4.1 which jailbreaks iOS 4.1 and 3.2.2 on every device  available at the time of release. [http://blog.iphone-dev.org/post/1359246784/20102010-event (see blog post)]&lt;br /&gt;
*October 18 -- [[Chronic Dev (team)|Chronic Dev Team]] releases [[greenpois0n]] RC4 which added support for iPod touch 2G (MC and MB) for an untethered jailbreak using [[User:comex|comex]]'s kernel exploit and the [[usb_control_msg(0xA1, 1) Exploit]].&lt;br /&gt;
*October 12 -- [[Chronic Dev (team)|Chronic Dev Team]] releases [[greenpois0n]] after switching its exploit from SHAtter to the exploit [[limera1n]] uses. By doing this, SHAtter remains undisclosed, meaning there is a chance that the 5th generation devices are vulnerable. (The exploit [[limera1n]] uses appears to be fixed in the [[iBoot]] revision found in iOS 4.2 beta 2, which means Apple probably knows about the vulnerability and the next [[bootrom]] revision may have it patched.)&lt;br /&gt;
*October 10 -- Following the first [[limera1n]] beta release, [[User:geohot|geohot]] released multiple versions, each fixing bugs affecting previous releases. [[Chronic Dev (team)|Chronic Dev Team]] officialy anounces that, in order to keep SHAtter undisclosed and possibly preserve it for 5th generation devices, [[greenpois0n]] would be delayed in order to incorporate this new exploit [[limera1n]] uses.&lt;br /&gt;
*October 9 -- In order to push [[Chronic Dev (team)|Chronic Dev Team]] to change the exploit used on [[greenpois0n]], [[User:geohot|geohot]] rushed out a beta version of [[limera1n]].&lt;br /&gt;
*October 8 -- [[User:Geohot|Geohot]] comes back to the scene with a new [[bootrom]] exploit believed to work on all devices, as shown on the resurrected [http://www.limera1n.com limera1n web site]. He prompts [[Chronic_Dev_(team)|Chronic Dev Team]] to use his exploit instead of SHAtter, but, since [[greenpois0n]] is already scheduled to October 10, it may be not possible. [[User:Geohot|Geohot]] ETA'd his [[limera1n]] release to October 11, if [[greenpois0n]] can't be changed to use this new exploit. This decision, however, would burn 2 [[bootrom]] exploits: SHAtter itself and the one used by [[limera1n]], which is unpatchable by firmware updates.&lt;br /&gt;
*October 6 -- Chronic Dev Team issues expected ETA of [[greenpois0n]] as October 10, featuring the new SHAtter exploit for devices with the [[S5L8930]].&lt;br /&gt;
&lt;br /&gt;
===September===&lt;br /&gt;
*September 30 -- [[User:MuscleNerd|MuscleNerd]] of the [[iPhone Dev Team]] posts [http://www.youtube.com/watch?v=adVp-IxcDHI the first video] of an [[K66ap|Apple TV 2G]] jailbroken via SHAtter.&lt;br /&gt;
*September 27 -- [[User:MuscleNerd|MuscleNerd]] of the [[iPhone Dev Team]] posts [http://www.youtube.com/watch?v=aoX1Q8ym2J8 the first video] of an [[N81ap|iPod touch 4G]] jailbroken via SHAtter.&lt;br /&gt;
*September 20 -- [[User:pod2g|pod2g]] discloses details about the [[usb_control_msg(0xA1, 1) Exploit‎]] here at The iPhone Wiki. It was used in [[redsn0w]] the following day.&lt;br /&gt;
*September 9 -- The existence of SHAtter is revealed. Further details were not released, however.&lt;br /&gt;
*September 8 -- Apple releases the [[N81ap|iPod touch 4G]], and iOS 4.1, closing the [[AT+XAPP Vulnerability]].&lt;br /&gt;
*September 1 -- Apple event. They announced the new [[N81ap|iPod touch 4G]], [[K66ap|Apple TV 2G]], iOS 4.1, and [[iTunes]] 10.&lt;br /&gt;
&lt;br /&gt;
===August===&lt;br /&gt;
*August 12 -- [[Saurik]] releases the first version of PDF Patcher, which installs Apple's patch for the FreeType vulnerability (used in conjunction with other exploits by [[Star]]). It works on firmwares as far back as 2.x, and renders iOS 3.2.2 and 4.0.2 useless for jailbreakers. Jailbreaking and installing this patch is currently the only way for users of first generation iPod touches and iPhones to protect themselves against malicious use of the exploit.&lt;br /&gt;
*August 11 -- Apple releases iOS 4.0.2 for [[iPhone]]/[[iPod touch]] and iOS 3.2.2 for [[K48ap|iPad]] as a hotfix for [[Star]]'s exploits. [[Ultrasn0w]]'s exploit remains, since there's no [[Baseband Firmware|baseband]] update on those versions.&lt;br /&gt;
*August 3 -- Just before midnight in [[User:planetbeing|planetbeing]]'s timezone [[ultrasn0w]] has been released by the [[iPhone Dev Team]] to [[unlock]] the [[N90ap|iPhone 4]].&lt;br /&gt;
*August 1 -- [[User:Comex|comex]] releases [[Star]], a [[jailbreak]] for all iDevices with iOS 3.1.2 through 4.0.1.&lt;br /&gt;
&lt;br /&gt;
===July===&lt;br /&gt;
*July 30 -- [[N90ap|iPhone 4]] is released in major countries (second wave).&lt;br /&gt;
*July 26 -- Jailbreaking is now officially legal in the U.S.A.: [http://www.eff.org/press/archives/2010/07/26 EFF Wins New Legal Protections for Cell Phone Jailbreakers and Unlockers]&lt;br /&gt;
*July 15 -- Apple releases iOS 3.2.1 and 4.0.1.&lt;br /&gt;
&lt;br /&gt;
===June===&lt;br /&gt;
*June 24 -- [[N90ap|iPhone 4]] is launched.&lt;br /&gt;
*June 22 -- [[iPhone Dev Team]] releases [[PwnageTool]] 4.0 and later 4.0.1 for all devices on 4.0 except those with newer bootroms (some [[N72ap|iPod touch 2G]] and [[N88ap|iPhone 3GS]] devices, and all [[N18ap|iPod touch 3G]] and newer devices).&lt;br /&gt;
*June 21 -- [[iPhone Dev Team]] releases [[redsn0w]] 0.9.5 to jailbreak 4.0 on [[N82ap|iPhone 3G]] and [[N72ap|iPhone touch 2G]] ([[iBoot-240.4|old bootrom]]).&lt;br /&gt;
*June 21 -- [[iPhone Dev Team]] releases [[ultrasn0w]] 0.93, an unlock for baseband firmwares [[4.26.08]], [[5.11.07]], [[5.12.01]], and [[5.13.04]].&lt;br /&gt;
*June 21 -- Apple releases iOS 4.0&lt;br /&gt;
*June 19 -- [[User:Geohot|geohot]] holds a speech at the [[Nuit du hack 2010|Nuit du Hack]]&lt;br /&gt;
&lt;br /&gt;
===May===&lt;br /&gt;
*May 3 -- Windows version of [[Spirit]] has been updated to not require Windows 98 compatibility mode to run and fixed a photo deletion issue.&lt;br /&gt;
*May 2 -- [[User:Comex|comex]] releases [[Spirit]], an [[untethered jailbreak]] for all iDevices with iOS 3.1.2 through 3.2.&lt;br /&gt;
&lt;br /&gt;
===April===&lt;br /&gt;
*April 3 -- Apple releases the [[K48ap|iPad]].&lt;br /&gt;
&lt;br /&gt;
===Feb===&lt;br /&gt;
*Feb 12 -- [[User:sherif hashim|sherif_hashim]] discovers [[AT+XAPP Vulnerability]] and passes it to [[User:MuscleNerd|MuscleNerd]], an elite member of the [[iPhone Dev Team]]&lt;br /&gt;
*Feb 2 -- Apple releases iOS 3.1.3, closing [[usb_control_msg(0x21, 2) Exploit|usb_control_msg(0x21, 2)]] vulnerability used by [[blackra1n]], [[redsn0w]], et. al.&lt;br /&gt;
&lt;br /&gt;
==2009==&lt;br /&gt;
===November===&lt;br /&gt;
*November 3 -- [[User:Geohot|geohot]] releases [[blackra1n]] RC3, a software jailbreak for all devices. Includes a new unlock for baseband [[5.11.07]] called [[blacksn0w]] and is also noticeably faster than previous versions.&lt;br /&gt;
&lt;br /&gt;
===October===&lt;br /&gt;
*October 11 -- [[User:Geohot|geohot]] releases [[blackra1n]] RC1, a 30 second software jailbreak for all devices, including a [[tethered jailbreak]] for the [[N18ap|iPod touch 3G]], and [[N88ap|iPhone 3GS]] and [[N72ap|iPod touch 2G]] units with newer bootrom revisions.&lt;br /&gt;
&lt;br /&gt;
===September===&lt;br /&gt;
* September 24 -- [[User:iH8sn0w|iH8sn0w]] discovers the [[AT+XEMN Heap Overflow|AT+XEMN]] crash independently.&lt;br /&gt;
* September 9 -- The [[N18ap|iPod touch 3G]] with [[S5L8922]] processor is released. [[N72ap|iPod touch 2G]] units continue shipping, but with [[iBoot-240.5.1|a new bootrom]]. [[N88ap|iPhone 3GS]] units also begin shipping with [[iBoot-359.3.2|a new bootrom]]. These are no longer vulnerable to the [[0x24000 Segment Overflow]].&lt;br /&gt;
* Apple releases iOS 3.1/3.1.1 (7C144/7C145), closing the [[iBoot Environment Variable Overflow]] and [[AT+XLOG Vulnerability|AT+XLOG]] + [[AT+FNS]] Baseband Exploits.&lt;br /&gt;
&lt;br /&gt;
===July===&lt;br /&gt;
* July 14 -- [[User:Geohot|geohot]] releases [[purplesn0w]], a software unlock for the [[X-Gold 608]] using [[AT+XLOG Vulnerability|the same exploit as ultrasn0w]], but handled differently. Minutes later, an explanation and source code was posted.&lt;br /&gt;
* July 7 -- The [[iPhone Dev Team]] updates [[redsn0w]] and [[ultrasn0w]] to version 0.8, now with [[N88ap|iPhone 3GS]] support. Saurik also updates [[WinterBoard]] to support the [[N88ap|iPhone 3GS]].&lt;br /&gt;
* July 3 -- [[User:Geohot|geohot]] releases [[purplera1n]], a software jailbreak for the [[N88ap|iPhone 3GS]].&lt;br /&gt;
&lt;br /&gt;
===June===&lt;br /&gt;
* June 28 -- [[User:Geohot|geohot]] posts pictures on his blog of the first fully jailbroken [[N88ap|iPhone 3GS]].&lt;br /&gt;
* June 25 -- It's discovered that [[N88ap|iPhone 3GS]] is vulnerable to the [[0x24000 Segment Overflow]].&lt;br /&gt;
* June 24 -- The [[iPhone Dev Team]] releases [[ultrasn0w]], an [[unlock]] for [[X-Gold 608]] thanks to [[AT+XLOG Vulnerability|a new exploit]] discovered by [[User:Oranav|Oranav]].&lt;br /&gt;
* June 23 -- [[User:Geohot|geohot]] announces he's found a new exploit in [[iBoot]] he calls [[purplera1n]].&lt;br /&gt;
* June 19 -- Release of [[N88ap|iPhone 3GS]] to the public and the release of [[PwnageTool]] 3.0 and [[redsn0w]] for jailbreaking devices running iOS 3.0&lt;br /&gt;
* June 17 -- Apple releases iOS 3.0.&lt;br /&gt;
* June 8 -- Apple announces the [[N88ap|iPhone 3GS]].&lt;br /&gt;
&lt;br /&gt;
===March===&lt;br /&gt;
* March 10 -- Information about the [[0x24000 Segment Overflow]] exploit used for the [[N72ap|iPod touch 2G]] [[untethered jailbreak]] is released thanks to the combined work of [[chronic]], [[CPICH]], [[User:Posixninja|posixninja]], [[User:Pod2g|pod2g]], [[ius]], [[planetbeing]], [[User:MuscleNerd|MuscleNerd]], and co. after being leaked and sold by [[NitroKey]]. To prevent users wasting their money on a stolen exploit, the Hybrid DevTeam decided to release it immediately.&lt;br /&gt;
&lt;br /&gt;
===January===&lt;br /&gt;
* January 31 -- The [[iPhone Dev Team]] released [[redsn0w Lite]], a [[tethered jailbreak|tethered]] [[N72ap|iPod touch 2G]] [[jailbreak]]. It combines the [[ARM7 Go]] vulnerability with the well-established [[pwnage]] flow for other Apple mobile devices. It was bundled in a way that allowed usage on iOS 2.2.1 by uploading [[iBoot]] from iOS 2.1.1, which is vulnerable to [[ARM7 Go]], to the device while in [[DFU Mode]].&lt;br /&gt;
* January 29 -- Apple releases iOS 2.2.1, closing the [[AT+stkprof]] exploit.&lt;br /&gt;
* January 25 -- [[0wnboot]] is released to [http://code.google.com/p/chronicdev/ chronicdev google code page], thanks to [[AriX]], [[User:ChronicDev|chronic]], [[CPICH]], [[westbaer]], [[ius]], [[User:Pod2g|pod2g]], the rest of the iPod devel crew on IRC, and to the #iphone-hax lab rats. Within days, [[AriX]] and the [[Chronic Dev (team)|Chronic Dev Team]] got a ramdisk booting for a [[tethered jailbreak]].&lt;br /&gt;
* January 17 -- [[User:MuscleNerd|MuscleNerd]] of the [[iPhone Dev Team]] [https://twitter.com/MuscleNerd/status/1127346766 shows a video demo] of the first jailbroken [[N72ap|iPod touch 2G]].&lt;br /&gt;
* January 16 -- [[ARM7 Go]] vulnerability disclosed where else but here on The iPhone Wiki, for developers to poke and prod at.&lt;br /&gt;
* January 15 -- The [[iPhone Dev Team]] [https://twitter.com/iphone_dev/status/1120595069 tweets the VFDecrypt key] for iOS 2.2 on [[N72ap|iPod touch 2G]], demonstrating for the first time that unsigned code can now be run on that device.&lt;br /&gt;
* January 1 -- The [[iPhone Dev Team]] releases [[yellowsn0w]] 0.9 beta for baseband [[2.28.00]].&lt;br /&gt;
&lt;br /&gt;
==2008==&lt;br /&gt;
&lt;br /&gt;
===December===&lt;br /&gt;
* December 27 -- [[25C3_presentation_Hacking_the_iPhone|25C3 presentation &amp;quot;Hacking the iPhone&amp;quot;]]&lt;br /&gt;
* December 21 -- [[User:MuscleNerd|MuscleNerd]], of the [[iPhone Dev Team]] does a live demo of the 3G unlock, dubbed as [[yellowsn0w]]: http://qik.com/video/729275&lt;br /&gt;
&lt;br /&gt;
===November===&lt;br /&gt;
* November 21 -- Apple releases iOS 2.2.&lt;br /&gt;
&lt;br /&gt;
===September===&lt;br /&gt;
* September 9 -- Apple releases iOS 2.1. [[N72ap|iPod touch 2G]], which no longer had the [[Pwnage 2.0]] exploit, is revealed.&lt;br /&gt;
&lt;br /&gt;
===August===&lt;br /&gt;
* August 18 -- Apple releases 2.0.2 fimware. [[iPhone Dev Team]] releases [http://wikee.iphwn.org/news:pwnage20announcement QuickPwn], a 2.x [[pwnage]]/ramdisk combination exploit that allows jailbreaking without needing to create custom IPSWs.&lt;br /&gt;
* August 4 -- Apple releases 2.0.1 fimware&lt;br /&gt;
&lt;br /&gt;
===July===&lt;br /&gt;
* July 22 -- [[TA_Mobile]] hardware dumps the 3G baseband (bootloader 5.8 &amp;amp; FW 1.45.00) by desoldering the [[NOR]].&lt;br /&gt;
* July 19 -- [[iPhone Dev Team]] releases [[PwnageTool]] 2.0, jailbreaking and unlocking the 2.0 software on the [[M68ap|iPhone 2G]] and jailbreaking iOS 2.0 on the [[N82ap|iPhone 3G]] and [[N45ap|iPod touch]].&lt;br /&gt;
* July 15 -- Apple releases iOS 1.1.5, the last of the 1.x firmwares&lt;br /&gt;
* July 11 -- [[N82ap|iPhone 3G]] is released. Apple releases iOS 2.0 and MobileMe on the same date, resulting in server issues.&lt;br /&gt;
&lt;br /&gt;
===June===&lt;br /&gt;
* June 9 - [[N82ap|iPhone 3G]] is announced at [[WWDC]] '08.&lt;br /&gt;
&lt;br /&gt;
===April===&lt;br /&gt;
* April 3 -- [[iPhone Dev Team]] releases [[PwnageTool]] 1.0, making use of the [[pmdx exploit]] (to patch RSA checks out of the [[kernel]], to write unsigned to [[NOR]])&lt;br /&gt;
&lt;br /&gt;
===March===&lt;br /&gt;
* March 12 -- [[iPhone Dev Team|Dev team]] releases dual-boot jailbreak method, only to be silently fixed in 2.0.&lt;br /&gt;
* March 4 -- [[User:N000b|George Zhu (n000b)]] releases [[iLiberty / iLiberty+]].&lt;br /&gt;
&lt;br /&gt;
===February===&lt;br /&gt;
* February 28 -- [[Cydia Application|Cydia]] is released as an open-source alternative to [[Installer.app]], and prepares to take over the jailbreak application scene upon 2.0's release.&lt;br /&gt;
* February 26 -- Apple releases iOS 1.1.4.&lt;br /&gt;
* February 11 -- [[User:Zibri|Zibri]] leaks the [[Ramdisk Hack]] in [[ZiPhone]], the first all-in-one unlock, activate, jailbreak solution.&lt;br /&gt;
* February 8 -- [[User:Geohot|geohot]] releases software unlock for 4.6. Apple states 25% of phones were never activated with AT&amp;amp;T.&lt;br /&gt;
&lt;br /&gt;
===January===&lt;br /&gt;
* January 28 -- [[iPhone Dev Team]] releases [[Soft Upgrade]] jailbreak for 1.1.3.&lt;br /&gt;
* January 24 -- [[Nate True]] releases a version of [[iBrickr]] that used the [[Soft Upgrade]] method to jailbreak 1.1.3 for [[M68ap|iPhones]].&lt;br /&gt;
* January 18 -- [[User:Geohot|Geohot]] and his friends [http://iphonejtag.blogspot.com/2008/01/112-otb-unlocked.html unlocked 1.1.2 OTB 4.6 by test point], the unbeatable version at that time.&lt;br /&gt;
* January 18 -- [[iPhone Dev Team]] posts YouTube video of a jailbroken 1.1.3, which was made possible by the dual boot jailbreak from [[bgm]].&lt;br /&gt;
* January 15 -- Apple releases iOS 1.1.3, closing the [[Mknod]] exploit. In addition, everything now runs as &amp;quot;mobile&amp;quot; instead of &amp;quot;root.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== 2007 ==&lt;br /&gt;
===November===&lt;br /&gt;
* November 15 -- [[Baseband Bootloader|Baseband bootloader]] 4.6 is found on new [[M68ap|iPhone]]s, which initially had no [[unlock]].&lt;br /&gt;
* November 12 -- Apple releases iOS 1.1.2, closing the [[LibTiff]] and [[Symlinks]] exploits.&lt;br /&gt;
* November 2 -- [[JailbreakMe|AppSnapp]] is released, bringing jailbreaking to the mainstream iPhone user.&lt;br /&gt;
&lt;br /&gt;
===October===&lt;br /&gt;
* October 23 -- iPhone-Elite Team releases the [[Virginizer]].&lt;br /&gt;
* October 14 -- [[User:AriX|AriX]] releases iJailBreak, the first automated [[n45ap|iPod touch]] jailbreak for the Mac.&lt;br /&gt;
* October 12 -- [[User:planetbeing|planetbeing]] releases touchFree, the first automated [[N45ap|iPod touch]] jailbreak.&lt;br /&gt;
* October 10 -- niacin, [[cmw]], and dre release the LibTiff exploit to jailbreak the [[N45ap|iPod touch]], which is later adapted for use in [[JailbreakMe|AppSnapp]].&lt;br /&gt;
&lt;br /&gt;
===September===&lt;br /&gt;
* September 27 -- Apple releases iOS 1.1.1.&lt;br /&gt;
* September 11 -- [[iPhone Dev Team]] releases [[iUnlock]], first free software unlock.&lt;br /&gt;
* September 10 -- [[IPSF]] releases first paid software unlock.&lt;br /&gt;
* September 9 -- Apple announces the [[N45ap|iPod touch]] at a media event.&lt;br /&gt;
&lt;br /&gt;
===August===&lt;br /&gt;
* August 23 -- [[User:Geohot|geohot]] and team release [[hardware unlock]] method.&lt;br /&gt;
* August 21 -- [[Installer.app]] is released by Nullriver, first GUI apps are distributed.&lt;br /&gt;
&lt;br /&gt;
===July===&lt;br /&gt;
* July 23 -- First phones are used with other carriers by means of [[SIM hacks]].&lt;br /&gt;
* July 20 -- nightwatch adapts a [[toolchain]] to the iPhone. The first apps are compiled.&lt;br /&gt;
* July 9 -- [[iPhone Dev Team]] releases a [[jailbreak]] method. The first use of this is ringtones.&lt;br /&gt;
* July 3 -- DVD Jon first cracks [[activation]]. People can use the apps on the phone without a subscription.&lt;br /&gt;
&lt;br /&gt;
===June===&lt;br /&gt;
* June 29 -- [[M68ap|iPhone]] is released. World's most hyped consumer product.&lt;br /&gt;
* June 26 -- The [[iPhone Dev Team]] was formed.&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Jailbreak_(S5L8920%2B)&amp;diff=11978</id>
		<title>Jailbreak (S5L8920+)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Jailbreak_(S5L8920%2B)&amp;diff=11978"/>
		<updated>2010-11-02T12:30:25Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* ECID */ Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When the [[N88ap|iPhone 3GS]] was initially released, Apple did not have enough time to fix the [[0x24000 Segment Overflow]] in the [[S5L8920 (Bootrom)|S5L8920]]. However, in order to flash an exploited [[LLB]] and jailbreak the iPhone 3GS, '''one''' of the following needs to be done:&lt;br /&gt;
* Find a new [[iBoot]] exploit every time a new firmware is out.&lt;br /&gt;
* Find a way to bypass the [[ECID]] checks.&lt;br /&gt;
* Use a bootrom exploit that allows unsigned code execution via USB (2 of them were finally found by Geohot and Chronic Dev Team).&lt;br /&gt;
&lt;br /&gt;
This also applies to the iPhone 3GS with [[iBoot-359.3.2|the new bootrom]], [[N18ap|iPod touch 3G]] and later devices, except a bootrom exploit for the normal boot-chain or a library based jailbreak payload (similar to [[Star]]) is needed as well.&lt;br /&gt;
&lt;br /&gt;
==ECID==&lt;br /&gt;
Apple added a new tag to the [[IMG3 File Format]] called ECID. The ECID is ''unique'' to each phone, and its signature is being checked. With this method, Apple attempts to block downgrades once newer firmware becomes available, unless you have a dump of your old firmware's unique IMG3 or signed certificate. Therefore, iBoot exploits won't be so useful for tethered jailbreaks, because such exploits will be closed in new firmwares. [http://iphonejtag.blogspot.com/2009/06/ecid-field-downgrades-no-dice.html].&lt;br /&gt;
&lt;br /&gt;
The issue was resolved when Geohot released his [[limera1n]] tool exploiting bootrom security hole which allowed him to upload unsigned iBoot. Still the problem remains with newer devices with [[0x24000 Segment Overflow|0x24000]] fixed - tampering with firmware makes such jailbreak tethered unless some other exploit is used. &lt;br /&gt;
&lt;br /&gt;
There are methods to help keep your downgrading ability, though.&lt;br /&gt;
&lt;br /&gt;
* If it was cached prior to 3.1's release, 3GS owners were able save a file which contains the signature of the 3.0 [[iBSS]] containing their [[ECID]], using the [http://purplera1n.com/ purplera1n website]. A tool has not been created to incorporate this file into a fully signed iBSS, however. &lt;br /&gt;
* Saurik's servers are actively caching the necessary files. [http://www.saurik.com/id/12#howto Instructions] to use the servers are included.&lt;br /&gt;
* The [[SHSH]] associated with an ECID can be also saved by running [[TinyUmbrella]]. [[TinyUmbrella]] allows the user to restore to whatever version is associated with that [[SHSH]] file permanently. This is based on the aforementioned service [[Saurik]] provides remotely from his server(s).&lt;br /&gt;
&lt;br /&gt;
Release of [[PwnageTool]] 4.1.2 makes storing [[SHSH]]s unnecessary for the time being - there is always a way now for all current iDevices to rollback to jailbroken 4.1 firmware.&lt;br /&gt;
&lt;br /&gt;
==Jailbreak tools==&lt;br /&gt;
===[[K48ap|iPad]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.2&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.2.1&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.2.2&lt;br /&gt;
|-&lt;br /&gt;
| [[Spirit]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Star]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[redsn0w]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|0.9.6b2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N88ap|iPhone 3GS]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;9&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.0&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.0.1&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.1&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.1.2&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.1.3&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 4.0&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 4.0.1&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 4.0.2&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 4.1&lt;br /&gt;
|-&lt;br /&gt;
| [[purplera1n]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[redsn0w]]&lt;br /&gt;
| {{yes|0.8}}&lt;br /&gt;
| {{yes|0.8}}&lt;br /&gt;
| {{yes|0.9.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 0.9.3&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|0.9.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 0.9.3&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|0.9.6b2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[blackra1n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Spirit]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Star]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{partial|Restore from a custom firmware&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|3.1.4}}&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; {{partial|Restore from a custom firmware&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; {{partial|Restore from a custom firmware with unofficial bundle&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|-&lt;br /&gt;
| [[sn0wbreeze]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{partial|1.4&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; or 2.0.2&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{partial|1.5.1&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; or 2.0.2&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{partial|1.7&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt; or 2.0.2&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; {{partial|2.0.2&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] on devices with the [[iBoot-359.3.2|new bootrom]]. Requires usage of the [[usb_control_msg(0x21, 2) Exploit]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; Only applicable for devices with the [[iBoot-359.3|old bootrom]]. Requires the device to have signature checks disabled (pwned).&lt;br /&gt;
&lt;br /&gt;
===[[N90ap|iPhone 4]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0.1&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0.2&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.1&lt;br /&gt;
|-&lt;br /&gt;
| [[Star]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[redsn0w]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|0.9.6b2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N18ap|iPod touch 3G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.1.1&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.1.2&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.1.3&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0.2&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.1&lt;br /&gt;
|-&lt;br /&gt;
| [[blackra1n]]&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[redsn0w]]&lt;br /&gt;
| {{yes|0.9.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 0.9.3&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|0.9.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 0.9.3&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|0.9.6b2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Spirit]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Star]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[sn0wbreeze]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|2.0.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{partial|2.0.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{partial|1.7&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 2.0.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; {{partial|2.0.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]]. Requires usage of the [[usb_control_msg(0x21, 2) Exploit]].&lt;br /&gt;
&lt;br /&gt;
===[[N81ap |iPod touch 4G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.1&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Jailbreak_(S5L8920%2B)&amp;diff=11977</id>
		<title>Jailbreak (S5L8920+)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Jailbreak_(S5L8920%2B)&amp;diff=11977"/>
		<updated>2010-11-02T11:20:21Z</updated>

		<summary type="html">&lt;p&gt;Redart: Now keeping SHSHs is unnecessary to downgrade&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When the [[N88ap|iPhone 3GS]] was initially released, Apple did not have enough time to fix the [[0x24000 Segment Overflow]] in the [[S5L8920 (Bootrom)|S5L8920]]. However, in order to flash an exploited [[LLB]] and jailbreak the iPhone 3GS, '''one''' of the following needs to be done:&lt;br /&gt;
* Find a new [[iBoot]] exploit every time a new firmware is out.&lt;br /&gt;
* Find a way to bypass the [[ECID]] checks.&lt;br /&gt;
* Use a bootrom exploit that allows unsigned code execution via USB (2 of them were finally found by Geohot and Chronic Dev Team).&lt;br /&gt;
&lt;br /&gt;
This also applies to the iPhone 3GS with [[iBoot-359.3.2|the new bootrom]], [[N18ap|iPod touch 3G]] and later devices, except a bootrom exploit for the normal boot-chain or a library based jailbreak payload (similar to [[Star]]) is needed as well.&lt;br /&gt;
&lt;br /&gt;
==ECID==&lt;br /&gt;
Apple added a new tag to the [[IMG3 File Format]] called ECID. The ECID is ''unique'' to each phone, and its signature is being checked. With this method, Apple attempts to block downgrades once newer firmware becomes available, unless you have a dump of your old firmware's unique IMG3 or signed certificate. Therefore, iBoot exploits won't be so useful for tethered jailbreaks, because such exploits will be closed in new firmwares. [http://iphonejtag.blogspot.com/2009/06/ecid-field-downgrades-no-dice.html].&lt;br /&gt;
&lt;br /&gt;
The issue was resolved when Geohot released his [[limera1n]] tool exploiting bootrom security hole which allowed him to upload unsigend iBoot. Still the problem remains with newer devices with [[0x24000 Segment Overflow|0x24000]] fixed - tampering with firmware makes such jailbreak tethered unless some other exploit is used. &lt;br /&gt;
&lt;br /&gt;
There are methods to help keep your downgrading ability, though.&lt;br /&gt;
&lt;br /&gt;
* If it was cached prior to 3.1's release, 3GS owners were able save a file which contains the signature of the 3.0 [[iBSS]] containing their [[ECID]], using the [http://purplera1n.com/ purplera1n website]. A tool has not been created to incorporate this file into a fully signed iBSS, however. &lt;br /&gt;
* Saurik's servers are actively caching the necessary files. [http://www.saurik.com/id/12#howto Instructions] to use the servers are included.&lt;br /&gt;
* The [[SHSH]] associated with an ECID can be also saved by running [[TinyUmbrella]]. [[TinyUmbrella]] allows the user to restore to whatever version is associated with that [[SHSH]] file permanently. This is based on the aforementioned service [[Saurik]] provides remotely from his server(s).&lt;br /&gt;
&lt;br /&gt;
Release of [[PwnageTool]] 4.1.2 makes storing [[SHSH]]s unnecessary for the time being - there is always a way now for all current iDevices to rollback to jailbroken 4.1 firmware.&lt;br /&gt;
&lt;br /&gt;
==Jailbreak tools==&lt;br /&gt;
===[[K48ap|iPad]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.2&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.2.1&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.2.2&lt;br /&gt;
|-&lt;br /&gt;
| [[Spirit]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Star]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[redsn0w]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|0.9.6b2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N88ap|iPhone 3GS]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;9&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.0&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.0.1&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.1&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.1.2&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 3.1.3&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 4.0&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 4.0.1&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 4.0.2&lt;br /&gt;
|style=&amp;quot;width:90px;&amp;quot;| 4.1&lt;br /&gt;
|-&lt;br /&gt;
| [[purplera1n]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[redsn0w]]&lt;br /&gt;
| {{yes|0.8}}&lt;br /&gt;
| {{yes|0.8}}&lt;br /&gt;
| {{yes|0.9.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 0.9.3&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|0.9.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 0.9.3&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|0.9.6b2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[blackra1n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Spirit]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Star]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{partial|Restore from a custom firmware&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|3.1.4}}&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; {{partial|Restore from a custom firmware&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; {{partial|Restore from a custom firmware with unofficial bundle&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|-&lt;br /&gt;
| [[sn0wbreeze]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{partial|1.4&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; or 2.0.2&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{partial|1.5.1&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; or 2.0.2&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{partial|1.7&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt; or 2.0.2&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; {{partial|2.0.2&amp;lt;sup&amp;gt;1 2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]] on devices with the [[iBoot-359.3.2|new bootrom]]. Requires usage of the [[usb_control_msg(0x21, 2) Exploit]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; Only applicable for devices with the [[iBoot-359.3|old bootrom]]. Requires the device to have signature checks disabled (pwned).&lt;br /&gt;
&lt;br /&gt;
===[[N90ap|iPhone 4]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0.1&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0.2&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.1&lt;br /&gt;
|-&lt;br /&gt;
| [[Star]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[redsn0w]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|0.9.6b2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N18ap|iPod touch 3G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.1.1&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.1.2&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 3.1.3&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.0.2&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.1&lt;br /&gt;
|-&lt;br /&gt;
| [[blackra1n]]&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|Yes&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[redsn0w]]&lt;br /&gt;
| {{yes|0.9.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 0.9.3&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{yes|0.9.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 0.9.3&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|0.9.6b2}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Spirit]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Star]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[sn0wbreeze]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|2.0.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{partial|2.0.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{partial|1.7&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; or 2.0.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; {{partial|2.0.2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; [[Tethered jailbreak]]. Requires usage of the [[usb_control_msg(0x21, 2) Exploit]].&lt;br /&gt;
&lt;br /&gt;
===[[N81ap |iPod touch 4G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| [[Jailbreak]] Tool&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Works with [[firmware]]...&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:100px;&amp;quot;| 4.1&lt;br /&gt;
|-&lt;br /&gt;
| [[limera1n]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[greenpois0n]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PwnageTool]]&lt;br /&gt;
| {{yes|4.1}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=11638</id>
		<title>RiPDev</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=11638"/>
		<updated>2010-10-29T10:08:14Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* iPref */ Added some info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RiPDev (Russian iPhone Developers) was a popular group of iPhone software developers, created in 2007 by Slava Karpenko aka [https://twitter.com/slavikus @slavikus]. First product of that team was free Russian Keyboard as part of commercial Russian Project for iPhone OS 1.x.x. Later RiPDev made many very useful applications such as 'Hood,' an SBSettings alternative. They made Icy, a popular [[APT]] package installer. As of iOS 4, most of their iOS projects no longer work.&lt;br /&gt;
&lt;br /&gt;
They made an application called InstallerApp that allowed users to install jailbroken apps on a device via the computer. It worked for some time than slowly faded away since not many users wanted to pay for it. It was a very well made application and soon enough RipDev gave up on the project. They have several language packages and most of their software had language options for over 30 languages.&lt;br /&gt;
&lt;br /&gt;
RiPDev was heavily criticised by well-known Russian blogger Eldar Murtazin for illegal enterprise since they never paid any taxes for their revenues. &lt;br /&gt;
&lt;br /&gt;
The team was dismissed in the late 2009, when it became obvious that it had no working business model.&lt;br /&gt;
&lt;br /&gt;
==Icy==&lt;br /&gt;
[[Image:IcyIcon.png|75px|right]]&lt;br /&gt;
Icy is a lightweight APT package installer that was both themeable and produced in over 30 languages. It works perfectly on 2.x-3.1.2, and it is being updated by many for iOS 4. Icy was a very advanced installer but had its issues. RiPDev tried to reinvent APT and in return lost a lot of popular features and made the repository owners have to do a lot more work then repository owners would have for [[Cydia Application|Cydia]]. [[Saurik]] explained this when Icy was released some time back.&lt;br /&gt;
&lt;br /&gt;
==Hood==&lt;br /&gt;
[[Image:Hood1.png|200px|right]]&lt;br /&gt;
Hood was an alternative to [[SBSettings]]. The arrow on the bottom of the window, when clicked would bring up a process list were you can kill user processes, a long with a wifi on-off toggle, Bluetooth on-off, Edge on-off and the last button was customizable to either close the current application, or respring.&lt;br /&gt;
&lt;br /&gt;
==InstallerApp==&lt;br /&gt;
InstallerApp was said to be the 'iTunes for jailbreakers'. It allowed users to install apps from repositories, download, and install immediatly which was a much better solution then having to decide between [[Cydia Application|Cydia]] and Installer (Predecessor to Icy). Sadly this application took a lot of work to make true, and never really became a hit in the community. The Russian iPhone Developers never released the source to this application since users had to pay for it. The application had many features, One of the main was called &amp;quot;Pusher&amp;quot; which asked you to put your device into DFU mode, then uploaded the RipDev application titled Pusher to your device, and from there would install all of your applications that you downloaded.&lt;br /&gt;
&lt;br /&gt;
==i2Reader Pro==&lt;br /&gt;
Apple details it as an innovate, award winning eBook reader. Development of app continued by one of former RiPDev members under Unsanity brand. It is now in the [http://itunes.apple.com/app/i2reader/id322680924?mt=8 App Store] and is still a very successful eBook reader to this day.&lt;br /&gt;
&lt;br /&gt;
==iPref==&lt;br /&gt;
[http://itunes.apple.com/app/ipref/id299918217?mt=8 iPref] is a Preference card game that has a great User Interface and defiantly had a lot of work put into it. There was a controversary &lt;br /&gt;
on whether game algorithms were stolen from [http://sourceforge.net/projects/openpref/ OpenPref] project without permission of its mantainer.&lt;br /&gt;
&lt;br /&gt;
==Kate==&lt;br /&gt;
Kate is a package of unique tools and tweaks for your iDevice. There were individual packages that you could install that could give you more customization options geared towards making your iDevice way more productive and Entertaining. There were business tools, quick contact searches, system font replacements, lockscreen calendar, and a Smart Dialer . Was originally named Caterpillar&lt;br /&gt;
&lt;br /&gt;
==More==&lt;br /&gt;
RipDev had made several more amazing projects and several of them have taken on new lives in the App Store such as their famous Pool game. RipDev is no longer making products or supporting the ones they have. RipDev's repo closed around October 1st and the RussianApple repository has their products stored on their repository at [http://repo.russianapple.ru http://repo.russianapple.ru]. Many of these products do not work on iOS4 sadly.&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=11637</id>
		<title>RiPDev</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=11637"/>
		<updated>2010-10-29T09:55:29Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* i2Reader Pro */ Added link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RiPDev (Russian iPhone Developers) was a popular group of iPhone software developers, created in 2007 by Slava Karpenko aka [https://twitter.com/slavikus @slavikus]. First product of that team was free Russian Keyboard as part of commercial Russian Project for iPhone OS 1.x.x. Later RiPDev made many very useful applications such as 'Hood,' an SBSettings alternative. They made Icy, a popular [[APT]] package installer. As of iOS 4, most of their iOS projects no longer work.&lt;br /&gt;
&lt;br /&gt;
They made an application called InstallerApp that allowed users to install jailbroken apps on a device via the computer. It worked for some time than slowly faded away since not many users wanted to pay for it. It was a very well made application and soon enough RipDev gave up on the project. They have several language packages and most of their software had language options for over 30 languages.&lt;br /&gt;
&lt;br /&gt;
RiPDev was heavily criticised by well-known Russian blogger Eldar Murtazin for illegal enterprise since they never paid any taxes for their revenues. &lt;br /&gt;
&lt;br /&gt;
The team was dismissed in the late 2009, when it became obvious that it had no working business model.&lt;br /&gt;
&lt;br /&gt;
==Icy==&lt;br /&gt;
[[Image:IcyIcon.png|75px|right]]&lt;br /&gt;
Icy is a lightweight APT package installer that was both themeable and produced in over 30 languages. It works perfectly on 2.x-3.1.2, and it is being updated by many for iOS 4. Icy was a very advanced installer but had its issues. RiPDev tried to reinvent APT and in return lost a lot of popular features and made the repository owners have to do a lot more work then repository owners would have for [[Cydia Application|Cydia]]. [[Saurik]] explained this when Icy was released some time back.&lt;br /&gt;
&lt;br /&gt;
==Hood==&lt;br /&gt;
[[Image:Hood1.png|200px|right]]&lt;br /&gt;
Hood was an alternative to [[SBSettings]]. The arrow on the bottom of the window, when clicked would bring up a process list were you can kill user processes, a long with a wifi on-off toggle, Bluetooth on-off, Edge on-off and the last button was customizable to either close the current application, or respring.&lt;br /&gt;
&lt;br /&gt;
==InstallerApp==&lt;br /&gt;
InstallerApp was said to be the 'iTunes for jailbreakers'. It allowed users to install apps from repositories, download, and install immediatly which was a much better solution then having to decide between [[Cydia Application|Cydia]] and Installer (Predecessor to Icy). Sadly this application took a lot of work to make true, and never really became a hit in the community. The Russian iPhone Developers never released the source to this application since users had to pay for it. The application had many features, One of the main was called &amp;quot;Pusher&amp;quot; which asked you to put your device into DFU mode, then uploaded the RipDev application titled Pusher to your device, and from there would install all of your applications that you downloaded.&lt;br /&gt;
&lt;br /&gt;
==i2Reader Pro==&lt;br /&gt;
Apple details it as an innovate, award winning eBook reader. Development of app continued by one of former RiPDev members under Unsanity brand. It is now in the [http://itunes.apple.com/app/i2reader/id322680924?mt=8 App Store] and is still a very successful eBook reader to this day.&lt;br /&gt;
&lt;br /&gt;
==iPref==&lt;br /&gt;
[http://itunes.apple.com/app/ipref/id299918217?mt=8 iPref] is a Preference card game that has a great User Interface and defiantly had a lot of work put into it.&lt;br /&gt;
&lt;br /&gt;
==Kate==&lt;br /&gt;
Kate is a package of unique tools and tweaks for your iDevice. There were individual packages that you could install that could give you more customization options geared towards making your iDevice way more productive and Entertaining. There were business tools, quick contact searches, system font replacements, lockscreen calendar, and a Smart Dialer . Was originally named Caterpillar&lt;br /&gt;
&lt;br /&gt;
==More==&lt;br /&gt;
RipDev had made several more amazing projects and several of them have taken on new lives in the App Store such as their famous Pool game. RipDev is no longer making products or supporting the ones they have. RipDev's repo closed around October 1st and the RussianApple repository has their products stored on their repository at [http://repo.russianapple.ru http://repo.russianapple.ru]. Many of these products do not work on iOS4 sadly.&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=11636</id>
		<title>RiPDev</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=11636"/>
		<updated>2010-10-29T09:54:08Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* iPref */ Added link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RiPDev (Russian iPhone Developers) was a popular group of iPhone software developers, created in 2007 by Slava Karpenko aka [https://twitter.com/slavikus @slavikus]. First product of that team was free Russian Keyboard as part of commercial Russian Project for iPhone OS 1.x.x. Later RiPDev made many very useful applications such as 'Hood,' an SBSettings alternative. They made Icy, a popular [[APT]] package installer. As of iOS 4, most of their iOS projects no longer work.&lt;br /&gt;
&lt;br /&gt;
They made an application called InstallerApp that allowed users to install jailbroken apps on a device via the computer. It worked for some time than slowly faded away since not many users wanted to pay for it. It was a very well made application and soon enough RipDev gave up on the project. They have several language packages and most of their software had language options for over 30 languages.&lt;br /&gt;
&lt;br /&gt;
RiPDev was heavily criticised by well-known Russian blogger Eldar Murtazin for illegal enterprise since they never paid any taxes for their revenues. &lt;br /&gt;
&lt;br /&gt;
The team was dismissed in the late 2009, when it became obvious that it had no working business model.&lt;br /&gt;
&lt;br /&gt;
==Icy==&lt;br /&gt;
[[Image:IcyIcon.png|75px|right]]&lt;br /&gt;
Icy is a lightweight APT package installer that was both themeable and produced in over 30 languages. It works perfectly on 2.x-3.1.2, and it is being updated by many for iOS 4. Icy was a very advanced installer but had its issues. RiPDev tried to reinvent APT and in return lost a lot of popular features and made the repository owners have to do a lot more work then repository owners would have for [[Cydia Application|Cydia]]. [[Saurik]] explained this when Icy was released some time back.&lt;br /&gt;
&lt;br /&gt;
==Hood==&lt;br /&gt;
[[Image:Hood1.png|200px|right]]&lt;br /&gt;
Hood was an alternative to [[SBSettings]]. The arrow on the bottom of the window, when clicked would bring up a process list were you can kill user processes, a long with a wifi on-off toggle, Bluetooth on-off, Edge on-off and the last button was customizable to either close the current application, or respring.&lt;br /&gt;
&lt;br /&gt;
==InstallerApp==&lt;br /&gt;
InstallerApp was said to be the 'iTunes for jailbreakers'. It allowed users to install apps from repositories, download, and install immediatly which was a much better solution then having to decide between [[Cydia Application|Cydia]] and Installer (Predecessor to Icy). Sadly this application took a lot of work to make true, and never really became a hit in the community. The Russian iPhone Developers never released the source to this application since users had to pay for it. The application had many features, One of the main was called &amp;quot;Pusher&amp;quot; which asked you to put your device into DFU mode, then uploaded the RipDev application titled Pusher to your device, and from there would install all of your applications that you downloaded.&lt;br /&gt;
&lt;br /&gt;
==i2Reader Pro==&lt;br /&gt;
Apple details it as an innovate, award winning eBook reader. Development of app continued by one of former RiPDev members under Unsanity brand. It is now in the App Store and is still a very successful eBook reader to this day.&lt;br /&gt;
&lt;br /&gt;
==iPref==&lt;br /&gt;
[http://itunes.apple.com/app/ipref/id299918217?mt=8 iPref] is a Preference card game that has a great User Interface and defiantly had a lot of work put into it.&lt;br /&gt;
&lt;br /&gt;
==Kate==&lt;br /&gt;
Kate is a package of unique tools and tweaks for your iDevice. There were individual packages that you could install that could give you more customization options geared towards making your iDevice way more productive and Entertaining. There were business tools, quick contact searches, system font replacements, lockscreen calendar, and a Smart Dialer . Was originally named Caterpillar&lt;br /&gt;
&lt;br /&gt;
==More==&lt;br /&gt;
RipDev had made several more amazing projects and several of them have taken on new lives in the App Store such as their famous Pool game. RipDev is no longer making products or supporting the ones they have. RipDev's repo closed around October 1st and the RussianApple repository has their products stored on their repository at [http://repo.russianapple.ru http://repo.russianapple.ru]. Many of these products do not work on iOS4 sadly.&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=11635</id>
		<title>RiPDev</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=11635"/>
		<updated>2010-10-29T09:51:18Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* i2Reader Pro */ Unsanity=RiPDev&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RiPDev (Russian iPhone Developers) was a popular group of iPhone software developers, created in 2007 by Slava Karpenko aka [https://twitter.com/slavikus @slavikus]. First product of that team was free Russian Keyboard as part of commercial Russian Project for iPhone OS 1.x.x. Later RiPDev made many very useful applications such as 'Hood,' an SBSettings alternative. They made Icy, a popular [[APT]] package installer. As of iOS 4, most of their iOS projects no longer work.&lt;br /&gt;
&lt;br /&gt;
They made an application called InstallerApp that allowed users to install jailbroken apps on a device via the computer. It worked for some time than slowly faded away since not many users wanted to pay for it. It was a very well made application and soon enough RipDev gave up on the project. They have several language packages and most of their software had language options for over 30 languages.&lt;br /&gt;
&lt;br /&gt;
RiPDev was heavily criticised by well-known Russian blogger Eldar Murtazin for illegal enterprise since they never paid any taxes for their revenues. &lt;br /&gt;
&lt;br /&gt;
The team was dismissed in the late 2009, when it became obvious that it had no working business model.&lt;br /&gt;
&lt;br /&gt;
==Icy==&lt;br /&gt;
[[Image:IcyIcon.png|75px|right]]&lt;br /&gt;
Icy is a lightweight APT package installer that was both themeable and produced in over 30 languages. It works perfectly on 2.x-3.1.2, and it is being updated by many for iOS 4. Icy was a very advanced installer but had its issues. RiPDev tried to reinvent APT and in return lost a lot of popular features and made the repository owners have to do a lot more work then repository owners would have for [[Cydia Application|Cydia]]. [[Saurik]] explained this when Icy was released some time back.&lt;br /&gt;
&lt;br /&gt;
==Hood==&lt;br /&gt;
[[Image:Hood1.png|200px|right]]&lt;br /&gt;
Hood was an alternative to [[SBSettings]]. The arrow on the bottom of the window, when clicked would bring up a process list were you can kill user processes, a long with a wifi on-off toggle, Bluetooth on-off, Edge on-off and the last button was customizable to either close the current application, or respring.&lt;br /&gt;
&lt;br /&gt;
==InstallerApp==&lt;br /&gt;
InstallerApp was said to be the 'iTunes for jailbreakers'. It allowed users to install apps from repositories, download, and install immediatly which was a much better solution then having to decide between [[Cydia Application|Cydia]] and Installer (Predecessor to Icy). Sadly this application took a lot of work to make true, and never really became a hit in the community. The Russian iPhone Developers never released the source to this application since users had to pay for it. The application had many features, One of the main was called &amp;quot;Pusher&amp;quot; which asked you to put your device into DFU mode, then uploaded the RipDev application titled Pusher to your device, and from there would install all of your applications that you downloaded.&lt;br /&gt;
&lt;br /&gt;
==i2Reader Pro==&lt;br /&gt;
Apple details it as an innovate, award winning eBook reader. Development of app continued by one of former RiPDev members under Unsanity brand. It is now in the App Store and is still a very successful eBook reader to this day.&lt;br /&gt;
&lt;br /&gt;
==iPref==&lt;br /&gt;
iPref was a very innovative card game that had a great User Interface and defiantly had a lot of work put into it. Sadly iPref does not work on anything higher than 3.1.3 and it is /not/ in the App Store although several people have offered to continue the project. Most of the people who paid for a copy of iPref can no longer use theirs because the ripdev web site has been shut down making it impossible for the application to authorize the activation code.&lt;br /&gt;
==Kate==&lt;br /&gt;
Kate is a package of unique tools and tweaks for your iDevice. There were individual packages that you could install that could give you more customization options geared towards making your iDevice way more productive and Entertaining. There were business tools, quick contact searches, system font replacements, lockscreen calendar, and a Smart Dialer . Was originally named Caterpillar&lt;br /&gt;
&lt;br /&gt;
==More==&lt;br /&gt;
RipDev had made several more amazing projects and several of them have taken on new lives in the App Store such as their famous Pool game. RipDev is no longer making products or supporting the ones they have. RipDev's repo closed around October 1st and the RussianApple repository has their products stored on their repository at [http://repo.russianapple.ru http://repo.russianapple.ru]. Many of these products do not work on iOS4 sadly.&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:Incomplete_Codesign_Exploit&amp;diff=10921</id>
		<title>Talk:Incomplete Codesign Exploit</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:Incomplete_Codesign_Exploit&amp;diff=10921"/>
		<updated>2010-10-21T07:44:07Z</updated>

		<summary type="html">&lt;p&gt;Redart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This has to be one of the most puzzling exploits in iOS. Since it was revealed in 3.1.3/3.2, Apple has yet to close it in 4.0, 4.02, or 4.1 or even 4.2 betas. &lt;br /&gt;
&lt;br /&gt;
Somehow, once you stick a dynamic library or other goody with some sort of &amp;quot;incomplete codesign&amp;quot; magic in the right location and add a startup service, iOS will execute it. Perhaps Apple has no way to fix this without breaking other things?&lt;br /&gt;
[[User:Iemit737|Iemit737]] 00:23, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
AFAIK IncompleteCodesignExploit is an exploit in WWDR Cert Checking that allows ppl to create fake entitlements. Obviously I'm not sure it works in this way. --[[User:Qwertyoruiop|Qwertyoruiop]] 00:41, 10 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Should we decribe it or is it better to wait until Apple fixes it? --[[User:Redart|Redart]] 07:44, 21 October 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=10762</id>
		<title>RiPDev</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=10762"/>
		<updated>2010-10-19T18:38:13Z</updated>

		<summary type="html">&lt;p&gt;Redart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RiPDev (Russian iPhone Developers) was a popular group of iPhone software developers, created in 2007 by Slava Karpenko aka [http://twitter.com/#!/slavikus @slavikus]. First product of that team was free Russian Keyboard as part of commercial Russian Project for iPhone OS 1.x.x. Later RipDev made many very useful applications such as 'Hood' which was an [[SBsettings]] alternative. They made Icy, a popular [[APT]] package installer. Most of their iOS Projects no longer work on versions of iOS4 or higher.[[Image:IcyIcon.png|180px|right]]&lt;br /&gt;
&lt;br /&gt;
They made an application called InstallerApp that allowed users to install jailbroken apps on a device via the computer. It worked for some time than slowly faded away since not many users wanted to pay for it. It was a very well made application and soon enough RipDev gave up on the project. They have several language packages and most of their software had language options for over 30 languages.&lt;br /&gt;
&lt;br /&gt;
RiPDev was heavily criticised by well-known Russian blogger Eldar Murtazin for illegal enterprise since they never paid any taxes for their revenues. &lt;br /&gt;
&lt;br /&gt;
The team was dismissed in the late 2009, when it became obvious that it has no working business model.&lt;br /&gt;
&lt;br /&gt;
==Icy==&lt;br /&gt;
Icy is a lightweight APT package installer that was both themeable, and was produced in over 30 languages. It works perfectly on 2.x-3.1.2, and it is being updated by many for iOS4. Icy was a very advanced installer but had its issues. RiPDev tried to reinvent APT and in return lost a lot of popular features and made the repository owners have to do a lot more work then repository owners would have for [[Cydia]]. [[Saurik]] explained this when Icy was released some time back.&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=10761</id>
		<title>RiPDev</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=10761"/>
		<updated>2010-10-19T18:37:08Z</updated>

		<summary type="html">&lt;p&gt;Redart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RiPDev (Russian iPhone Developers) was a popular group of iPhone software developers, created in 2007 by Slava Karpenko aka [http://twitter.com/#!/slavikus @slavikus]. First product of that team was free Russian Keyboard as part of commercial Russian Project for iPhone OS 1.x.x. Later RipDev made many very useful applications such as 'Hood' which was an [[SBsettings]] alternative. They made Icy, a popular [[APT]] package installer. Most of their iOS Projects no longer work on versions of iOS4 or higher.[[Image:IcyIcon.png|180px|right]]&lt;br /&gt;
&lt;br /&gt;
They made an application called InstallerApp that allowed users to install jailbroken apps on a device via the computer. It worked for some time than slowly faded away since not many users wanted to pay for it. It was a very well made application and soon enough RipDev gave up on the project. They have several language packages and most of their software had language options for over 30 languages.&lt;br /&gt;
&lt;br /&gt;
RipDev was criticised by well-known Russian blogger Eldar Murtazin for illegal enterprise since they never paid any taxes for their revenues. &lt;br /&gt;
&lt;br /&gt;
The team was closed in the late 2009, when it became obvious that it has no working business model.&lt;br /&gt;
&lt;br /&gt;
==Icy==&lt;br /&gt;
Icy is a lightweight APT package installer that was both themeable, and was produced in over 30 languages. It works perfectly on 2.x-3.1.2, and it is being updated by many for iOS4. Icy was a very advanced installer but had its issues. RiPDev tried to reinvent APT and in return lost a lot of popular features and made the repository owners have to do a lot more work then repository owners would have for [[Cydia]]. [[Saurik]] explained this when Icy was released some time back.&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=10760</id>
		<title>RiPDev</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=10760"/>
		<updated>2010-10-19T18:35:00Z</updated>

		<summary type="html">&lt;p&gt;Redart: Moved paragraph&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RipDev (Russian iPhone Developers) was a popular group of iPhone software developers, created in 2007 by Slava Karpenko aka [http://twitter.com/#!/slavikus @slavikus]. First product of that team was free Russian Keyboard as part of commercial Russian Project for iPhone OS 1.x.x. Later RipDev made many very useful applications such as 'Hood' which was an [[SBsettings]] alternative. They made Icy, a popular [[APT]] package installer. Most of their iOS Projects no longer work on versions of iOS4 or higher.[[Image:IcyIcon.png|180px|right]]&lt;br /&gt;
&lt;br /&gt;
They made an application called InstallerApp that allowed users to install jailbroken apps on a device via the computer. It worked for some time than slowly faded away since not many users wanted to pay for it. It was a very well made application and soon enough RipDev gave up on the project. They have several language packages and most of their software had language options for over 30 languages.&lt;br /&gt;
&lt;br /&gt;
RipDev was criticised by well-known Russian blogger Eldar Murtazin for illegal enterprise since they never paid any taxes for their revenues. &lt;br /&gt;
&lt;br /&gt;
The team was closed in the late 2009, when it became obvious that it has no working business model.&lt;br /&gt;
&lt;br /&gt;
==Icy==&lt;br /&gt;
Icy is a lightweight APT package installer that was both themeable, and was produced in over 30 languages. It works perfectly on 2.x-3.1.2, and it is being updated by many for iOS4. Icy was a very advanced installer but had its issues. RiPDev tried to reinvent APT and in return lost a lot of popular features and made the repository owners have to do a lot more work then repository owners would have for [[Cydia]]. [[Saurik]] explained this when Icy was released some time back.&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=10759</id>
		<title>RiPDev</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=RiPDev&amp;diff=10759"/>
		<updated>2010-10-19T18:34:11Z</updated>

		<summary type="html">&lt;p&gt;Redart: Some info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RipDev (Russian iPhone Developers) was a popular group of iPhone software developers, created in 2007 by Slava Karpenko aka [http://twitter.com/#!/slavikus @slavikus]. First product of that team was free Russian Keyboard as part of commercial Russian Project for iPhone OS 1.x.x. Later RipDev made many very useful applications such as 'Hood' which was an [[SBsettings]] alternative. They made Icy, a popular [[APT]] package installer. Most of their iOS Projects no longer work on versions of iOS4 or higher.[[Image:IcyIcon.png|180px|right]]&lt;br /&gt;
&lt;br /&gt;
They made an application called InstallerApp that allowed users to install jailbroken apps on a device via the computer. It worked for some time than slowly faded away since not many users wanted to pay for it. It was a very well made application and soon enough RipDev gave up on the project. They have several language packages and most of their software had language options for over 30 languages.&lt;br /&gt;
&lt;br /&gt;
==Icy==&lt;br /&gt;
Icy is a lightweight APT package installer that was both themeable, and was produced in over 30 languages. It works perfectly on 2.x-3.1.2, and it is being updated by many for iOS4. Icy was a very advanced installer but had its issues. RiPDev tried to reinvent APT and in return lost a lot of popular features and made the repository owners have to do a lot more work then repository owners would have for [[Cydia]]. [[Saurik]] explained this when Icy was released some time back.&lt;br /&gt;
&lt;br /&gt;
RipDev was criticised by well-known Russian blogger Eldar Murtazin for illegal enterprise since they never paid any taxes for their revenues. &lt;br /&gt;
&lt;br /&gt;
The team was closed in the late 2009, when it became obvious that it has no working business model.&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Star&amp;diff=10543</id>
		<title>Star</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Star&amp;diff=10543"/>
		<updated>2010-10-13T12:54:57Z</updated>

		<summary type="html">&lt;p&gt;Redart: Some clarification&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Star.jpg|thumb|Star on an [[N72ap|iPod touch 2G]].]]&lt;br /&gt;
Star is a userland [[jailbreak]] from [[User:Comex|comex]] that utilizes two new exploits to jailbreak iOS 3.1.2 through 4.0.1 (except for 3.2.2). Star warns that 3.1.2 and 3.1.3 are known to fail on [[N18ap|iPod touch 3G]], and that performing a fresh restore to 4.0(.1) is recommended. It can be used via [[JailbreakMe]]. With the release of iOS 4.0.2 (and iOS 3.2.2 for [[K48ap|iPad]]s) on 11 August 2010, the vulnerabilities were fixed so that it doesn't work anymore.&lt;br /&gt;
&lt;br /&gt;
==Payloads==&lt;br /&gt;
*[[PDF CFF Font Stack Overflow]] The first payload is deployed via a HTTP redirect to a PDF file. The PDF contains a CFF font with a malformed type 2 charstring, which contains commands to repeatedly push and duplicate random numbers onto an &amp;quot;argument stack&amp;quot;. This allows arbitrary code execution due to stack overflow in CFF parser inside FreeType 2 library used by iPhone. Then an integer overflow in [[IOSurface Kernel Exploit|IOSurface.framework]] used to get root access and privileges.[http://support.apple.com/kb/HT4291]&lt;br /&gt;
*The second payload (wad.bin) contains Cydia and code to install it into filesystem.&lt;br /&gt;
&lt;br /&gt;
==PDF Patch==&lt;br /&gt;
Because this jailbreak revealed a new major security hole in iOS, it could also be adopted by rogue developers to create malware to take over your [[iPad]]/[[iPhone]]/[[iPod touch]]. Therefore it is highly recommended to install [https://twitter.com/saurik/status/20958834996 the patch] [[saurik]] released via Cydia in order to keep your device safe.&lt;br /&gt;
&lt;br /&gt;
==Analysys==&lt;br /&gt;
First, the process uses the PDF Compact Font Format vulnerability (CVE-2010-1797). To our surprise, it’s a simple stack-based buffer overflow. With this vulnerability, an overly long CFF charString entry ends up with attacker-controlled $pc. Many people think of Return Oriented Programming (ROP) as a rather immature technique to use for complicated jobs. But the jailbreakme shellcode uses ROP to execute more than a total of 150 API calls. This means non-executable memory is not a defense against these kinds of memory corruption attacks. Looks as if the current ROP technique for iPhone exploitation is very mature and stable.&lt;br /&gt;
&lt;br /&gt;
The ROP payload actually abuses an undisclosed kernel vulnerability residing in an IOSurface component from Apple. It seems that the vulnerability allows a normal process to have access to kernel memory with write privileges. After it modifies kernel space data to circumvent security checks, it calls “setuid(0)” to get root access. So, the game is pretty much over at this point. The Safari process at this point has root user privileges, and it can do whatever it wants.&lt;br /&gt;
&lt;br /&gt;
After this exploitation phase, it drops the “installui.dylib” shared library, loads it, and executes the “iui_go” function from the library. This allows some UI text to be displayed on the user’s screen to ask whether to go forward with jailbreaking. Then it downloads the “wad.bin” file from the jailbreakme site and extracts necessary files like “install.dylib” from there, and then executes the “do_install” function from there, which will do the typical jailbreaking process. All these operations are possible because the Safari process has root access acquired using the kernel bug.&lt;br /&gt;
&lt;br /&gt;
The jailbreaking phase involves something like moving some system directories and modifying essential system files like “/etc/fstab”. Also it directly accesses the “/dev/kmem” device to patch kernel flags or code. And finally it installs the “Cydia” installer package and restarts SpringBoard using the “uicache” command.&lt;br /&gt;
&lt;br /&gt;
via[http://www.gadgetsdna.com/iphone-ios-4-0-1-jailbreak-execution-flow-using-pdf-exploit/5456/]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
*[http://github.com/comex/star Sourcecode for Star]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Star&amp;diff=10542</id>
		<title>Star</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Star&amp;diff=10542"/>
		<updated>2010-10-13T12:48:33Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* Payloads */ Added link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Star.jpg|thumb|Star on an [[N72ap|iPod touch 2G]].]]&lt;br /&gt;
Star is a userland [[jailbreak]] from [[User:Comex|comex]] that utilizes two new exploits to jailbreak iOS 3.1.2 through 4.0.1 (except for 3.2.2). Star warns that 3.1.2 and 3.1.3 are known to fail on [[N18ap|iPod touch 3G]], and that performing a fresh restore to 4.0(.1) is recommended. It can be used via [[JailbreakMe]]. With the release of iOS 4.0.2 (and iOS 3.2.2 for [[K48ap|iPad]]s) on 11 August 2010, the vulnerabilities were fixed so that it doesn't work anymore.&lt;br /&gt;
&lt;br /&gt;
==Payloads==&lt;br /&gt;
*[[PDF CFF Font Stack Overflow]] The first payload is deployed via a HTTP redirect to a PDF file. The PDF contains a CFF font with a malformed type 2 charstring, which contains commands to repeatedly push and duplicate random numbers onto an &amp;quot;argument stack&amp;quot;. This allows arbitrary code execution due to stack overflow in CFF parser inside FreeType 2 library used by iPhone.&lt;br /&gt;
*The second payload (wad.bin) use an integer overflow in [[IOSurface Kernel Exploit|IOSurface.framework]] to get root access and privileges in order to jailbreak.[http://support.apple.com/kb/HT4291]&lt;br /&gt;
&lt;br /&gt;
==PDF Patch==&lt;br /&gt;
Because this jailbreak revealed a new major security hole in iOS, it could also be adopted by rogue developers to create malware to take over your [[iPad]]/[[iPhone]]/[[iPod touch]]. Therefore it is highly recommended to install [https://twitter.com/saurik/status/20958834996 the patch] [[saurik]] released via Cydia in order to keep your device safe.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
*[http://github.com/comex/star Sourcecode for Star]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=IOSurface_Kernel_Exploit&amp;diff=10541</id>
		<title>IOSurface Kernel Exploit</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=IOSurface_Kernel_Exploit&amp;diff=10541"/>
		<updated>2010-10-13T12:26:43Z</updated>

		<summary type="html">&lt;p&gt;Redart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This vulnerability, along with the [[Malformed_CFF_Vulnerability]], was used in [[Star]]/[[JailbreakMe]] 2.0. It is a buffers overflow in the handling of the [http://iphonedevwiki.net/index.php/IOCoreSurfaceRoot kernel-extension for managing pixel buffers] used to get root privileges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== exploit ==&lt;br /&gt;
&lt;br /&gt;
Selector 19 was Vulnerability to a buffers overflow that allow access to the root filesystem without making the kernel fail signature checks&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Selector !! Action !! Input !! Output&lt;br /&gt;
|-&lt;br /&gt;
| 0 || lookupFromMachPort || - || 1,208 bytes of stuff&lt;br /&gt;
|-&lt;br /&gt;
| 1 || release || IOSurfaceID ''surfaceID'' || -&lt;br /&gt;
|-&lt;br /&gt;
| 2 || lock || struct IOSurfaceLockArg || 1,208 bytes of stuff &lt;br /&gt;
|-&lt;br /&gt;
| 3 || unlock || struct IOSurfaceLockArg || struct IOSurfaceLockSeedArg &lt;br /&gt;
|-&lt;br /&gt;
| 4 || lockPlane || struct IOSurfaceLockArg || 1,208 bytes of stuff &lt;br /&gt;
|-&lt;br /&gt;
| 5 || unlockPlane || struct IOSurfaceLockArg || struct IOSurfaceLockSeedArg &lt;br /&gt;
|-&lt;br /&gt;
| 6 || lookup || void* ''???'' || 1,208 bytes of stuff &lt;br /&gt;
|-&lt;br /&gt;
| 7 || setYCbCrMatrix || IOSurfaceID ''surfaceID'', uint32_t ''YCbCrMatrix'' || -&lt;br /&gt;
|-&lt;br /&gt;
| 8 || wrapClientImage || 28 bytes of stuff || 1,208 bytes of stuff &lt;br /&gt;
|-&lt;br /&gt;
| 9 || wrapClientMemory || void* ''param0'', void* ''param1'' || 1,208 bytes of stuff&lt;br /&gt;
|-&lt;br /&gt;
| 10 || getYCbCrMatrix || IOSurfaceID ''surfaceID'' || uint32_t ''YCbCrMatrix''&lt;br /&gt;
|-&lt;br /&gt;
| 11 || setValue || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| 12 || getValueMethod || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
| 13 || kIOSurfaceMethodRemoveValue || ? || -&lt;br /&gt;
|-&lt;br /&gt;
| 14 || bindAccel || IOSurfaceID ''surfaceID'', void* ''unknown0'', void* ''unknown4'' || -&lt;br /&gt;
|-&lt;br /&gt;
| 15 || bindAccelOnPlane || IOSurfaceID ''surfaceID'', void* ''param1'', void* ''param2'', size_t ''planeIndex'' || -&lt;br /&gt;
|-&lt;br /&gt;
| 16 || readLimits || - || 20 bytes of stuff.&lt;br /&gt;
|-&lt;br /&gt;
| 17 || kIOSurfaceMethodIncrementUseCount || IOSurfaceID ''surfaceID'' || -&lt;br /&gt;
|-&lt;br /&gt;
| 18 || kIOSurfaceMethodDecrementUseCount || IOSurfaceID ''surfaceID'' || -&lt;br /&gt;
|-&lt;br /&gt;
| 19 || ? || void* ''???'' || void* ''???'' &lt;br /&gt;
|-&lt;br /&gt;
| 20 || setSurfaceNotify || 24 bytes of stuff || -&lt;br /&gt;
|-&lt;br /&gt;
| 21 || removeSurfaceNotify || 24 bytes of stuff || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Credit ==&lt;br /&gt;
[[User:Comex|comex]]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Pwnage&amp;diff=10540</id>
		<title>Pwnage</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Pwnage&amp;diff=10540"/>
		<updated>2010-10-13T09:22:44Z</updated>

		<summary type="html">&lt;p&gt;Redart: Copied some historical info from various sources...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This exploit is in the [[S5L8900]] bootrom, thus available in the iPhone, iPod Touch and iPhone 3G. The exploit is that the bootrom doesn't signature check [[LLB]].&lt;br /&gt;
&lt;br /&gt;
==Credit==&lt;br /&gt;
[[iPhone Dev Team]]&lt;br /&gt;
&lt;br /&gt;
==Exploit==&lt;br /&gt;
===[[S5L8900]]===&lt;br /&gt;
Pwnage exploits a bad chain of trust in the boot sequence of the S5L8900 device. The boot sequence includes LLB and iBoot modules which are stored in device NOR flash and are typically encrypted (as of 1.1.*). However, they are not signed with RSA signature at that point, because the 8900 container is dropped away before the file is written to NOR flash. Pwnage exploits this vulnerability. &lt;br /&gt;
&lt;br /&gt;
'''Apple's (incorrect) Boot Sequence Security Assumptions'''&lt;br /&gt;
&lt;br /&gt;
First, Apple assumes that if something is in the NOR flash, it had necessarily passed through an RSA signature verification, and is therefore authentic Apple code. This is incorrect, because the only mechanism preventing the writing of unauthorized code to the NOR flash is the kernel. The iPhone/iPod Touch kernel contains an extension designed specifically to write to the NOR flash, called AppleImage2NORAccess. This extension performs an RSA signature verification on any data it tries to write. The verification itself is performed by the Fairplay extension, which is heavily obfuscated, but neutering the check is very simple. After the check is patched out, anything can be written to the NOR flash.&lt;br /&gt;
&lt;br /&gt;
Second, Apple assumes that disabling the encryption keys in “normal” environment will prevent from writing firmware files to the NOR flash. Luckily, we have found a way to run our code in “secure” environment and use AppleImage2NORAccess extension the same way as Apple does it on restore.&lt;br /&gt;
&lt;br /&gt;
'''Pre-2.0''' &lt;br /&gt;
&lt;br /&gt;
The [[NOR]] was set up in a way that when the firmware images were flashed there, the RSA signatures were dropped along with the rest of the firmware container. So although [[iBoot]] signature checked the [[kernel]], [[LLB]] did not signature check [[iBoot]], and the [[VROM]] did not signature check [[LLB]].&lt;br /&gt;
&lt;br /&gt;
Pwnage starts by booting from a memory device (ramdisk) in “secure” environment to prevent the kernel from disabling encryption keys. Also, we add another memory device, pointed at the kernel's address space, to allow live kernel patching. After booting up, we patch out signature check from AppleImage2NorAccess extention and proceed with flashing our custom firmware files (iBoot, LLB, DeviceTree, and pictures). Because the signature check has been patched out, and encryption keys are available, AppleImage2NORAccess happily writes them to the suitable location in NOR flash. After that, the device can be restarted, and will accept any unsigned 8900 file without complaint.&lt;br /&gt;
&lt;br /&gt;
'''iBoot Patch'''&lt;br /&gt;
&lt;br /&gt;
One specific aspect of our attack that is worth examining more closely is the iBoot patch. iBoot is the last and most complicated bootloader on the devices, and is what actually loads up the kernel with device tree. However, Apple made the decision to keep all the PKE (Public Key Encryption) logic out of iBoot, instead putting it in the secure bootloader. Thus, iBoot actually jumps into the secure bootloader when it wants to verify the authenticity of an 8900 file. This makes it hard to directly patch out the RSA signature verification from iBoot, as it actually occurs in the secure bootloader. Simply killing the jump into the secure bootloader is impossible, as it also fills in other information iBoot needs to proceed.&lt;br /&gt;
&lt;br /&gt;
Because of the tight coupling between the secure bootloader and the higher-level bootloaders, Apple gave us a solution: the secure bootloader often needs to call functions in the higher-level bootloaders, but it has the problem of knowing where to jump, as functions move around in different revisions. To get around this, Apple made thunks out of the function calls, and makes the higher-level bootloaders patch the secure bootloader on the fly (in RAM) with the relevant jump addresses. They just copy the secure bootloader into RAM and blindly apply a list of patches to it. We exploited this pre-existing patching mechanism to patch out the RSA signature verification from secure bootloader.&lt;br /&gt;
&lt;br /&gt;
'''2.0+'''&lt;br /&gt;
&lt;br /&gt;
While images are now written to [[NOR]] in a way that one can verify the other, like [[LLB]] verifying [[iBoot]], the [[VROM (S5L8900)|bootrom]] cannot be written to, so it still defaults to just reading [[LLB]] normally, un-signature checked.&lt;br /&gt;
&lt;br /&gt;
Bootrom has a vulnerability in DFU mode when processesing iBoot certificates which are on a DER format. It copies all the certificate information onto the stack, but the signature itself is copied without any sort of bounds checking. So then you have classic stack buffer overflow and then you just make the signature checking function return true. &lt;br /&gt;
&lt;br /&gt;
[[25C3 presentation Hacking the iPhone|More info]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[S5L8720]] and on===&lt;br /&gt;
This exploit has been fixed on the [[N72ap|iPod touch 2G]] and all devices released after it. The [[VROM (S5L8720)|bootrom]] sigchecks [[LLB]] before jumping to it now, and if the [[LLB]] is patched, it will default to [[DFU Mode]]. The [[0x24000 Segment Overflow]] exploit was later found in the first revisions of the [[N72ap|iPod touch 2G]] and [[N88ap|iPhone 3GS]] [[bootrom]]s, allowing the device to be fully jailbroken. It has since been fixed with new bootrom revisions for these devices. Newer devices were never susceptible to the [[0x24000 Segment Overflow]].&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
* [[PwnageTool]]&lt;br /&gt;
* [[iPhoneLinux]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Jailbreaks]]&lt;br /&gt;
[[Category:Exploits]]&lt;br /&gt;
[[Category:VROM]]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=25C3_presentation_%22Hacking_the_iPhone%22&amp;diff=10536</id>
		<title>25C3 presentation &quot;Hacking the iPhone&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=25C3_presentation_%22Hacking_the_iPhone%22&amp;diff=10536"/>
		<updated>2010-10-13T07:53:18Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* Part 1: Applications Processor (by planetbeing) */ Formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:25C3 presentation &amp;quot;Hacking the iPhone&amp;quot;}}&lt;br /&gt;
This was a presentation held on the 27 December 2008 at the [http://events.ccc.de/congress/2008/wiki/Main_Page/ 25th Chaos Communication Congress (25C3)] in Berlin. Speakers were [[pytey]], [[User:planetbeing|planetbeing]] and [[User:MuscleNerd|MuscleNerd]].&lt;br /&gt;
&lt;br /&gt;
The presentation explained the inner workings of the iOS architecture, its security, and how it was circumvented. [http://events.ccc.de/congress/2008/Fahrplan/events/2976.en.html Short event description]&lt;br /&gt;
&lt;br /&gt;
During the presentation [[User:MuscleNerd|MuscleNerd]] wanted to show the [http://qik.com/video/729275 video of a live demo of the unlock] with ([[yellowsn0w]]), but skipped it because of the missing time. This video was actually released [[Timeline#December|some days before]].&lt;br /&gt;
&lt;br /&gt;
== Conference Recordings ==&lt;br /&gt;
* [http://vimeo.com/2646755?pg=embed&amp;amp;sec=2646755 Conference recording video on Vimeo]&lt;br /&gt;
* [http://mirror.netcologne.de/CCC/25C3/video_h264_720x576/25c3-2976-en-hacking_the_iphone.mp4 Conference recording video in H264] or [ftp://ftp.ccc.de/congress/25c3/video_h264_720x576/25c3-2976-en-hacking_the_iphone.mp4 via FTP] or [http://ftp.ccc.de/congress/25c3/video_h264_720x576/25c3-2976-en-hacking_the_iphone.mp4.torrent torrent link]. This version is the best quality available.&lt;br /&gt;
* [http://derchris.eu/ccc/25C3/video_h264_iPod/25c3-2976-en-hacking_the_iphone.ipod.m4v Conference recording video in M4V]&lt;br /&gt;
* [http://bork.informatik.uni-erlangen.de/pub/ccc/25c3/audio_only/25c3-2976-en-hacking_the_iphone.mp3 Conference recording as MP3 audio]&lt;br /&gt;
* [http://ftp.uni-kl.de/25C3/audio_only/25c3-2976-en-hacking_the_iphone.ogg Conference recording as OGG audio]&lt;br /&gt;
* [http://events.ccc.de/congress/2008/wiki/Conference_Recordings/index.html Official download page] (look for presentation 2976)&lt;br /&gt;
* [http://ftp.ccc.de/congress/25c3/ Official FTP server] (look for presentation 2976)&lt;br /&gt;
&lt;br /&gt;
The presentation slides are currently not available. Maybe one of the presentators can upload them here or post a link.&lt;br /&gt;
&lt;br /&gt;
== Transcript of the presentation ==&lt;br /&gt;
&lt;br /&gt;
[[Image:25C3_A01.png|thumb|left|A01]]&lt;br /&gt;
=== Start ===&lt;br /&gt;
Good evening everybody. I would like to introduce the [[iPhone Dev Team]] who are here to give a talk on iPhone hacking. So if you join me to give a round full of applause please.&lt;br /&gt;
&lt;br /&gt;
=== Introduction (by [[pytey]]) ===&lt;br /&gt;
Good evening ladies and gentlemen. Here’s a little slide show here for you. [[Image:25C3_B01.png|thumb|B01]] This is a slide called hacking the iPhone. I’ll give a little history here about [[iPhone Dev Team|our little crew]]. [[Image:25C3_B02.png|thumb|left|B02]] We formed in [[Timeline#June_4|June 2007]], just before the release of the [[M68ap|original iPhone]]. We’re original hardware hackers and device enthusiasts, based around Apple products and we sort of rather say towards the iPhone as a platform. We exist on [[wikipedia:Internet Relay Chat|IRC]]. This is the first time most of us have met each other. Originally there was a couple of channels on the osx86.hu server. [[Image:25C3_B03.png|thumb|B03]] We’ve got a wide membership: Germany, Belgium, France, Russia, Hungary, USA, Israel. And during those initial few months of the [[M68ap|iPhone first generation]] DHL and FedEx shipped around a lot of US phones to us. [[Image:25C3_B04.png|thumb|left|B04]] We’ve got some statistics here of our little site. We’ve had about 1.7 million visits in the last month. [[Image:25C3_B05.png|thumb|B05]] Fifty, sixty thousand unique visitors per day and various networks around. [[Image:25C3_B06.png|thumb|left|B06]] We’ve got a tool called [[PwnageTool|Pwnage tool]] and another tool called [[QuickPwn]] which is viewed here as the next good project. [[Image:25C3_B07.png|thumb|B07]] It’s a [[wikipedia:Cocoa (API)|Cocoa]] application. It’s got 20,000 lines of code. [[QuickPwn]] has got 15,000 lines of code. There’s also other platforms: Windows and Linux as well. We’ve had 3.6 million [[wikipedia:Sparkle (software)|Sparkle]] updates since we last deleted our logs, which was in the 16th of July. We try to release patches when Apple releases an iPhone update. [[Image:25C3_B08.png|thumb|left|B08]] We try to get patches out 24-48 hours after the release of those updates.  And the modular bundle sets for cross-platform use. We use [[[wikipedia:Sparkle (software)|Sparkle]] for updates for the Mac platform, as I mentioned. An interesting lead: There’s a 180 very active users from Apple who update their [[QuickPwn]] and [[PwnageTool|Pwnage tool]] on a regular basis, so I think they like our software, which is pretty cool. Thank you very much Apple. (big applause)&lt;br /&gt;
&lt;br /&gt;
[[Image:25C3_B09.png|thumb|B09]] I’ll just introduce my colleagues here. We’ve got [[User:Bushing|bushing]] on the end. He’s one of the guys. This is [[User:MuscleNerd|MuscleNerd]] (laughter) -  I don’t know why. This is [[User:Planetbeing|planetbeing]]. And we’ve got a bunch of other guys here we don’t want to be identified for obvious reasons, but they’re over there wearing Pwn-Apple T-shirts. And they speak Russian. (laughter) Say hi guys! (applause)&lt;br /&gt;
&lt;br /&gt;
So with that further I’ll hand you over to [[User:Planetbeing|planetbeing]] who’s gonna talk a bit about the applications processor side of the iPhone. Thanks.&lt;br /&gt;
&lt;br /&gt;
=== Part 1: Applications Processor (by [[User:Planetbeing|planetbeing]]) ===&lt;br /&gt;
[[Image:25C3_C01.png|thumb|left|C01]] So my talk is gonna be about the application’s processor side. That’s the chip that runs the [[iOS|iPhone OS]] in all the racing car games that you all see in the [[App Store]]. [[Image:25C3_C02.png|thumb|C02]] It’s only related to the [[Unlock|baseband unlock]], because the iPhone has two [[ARM]] processors and the [[S-Gold_2|baseband modem]] has one of them and the [[S5L8900|application processor]] has the other one, and they’re only loosely connected. Each has their own security framework. My portion of the talk will be focusing on the [[S5L8900|application processor]]. And you know our goal is to execute custom code on the [[iOS|iPhone OS]]. [[Image:25C3_C03.png|thumb|left|C03]]The purpose of doing so is to launch third-party apps, [[activation]] of the iPhone which allows the [[iOS|iPhone OS]] to recognize unofficial carriers, and it also provides a useful platform for the [[Unlock|SIM unlock]] because then we can use the [[iOS|iPhone OS]] to directly communicate with the [[Baseband_Device|baseband modem]]. So I’m gonna just go over some of the security framework of the [[M68ap|iPhone]], and first of all I’m gonna talk about the basic software architecture of the device. [[Image:25C3_C04.png|thumb|C04]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As Apple advertised the [[iOS|iPhone OS]] architecture is basically [[wikipedia:Mac OS X|Mac OS X]]. If you look at a disassembly of the [[kernel]], you can see that it’s basically [[wikipedia:XNU|XNU]], which is the kernel for the [[wikipedia:Mac OS X|Mac OS]], it’s basically [[wikipedia:XNU|XNU]] code compiled for [[ARM]]. A lot of the userland architecture is also the same. There is [[wikipedia:Launchd|launchd]], which is the Mac OS version of [[wikipedia:Init|init]] like Linux is [[wikipedia:Init|init]]. It’s a little bit bottomized, there’s no command line switches, but, you know it’s basically the same thing, have launch [[wikipedia:Daemon (computer software)|daemons]] and everything else. System libraries are slightly modified, but they’re pretty much the same as on a typical OS X Mac machine. So instead of the Finder you have [[SpringBoard]] as the shell. One important difference between the Mac version of OS X and the [[iOS|iPhone OS]] is that there’s an additional [[wikipedia:Daemon (computer software)|daemon]] called [[lockdownd]], and it handles communications with the computer. It basically is the gateway between the computer and the iPhone over the USB cable. It [[wikipedia:Multiplexing|multiplexes]] the USB connections and it establishes an [[wikipedia:Transport Layer Security|SSL]] [[wikipedia:Tunneling protocol|tunnel] between a [[wikipedia:Internet socket|socket]] on the computer and on the iPhone. It’s basically like [[wikipedia:inetd|inetd]]. You can have different services that [[lockdownd]] activates. Services like [[MobileSync]], [[MobileBackup]] and a rather important one for our purposes is called [[AFC]], which allows the computer to access a small jailed portion to the file system. So our goal here is to sort of subvert this and to modify the operating system, so that we can run our own code. How do we do this? [[Image:25C3_C05.png|thumb|left|C05]] The [[iOS|iPhone OS]] primarily runs on a [[NAND]] flash disk. To userland it appears as a normal [[wikipedia:Device file#Block devices|block device]]. So if you’re familiar with the Mac OS terminology, it’s under /dev/rdisk0s1 /dev/rdisk0s2. There’s two logical partitions on a [[NAND]] drive. There’s a system partition, which is mounted at root, and there’s a user partition. The system partition is read-only, and these are only logical partitions, and they sit on top of an [[wikipedia:Flash file system|FTL]] which convert the logical partitions which are better suited for traditional disk drives to [[NAND]] flash geometries, which, you know, have peculiar things, like be only able to erase a block at a time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is how the [[iOS|iPhone OS]] is protected. [[Image:25C3_C06.png|thumb|C06]] Third-party applications and everything else that’s modifiable on the [[iOS|iPhone OS]] are installed on the user partition. The system partition is read-only, so in case the iPhone crashes you don’t have to recheck the system partition for file system integrity. Every program, every executable on the iPhone is signature-checked when the system call [[execv]] is executed on that. All executables must be signed by Apple and the signatures and the hashes are stored in the mark-up format as segments and because the signatures are only checked when the program starts you can still use code execution [[Category:Exploits|exploits]] if you have a buffer overflow or a stack overflow, but the limitations of that is that all the applications like MobileSafari or MobileMail and everything else run as a [[mobile user]], so they can’t really alter the operating system. The signature-checks are implemented inside the [[kernel]]. So in order to do our thing, in order to run third-party applications, we have to modify the [[kernel]]. Here is how the [[kernel]] is protected. [[Image:25C3_C07.png|thumb|left|C07]] The [[kernel]] is stored on the system partition, which again is mounted read-only. It’s a big [[wikipedia:Blob (computing)|binary blob]] with the [[kernel]] and all the kernel extensions, KEXTs, which basically provide driver functionality for Mac OS X and they are all concatenated together and compressed with [[wikipedia:Lempel–Ziv–Storer–Szymanski|LZSS]] and encrypted and signed. And you can’t alter this [[kernelcache]], except as [[wikipedia:Superuser|root]]. So even if you got a code execution [[Category:Exploits|exploit]], you still need a privilege escalation exploit as well in order to modify this file. And even if you could do that, the [[kernelcache]] is signed, so if you modify it, your system will stop booting. So, to get around that, we need to look at how the signature for the [[kernel]] is checked. And I’m only just take briefly take you to the [[boot process]] for the iPhone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:25C3_C08.png|thumb|C08]] The first piece of code that’s loaded on the iPhone is the [[bootrom]]. It’s Secure-Boot as Apple’s terminology is. I mean it’s kind of a lie as you find out later. So the first thing that it does is it loads from [[NOR]] flash a program called [[LLB]]. The [[NOR]] flash supplements the [[NAND]] flash. It’s just an 8 megabit [[NOR]] flash and it serves as the [[NOR (NVRAM)|NVRAM]] for the OS which concludes [[wikipedia:Kernel panic|kernel panic] logs, [[bootloader]] variables. It also has a file system, or a kind of a rudimentary one; a list of images that contain the bootloaders themselves. So the [[LLB]] is, like the way I put it, is that it’s the [[wikipedia:Master boot record|MBR]] for the [[NOR]], which it does the same thing that the [[wikipedia:Master boot record|MBR]] does on like an x86 machine. It reads the image-less format and it loads the next-stage [[bootloader]] from the image list, signature-checking it first before executing it. [[Image:25C3_C09.png|thumb|left|C09]] The next stage in the [[S5L8900#Boot Chain|boot process]] after [[LLB]] is [[iBoot]], which is loaded from the image list. If you’re familiar at all with the Mac boot process, [[iBoot]] is an analogous to [[wikipedia:Open Firmware|Open Firmware]]. On a Mac machine, instead of the [[kernel]] probing devices and discovering what hardware is there, the [[bootloader]] provides the [[kernel]] with the [[DeviceTree]] which has all this information already included. And [[iBoot]] loads the [[DeviceTree]] from the [[NOR]]. The [[DeviceTree]] - there’s one for each different type of platform, one for the [[M68ap|iPhone]], one for the [[N82ap|iPhone 3G]] and one for the [[N45ap|iPod touch]]. And this [[DeviceTree]] is only partially populated. There’s still some device-specific things, like the serial number that must be added by [[iBoot]]. Also Apple uses different components from different vendors in their manufacturing process. There’ll be like a few different types of LCD panels that they use and a few different types of [[NAND]] chips from different vendors, and some of them have their own initialization sequences. Instead of having the [[kernel]] do that, [[iBoot]] actually does that, which makes the [[kernel]] more flexible. So it populates the [[DeviceTree]] with [[wikipedia:Gamma correction|gamma]] tables, Wi-Fi calibration data, it does all of that. And then finally it loads the [[kernel]] from [[NAND]] and executes it. The thing here is that [[iBoot]] checks signatures on everything. It checks signatures on the [[kernel]], it checks signatures on the [[DeviceTree]], and even the boot logo and graphics that it displays. So we need to get around this in order to do our eventual goal of running unsigned applications on the iPhone. And the whole structure works like this. You have this whole chain that signature-checks the [[kernel]] and then the kernel signature-checks all the userland applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:25C3_C10.png|thumb|C10]] So there’s one slight problem with this scheme. We know that userland applications are signature-checked by the [[kernel]], which is good. And the [[kernel]] is signature-checked by [[iBoot]], so that’s good. [[iBoot]] is signature-checked by the [[LLB]]. OK. But is the [[LLB]] signature-checked by the [[bootrom]]? No! So, that’s a big problem. So all we need to do is just flash our own [[LLB]] and then patch all the signature-checking on all the subsequent stages and then we can run our own code. This is a little bit easier said than done though. The only way we can flash the [[NOR]] is through the [[iPhone Restore Procedure|restore process]] and I’ll explain why in a second after I tell you what it is. [[Image:25C3_C11.png|thumb|left|C11]] Every stage in the [[S5L8900#Boot Chain|boot process]] that I described earlier can abort to either a [[DFU Mode|DFU]] or [[Recovery Mode]], and it’s activated by either keypresses or if the next stage can’t load. [[Recovery Mode]] is basically a USB or serial console. It’s a feature of [[iBoot]]. And [[DFU Mode]] is just a mode where [[iBoot]] can be loaded and you can get into [[Recovery Mode]]. So the [[iPhone Restore Procedure|restore process]] is basically a version of [[iBoot]] is loaded- a newer version, the latest one- is loaded by [[iTunes]] onto existing version of [[iBoot]] or [[DFU Mode]]. And then [[iTunes]] sends the latest [[kernel]] and a [[Restore Ramdisk|Restore ramdisk]] to this [[iBoot]]. And then [[iBoot]] boots the [[kernel]] from the [[Restore Ramdisk|ramdisk]. The [[iPhone Restore Procedure|restore process]] itself is actually conducted by this [[Restore Ramdisk|ramdisk]]/[[kernel]] combination, [[lockdownd]] daemon, called [[restored]]. The [[lockdownd]] thing, as I described, it communicates with [[iTunes]], it downloads of ASR image. I don’t know if you guys know about ASR, but it’s an Apple backup thing. ASR image from iTunes: it also downloads [[NOR]] firmware to be flashed. And the good thing about this process is it’s actually very well designed. It’s pretty much impossible to break the iPhone because of this process. Because you can at any point... break the [[S5L8900|applications processor]] that is. At any point because you can always bootstrap the [[iPhone Restore Procedure|restore process]] like this. [[Image:25C3_C12.png|thumb|C12]] The way that this [[iPhone Restore Procedure|restore process]] is protected is that [[iBoot]] that’s loaded from any stage is signature-checked before being executed. The [[Restore Ramdisk|ramdisk]] and [[kernel]] is also signature-checked by [[iBoot]], and [[restored]] itself signature-checks the [[wikipedia:Apple Software Restore|ASR]] image in a [[NOR]] firmware and it already sits on a signature checked [[Restore Ramdisk|ramdisk]], so itself cannot normally be modified. [[Image:25C3_C13.png|thumb|left|C13]] Also, everything is encrypted with a key that’s derived from a hardware [[wikipedia:Advanced Encryption Standard|AES]] key. This [[wikipedia:Advanced Encryption Standard|AES]] key we can’t read it, but the code on the iPhone can use it. These keys are disabled from any boot that’s not from a signed [[Restore/Update Ramdisks|ramdisk]]. So this means that even if we’re able to find a code execution exploit on a normal boot and have a privilege explanation exploit and communicate with the kernel and tell it to flash the [[NOR]], we still can’t do it, because we’re not in a secure mode. The filesystem itself is encrypted with [[wikipedia:FileVault|FileVault]] and the way that’s done is that [[wikipedia:FileVault|FileVault]] key and also the expected [[wikipedia:Secure Hash Algorithm|SHA]] hash of the filesystem is stored on a encrypted [[Restore/Update Ramdisks|ramdisk]]. And this way everything is encrypted. This makes it difficult for us to do our work, because we can’t read any code and we can’t reverse engineer it. That’s the way that they planned it. [[Image:25C3_C14.png|thumb|C14]] So it still sounds pretty secure. All the modification that this graph shows the modification vectors for every piece of the software that I mentioned. And you see that everything signature-checks everything else pretty much. So, it’s still pretty secure even if the [[bootrom]] doesn’t signature-check [[LLB]], as long as you can’t modify the [[NOR]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:25C3_C15.png|thumb|left|C15]] Well, there’s one problem, is that this chain can be broken. And what place we break it is at the [[bootrom]] level or where they can’t patch it or fix it in any way. So it’s a pretty much your standard stack overflow exploit. They’re processing certificates which are on a [[wikipedia:Distinguished Encoding Rules|DER format]]. They copy all the certificate information onto the stack, but the signature itself is copied into this data structure without any sort of bounds checking. So then you have this classic stack buffer overflow and then you just make the signature checking function return true. I was just gonna show you – I probably don’t have enough time to do a very thorough job of this, but basically [[Image:25C3_C16.png|thumb|C16]] this is the function that we want to return true. We want to jump to offset 57EC and make R4=1, because our R4 gets moved into the return value later. CheckCertificateAndGetSecureBootOnes is the function that has the vulnerability. As you can see, in the [[Image:25C3_C17.png|thumb|left|C17]] highlighted areas it makes space on the stack for three certificate structs. So what you wanna do is construct a certificate [[wikipedia:Distinguished Encoding Rules|DER]] that’s structured like this. The thing that’s overflowable is [[MCertSignatureValue]], so you have 0x30 bytes of padding at the end of covered the rest of these and then you can start loading the registers with your own exploit values. So 1 for R4, we don’t really care about the other registers. [[Image:25C3_C18.png|thumb|C18]] And the offset 57EC for the PC – for the program counter. So that’s basically our exploit. What we load from this is what we called [[Pwnage]], which is our complete solution as it were. [[Image:25C3_C19.png|thumb|left|C19]] What we do is we patch every single stage, like where I mentioned all the signature checks, we patch all of those out. And what we do, we patch out in the [[LLB]], [[iBoot]], [[kernel]], the [[restored]] on the [[Restore/Update Ramdisks|ramdisk]], and on the filesystem image, because we patched out the signature checking on [[restored]], we can put our own sort of [[App Store]] for unsigned programs for things that Apple won’t support. And the two most popular ones are [[Cydia]] and [[Installer.app|Installer]]. We use the [[Pwnage 2.0|DFU exploit]] to load a version of [[iBoot]] that doesn’t perform signature checking and then we use the normal [[iPhone Restore Procedure|restore process]] to restore the rest of it; to flash the rest of this onto the iPhone. And what ends up happening is that we can use [[iTunes]] to flash our own custom firmware onto the iPhone. So, yeah. (applause)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:25C3_C20.png|thumb|C20]] Just briefly I just mentioned stuff that Apple did wrong, to make the job easier for us and probably the biggest reason is that instead of rolling out all this wonderful security mechanisms at once, they did it piece by piece and they sort of made a few mistakes early on in the process. And by doing so they allow us to get access to pieces of code and we’re able to reverse engineer it and we were able to figure out how it all worked and where the vulnerable points are and how to attack it. One of the early mistakes is in 1.0.2. The iPhone actually trusted [[iTunes]] which we can modify easily. At that point we could actually send custom restore commands and [[jailbreak]] the iPhone. Another call was none of the executables were signed at that point, so you could make a simple file system alteration and you’re jailbroken. [[Image:25C3_C21.png|thumb|left|C21]] Another vulnerability in 1.1.1 and 1.1.2 is that everything used to run as [[wikipedia:Superuser|root]]. So if you find a vulnerability within any userland program, then you have root. They also left some interesting things like [[/dev/kmem]] which means that we can poke and peek kernel memory and execute kernel code, so that was kinda bad. [[Image:25C3_C22.png|thumb|C22]] And finally probably the mistake that first allowed [[Pwnage]] was they left the [[boot arguments]] pmd= and vmd= and these [[boot arguments]] can construct a [[Restore/Update Ramdisks|ramdisk]] to boot out of anything. And that basically... not out of anything but out of any contiguous portion of memory. And that allowed us to bootstrap a [[Restore/Update Ramdisks|ramdisk]] pretty easily, because when we upload a [[Restore/Update Ramdisks|ramdisk]], the iPhone has to store in memory somewhere and then signature check and then decide whether it wants it pass on to the kernel based on whether the signature is correct. But even if it fails the signature check, the [[Restore/Update Ramdisks|ramdisk]] is still in memory, so we can use pmd= or vmd= to construct a [[Restore/Update Ramdisks|ramdisk]] out of that portion of memory that it temporarily stores or upload in. And then this basically allowed us to boot from an unsigned [[Restore/Update Ramdisks|ramdisk]] right away. And allow us to flash our first [[bootloader]]s. We learn a lot from this process. We now have added quick control over the iPhone’s hardware to even run Linux on it, so that’s basically where we are. I’ll pass it to [[User:MuscleNerd|Musclenerd]] to describe the [[Baseband Firmware]].&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Baseband (by [[User:MuscleNerd|MuscleNerd]]) ===&lt;br /&gt;
(in work by [[User:http|http]], will follow here)&lt;br /&gt;
&lt;br /&gt;
=== End and Q&amp;amp;A ===&lt;br /&gt;
(in work by [[User:http|http]], will follow here)&lt;br /&gt;
&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Redsn0w&amp;diff=9081</id>
		<title>Redsn0w</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Redsn0w&amp;diff=9081"/>
		<updated>2010-09-08T21:28:51Z</updated>

		<summary type="html">&lt;p&gt;Redart: Add version info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Redsn0w.png|thumb|redsn0w 0.9.5-b5]]&lt;br /&gt;
redsn0w (at version 0.1) was originally a [[QuickPwn]]-like implementation of the [[0x24000 Segment Overflow]] for the [[N72ap|iPod Touch 2G]]. However, due to the theft and exploitation of the name (as QuickPWN) by quickpwn.com, as of firmware 3.0, QuickPwn was discontinued and redsn0w (at the time, version 0.7) was converted into a jailbreaking tool for all current devices as well as providing unlock support the iPhone 2G.&lt;br /&gt;
&lt;br /&gt;
As of version 0.8, the [[N88ap|iPhone 3GS]] can also be jailbroken through redsn0w. It is currently closed-sourced but the executable is being worked into several third-party GUIs as the underlying engine can also be used as a commandline tool. &lt;br /&gt;
&lt;br /&gt;
Version 0.9 beta 3 was released for Windows and OS X, and it allows firmware 3.0 to 3.1.2 to be jailbroken. It includes support for all devices except the iPod touch 3G and supports a tethered jailbreak on late-model iPhone 3GS's and iPod touch 2G's. This latest version supports custom boot and recovery mode logos, as well as verbose-bootup. Final release, version [http://wikee.iphwn.org/howto:rs9 0.9.2] supports jailbreaking of all iDevices with firmware 3.0 or 3.1.2 on Windows and Mac OSX and iPhone 2G/3G, iPT 1G on firmware 3.1.3. Version 0.9.3 adds support of internet tethering IPCC hack on those devices and 0.9.4 allows jailbreaking of early iPod Touch 2G with 3.1.3 firmware.&lt;br /&gt;
&lt;br /&gt;
Version [http://wikee.iphwn.org/howto:rsbeta 0.9.5b5-5] supports jailbreaking the [[N82ap|iPhone 3G]] and [[N72ap|iPod touch 2G]] (non-MC) with iOS 4.0 on Windows and Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Credit ==&lt;br /&gt;
[[iPhone Dev Team]]&lt;br /&gt;
&lt;br /&gt;
== Exploit ==&lt;br /&gt;
For [[N45ap|iPod touch]], [[M68ap|iPhone]] and [[N82ap|iPhone 3G]], see:&lt;br /&gt;
*[[Pwnage]]&lt;br /&gt;
*[[Pwnage 2.0]]&lt;br /&gt;
&lt;br /&gt;
For [[N72ap|iPod touch 2G]], see:&lt;br /&gt;
*[[0x24000 Segment Overflow]] - Credit the work on this exploit goes to [[User:Planetbeing|planetbeing]], [[User:MuscleNerd|MuscleNerd]], and [[User:ChronicDev|Chronic Dev]].&lt;br /&gt;
*[[ARM7 Go]] - used to upload the oversized [[LLB]] required to take advantage of the 0x24000 Segment Overflow.&lt;br /&gt;
&lt;br /&gt;
For [[N88ap|iPhone 3GS]], see:&lt;br /&gt;
*[[0x24000 Segment Overflow]]&lt;br /&gt;
*[[iBoot Environment Variable Overflow]] - Exploit has a different implementation from [[User:geohot|geohot]]'s implementation in [[purplera1n]].&lt;br /&gt;
*[[usb_control_msg(0x21, 2) Exploit]]&lt;br /&gt;
&lt;br /&gt;
For [[N18ap|iPod touch 3G]]&lt;br /&gt;
*[[usb_control_msg(0x21, 2) Exploit]]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Star&amp;diff=8833</id>
		<title>Star</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Star&amp;diff=8833"/>
		<updated>2010-09-01T13:07:08Z</updated>

		<summary type="html">&lt;p&gt;Redart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Star.jpg|thumb|Star on an [[N72ap|iPod touch 2G]].]]&lt;br /&gt;
Star is a userland [[jailbreak]] from [[User:Comex|comex]] that utilizes two new exploits to jailbreak iOS 3.1.2 through 4.0.1 (except for 3.2.2). Star warns that 3.1.2 and 3.1.3 are known to fail on [[N18ap|iPod touch 3G]], and that performing a fresh restore to 4.0(.1) is recommended. It can be used via [[Jailbreakme]]. With the release of iOS 4.0.2 (and iOS 3.2.2 for [[K48ap|iPad]]s) on 11 August 2010, the vulnerabilities were fixed so that it doesn't work anymore.&lt;br /&gt;
&lt;br /&gt;
==Payloads==&lt;br /&gt;
The first payload is deployed via a HTTP redirect to a PDF file. The PDF contains a CFF font with a malformed type 2 charstring, which contains commands to repeatedly push and duplicate random numbers onto an &amp;quot;argument stack&amp;quot;. This allows arbitrary code execution due to stack overflow in CFF parser inside FreeType 2 library used by iPhone.&lt;br /&gt;
&lt;br /&gt;
The second payload (wab.bin) use an integer overflow in IOSurface.framework to get root access and privileges in order to jailbreak.[http://support.apple.com/kb/HT4291]&lt;br /&gt;
&lt;br /&gt;
==PDF Patch==&lt;br /&gt;
Because this jailbreak revealed a new security hole, malicious people could also make use of this. Therefore it is recommended to install [http://twitter.com/saurik/status/20958834996 the patch] [[saurik]] put onto Cydia, to keep your device safe.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
*[http://github.com/comex/star Sourcecode for Star]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=PwnageTool&amp;diff=6917</id>
		<title>PwnageTool</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=PwnageTool&amp;diff=6917"/>
		<updated>2010-07-13T17:02:22Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''PwnageTool''' is a iPhone [[jailbreak]] tool for Mac OS X that jailbreaks by creating a custom [[IPSW File Format|IPSW]]. You are allowed to change boot logos and add pre-installed packages to the IPSW. After an IPSW is created you can use it to restore to in iTunes.&lt;br /&gt;
&lt;br /&gt;
==Exploits Used==&lt;br /&gt;
===Version 2.0===&lt;br /&gt;
* [[pwnage 2.0]]&lt;br /&gt;
* [[pwnage]]&lt;br /&gt;
===Version 1.0===&lt;br /&gt;
* [[pwnage]]&lt;br /&gt;
* [[Ramdisk Hack]]&lt;br /&gt;
&lt;br /&gt;
== Models Supported ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
! Since&lt;br /&gt;
|-&lt;br /&gt;
| [[M68ap|iPhone 2G]]&lt;br /&gt;
| April 3, 2008&lt;br /&gt;
|-&lt;br /&gt;
| [[N45ap|iPod touch 1G]]&lt;br /&gt;
| April 3, 2008&lt;br /&gt;
|-&lt;br /&gt;
| [[N82ap|iPhone 3G]]&lt;br /&gt;
| Jul 19, 2008&lt;br /&gt;
|-&lt;br /&gt;
| [[N72ap|iPod touch 2G]]&lt;br /&gt;
| Oct 2, 2009&lt;br /&gt;
|-&lt;br /&gt;
| [[N88ap|iPhone 3GS]]&lt;br /&gt;
| Oct 2, 2009&lt;br /&gt;
|}&lt;br /&gt;
Note that the iPod touch 3G is not supported. With the iPod touch 2G and iPhone 3GS you need to be already jailbroken. The [S5L8900] devices you can go into [[DFU]] mode and restore with [[iTunes]] without being jailbroken.&lt;br /&gt;
&lt;br /&gt;
==Versions==&lt;br /&gt;
&lt;br /&gt;
PwnageTool was released April 3, 2008 but largely unused until version 2.0 was released July 19, 2008.&lt;br /&gt;
The following versions that are shown here are not beta, alpha, or in development. &lt;br /&gt;
&lt;br /&gt;
===1.x: First release of PwnageTool===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;font-size: 90%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Version&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Features&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 1.1.4 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | April 3, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Initial release&lt;br /&gt;
* Jailbreaks 1.1.4 firmware&lt;br /&gt;
* Supports iPod touch 1G and iPhone 2G.&lt;br /&gt;
* Add [[BootNeuter]] in the IPSW to unlock iPhone 2G.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
=== 2.x: Second major release of Pwnagetool ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;font-size: 90%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Version&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Features&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.0 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jul 19, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Added support of iPhone 3G &amp;lt;references/&amp;gt;[http://www.engadget.com/2008/07/19/iphone-dev-team-unleashes-pwnage-tool-2-0/]&amp;lt;references/&amp;gt;&lt;br /&gt;
* Jailbreaks 2.0 Firmware&lt;br /&gt;
* Change boot logos&lt;br /&gt;
* Adds Cydia by default&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.0.1 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Aug 4, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.0.1 Firmware&lt;br /&gt;
* Works for 2.0 and 2.0.1.&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.0.2 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Aug 21, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.0.2, Firmware &amp;lt;references/&amp;gt;[http://www.iphonehacks.com/2008/08/pwnage-tool-202.html]&amp;lt;references/&amp;gt;&lt;br /&gt;
* Works for 2.0, 2.0.1, and 2.0.2.&lt;br /&gt;
* Bug fixes - for when it doesn't go to the next page when you click on something.&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.0.3 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Aug 25, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.0.2, Firmware&lt;br /&gt;
* Works for 2.0, 2.0.1, and 2.0.2.&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.1 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Sep 13, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.1 firmware&lt;br /&gt;
* Removed backwards compatibility&lt;br /&gt;
* Download packages from a Valid cydia source, and add them onto your custom ipsw&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.2 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Nov 21, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.2 firmware&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==== 2.2.5 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jan 30, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.2.1&lt;br /&gt;
* Not updated by iPhone dev team but made official&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3.x: Third Major Release of PwnageTool ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;font-size: 90%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Version&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Features&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 3.0 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jun 19, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 3.0 firmware&lt;br /&gt;
* DFU mode instructions included&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 3.1 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Sep 15, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 3.1 firmware for iPhone 2G and 3G&lt;br /&gt;
* Jailbreaks 3.1.1 firmware for iPod touch 1G&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 3.1.3 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Oct 2, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Support for iPhone 3GS with [[iBoot-359.3]] bootrom and iPod touch 2G with [[iBoot-240.4]] bootrom (these devices need to be pwned from 3.0/3.0.1)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 3.1.4 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Oct 13, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 3.1.2 firmware for iPhone 2G, 3G, 3GS with [[iBoot-359.3]] bootrom, iPod touch 1G, iPod touch 2G with [[iBoot-240.4]] bootrom&lt;br /&gt;
* iPod touch 3G not supported.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==== 3.1.5 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Feb 7, 2010&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 3.1.3 for devices supported in 3.1.4.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
=== 4.x: Fourth Major Release of PwnageTool ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;font-size: 90%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Version&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Features&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 4.0 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jun 22, 2010&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 4.0 firmware&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 4.01 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jun 23, 2010&lt;br /&gt;
| |&lt;br /&gt;
* Fixes iBooks issue in 4.0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Creating the Firmware==&lt;br /&gt;
PwnageTool takes the IPSW file and patches it, creating a custom version. This enables a lot more features such as pre-installed packages, boot neuter (unlock for iPhone 2nd Generation), custom packages and boot logos. This method is usually less secure than the quick exploits such (redsn0w, quickpwn, purplera1n, blackra1n, etc.).&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
This method does have negative aspects. The most common errors are the 1600 errors, a group of errors saying that the either the firmware file is corrupt or you didn't put it in the right mode (recovery, DFU Mode). Sometimes the problems could just be a computer problem such as the memory is full or the USB port is broken. The most common computer error is a 1604 error which means that the firmware file is corrupt.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
Although PwnageTool is only for Mac OS X, as of  October 2009, the [[iH8sn0w|iH8sn0w Team]] has announced that they're going to make a project that will bring Pwnage Tool to Windows. This project is named sn0wbreeze, and has been released.[http://ih8sn0w.com/]&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
PwnageTool is freeware.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hacking Software]]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=PwnageTool&amp;diff=6916</id>
		<title>PwnageTool</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=PwnageTool&amp;diff=6916"/>
		<updated>2010-07-13T17:00:56Z</updated>

		<summary type="html">&lt;p&gt;Redart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''PwnageTool''' is a iPhone [[jailbreak]] tool for Mac OS X that jailbreaks by creating a custom [[IPSW File Format|IPSW]]. You are allowed to change boot logos and add pre-installed packages to the IPSW. After an IPSW is created you can use it to restore to in iTunes.&lt;br /&gt;
&lt;br /&gt;
==Exploits Used==&lt;br /&gt;
===Version 2.0===&lt;br /&gt;
* [[pwnage 2.0]]&lt;br /&gt;
* [[pwnage]]&lt;br /&gt;
===Version 1.0===&lt;br /&gt;
* [[pwnage]]&lt;br /&gt;
* [[Ramdisk Hack]]&lt;br /&gt;
&lt;br /&gt;
== Models Supported ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
! Since&lt;br /&gt;
|-&lt;br /&gt;
| [[M68ap|iPhone 2G]]&lt;br /&gt;
| April 3, 2008&lt;br /&gt;
|-&lt;br /&gt;
| [[N45ap|iPod touch 1G]]&lt;br /&gt;
| April 3, 2008&lt;br /&gt;
|-&lt;br /&gt;
| [[N82ap|iPhone 3G]]&lt;br /&gt;
| Jul 19, 2008&lt;br /&gt;
|-&lt;br /&gt;
| [[N72ap|iPod touch 2G]]&lt;br /&gt;
| Oct 2, 2009&lt;br /&gt;
|-&lt;br /&gt;
| [[N88ap|iPhone 3GS]]&lt;br /&gt;
| Oct 2, 2009&lt;br /&gt;
|}&lt;br /&gt;
Note that the iPod touch 3G is not supported. With the iPod touch 2G and iPhone 3GS you need to be already jailbroken. The [S5L8900] devices you can go into [[DFU]] mode and restore with [[iTunes]] without being jailbroken.&lt;br /&gt;
&lt;br /&gt;
==Versions==&lt;br /&gt;
&lt;br /&gt;
PwnageTool was released April 3, 2008 but largely unused until version 2.0 was released July 19, 2008.&lt;br /&gt;
The following versions that are shown here are not beta, alpha, or in development. &lt;br /&gt;
&lt;br /&gt;
===1.x: First release of PwnageTool===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;font-size: 90%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Version&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Features&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 1.1.4 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | April 3, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Initial release&lt;br /&gt;
* Jailbreaks 1.1.4 firmware&lt;br /&gt;
* Supports iPod touch 1G and iPhone 2G.&lt;br /&gt;
* Add [[BootNeuter]] in the IPSW to unlock iPhone 2G.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
=== 2.x: Second major release of Pwnagetool ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;font-size: 90%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Version&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Features&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.0 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jul 19, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Added support of iPhone 3G &amp;lt;references/&amp;gt;[http://www.engadget.com/2008/07/19/iphone-dev-team-unleashes-pwnage-tool-2-0/]&amp;lt;references/&amp;gt;&lt;br /&gt;
* Jailbreaks 2.0 Firmware&lt;br /&gt;
* Change boot logos&lt;br /&gt;
* Adds Cydia by default&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.0.1 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Aug 4, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.0.1 Firmware&lt;br /&gt;
* Works for 2.0 and 2.0.1.&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.0.2 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Aug 21, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.0.2, Firmware &amp;lt;references/&amp;gt;[http://www.iphonehacks.com/2008/08/pwnage-tool-202.html]&amp;lt;references/&amp;gt;&lt;br /&gt;
* Works for 2.0, 2.0.1, and 2.0.2.&lt;br /&gt;
* Bug fixes - for when it doesn't go to the next page when you click on something.&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.0.3 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Aug 25, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.0.2, Firmware&lt;br /&gt;
* Works for 2.0, 2.0.1, and 2.0.2.&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.1 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Sep 13, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.1 firmware&lt;br /&gt;
* Removed backwards compatibility&lt;br /&gt;
* Download packages from a Valid cydia source, and add them onto your custom ipsw&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.2 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Nov 21, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.2 firmware&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==== 2.2.5 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jan 30, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.2.1&lt;br /&gt;
* Not updated by iPhone dev team but made official&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3.x: Third Major Release of PwnageTool ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;font-size: 90%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Version&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Features&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 3.0 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jun 19, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 3.0 firmware&lt;br /&gt;
* DFU mode instructions included&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 3.1 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Sep 15, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 3.1 firmware for iPhone 2G and 3G&lt;br /&gt;
* Jailbreaks 3.1.1 firmware for iPod touch 1G&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 3.1.3 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Oct 2, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Support for iPhone 3GS with [[iBoot-359.3]] bootrom and iPod touch 2G with [[iBoot-240.4]] bootrom (these devices need to be pwned from 3.0/3.0.1)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 3.1.4 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Oct 13, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 3.1.2 firmware for iPhone 2G, 3G, 3GS with [[iBoot-359.3]] bootrom, iPod touch 1G, iPod touch 2G with [[iBoot-240.4]] bootrom&lt;br /&gt;
* iPod touch 3G not supported.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==== 3.1.5 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Feb 7, 2010&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 3.1.3 for devices supported in 3.1.4.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
=== 4.x: Fourth Major Release of PwnageTool ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;font-size: 90%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Version&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Features&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 4.0 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jun 22, 2010&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 4.0 firmware&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 4.01 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jun 23, 2010&lt;br /&gt;
| |&lt;br /&gt;
* Fixes iBooks issue in 4.0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Creating the Firmware==&lt;br /&gt;
PwnageTool takes the IPSW file and patches it, creating a custom version. This enables a lot more features such as pre-installed packages, boot neuter (unlock for iPhone 2nd Generation), custom packages and boot logos. This method is usually less secure than the quick exploits such (redsn0w, quickpwn, purplera1n, blackra1n, etc.).&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
This method does have negative aspects. The most common errors are the 1600 errors, a group of errors saying that the either the firmware file is corrupt or you didn't put it in the right mode (recovery, DFU Mode). Sometimes the problems could just be a computer problem such as the memory is full or the USB port is broken. The most common computer error is a 1604 error which means that the firmware file is corrupt.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
Although PwnageTool is only for Mac OS X, as of  October 2009, the [[iH8sn0w|iH8sn0w Team]] has announced that they're going to make a project project that will bring Pwnage Tool to Windows. This project is named sn0wbreeze, and has been released.[http://ih8sn0w.com/]&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
PwnageTool is freeware.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hacking Software]]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=PwnageTool&amp;diff=6915</id>
		<title>PwnageTool</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=PwnageTool&amp;diff=6915"/>
		<updated>2010-07-13T16:58:17Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* Versions */ Updated info to 4.01&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''PwnageTool''' is a iPhone [[jailbreak]] tool for Mac OS X that jailbreaks by creating a custom [[IPSW File Format|IPSW]]. You are allowed to change boot logos and add pre-installed packages to the IPSW. After an IPSW is created you can use it to restore to in iTunes.&lt;br /&gt;
&lt;br /&gt;
==Exploits Used==&lt;br /&gt;
===Version 2.0===&lt;br /&gt;
* [[pwnage 2.0]]&lt;br /&gt;
* [[pwnage]]&lt;br /&gt;
===Version 1.0===&lt;br /&gt;
* [[pwnage]]&lt;br /&gt;
* [[Ramdisk Hack]]&lt;br /&gt;
&lt;br /&gt;
== Models Supported ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
! Since&lt;br /&gt;
|-&lt;br /&gt;
| [[M68ap|iPhone 2G]]&lt;br /&gt;
| April 3, 2008&lt;br /&gt;
|-&lt;br /&gt;
| [[N45ap|iPod touch 1G]]&lt;br /&gt;
| April 3, 2008&lt;br /&gt;
|-&lt;br /&gt;
| [[N82ap|iPhone 3G]]&lt;br /&gt;
| Jul 19, 2008&lt;br /&gt;
|-&lt;br /&gt;
| [[N72ap|iPod touch 2G]]&lt;br /&gt;
| Oct 2, 2009&lt;br /&gt;
|-&lt;br /&gt;
| [[N88ap|iPhone 3GS]]&lt;br /&gt;
| Oct 2, 2009&lt;br /&gt;
|}&lt;br /&gt;
Note that the iPod touch 3G is not supported. With the iPod touch 2G and iPhone 3GS you need to be already jailbroken. The [S5L8900] devices you can go into [[DFU]] mode and restore with [[iTunes]] without being jailbroken.&lt;br /&gt;
&lt;br /&gt;
==Versions==&lt;br /&gt;
&lt;br /&gt;
PwnageTool was released April 3, 2008 but largely unused until version 2.0 was released July 19, 2008.&lt;br /&gt;
The following versions that are shown here are not beta, alpha, or in development. &lt;br /&gt;
&lt;br /&gt;
===1.x: First release of PwnageTool===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;font-size: 90%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Version&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Features&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 1.1.4 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | April 3, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Initial release&lt;br /&gt;
* Jailbreaks 1.1.4 firmware&lt;br /&gt;
* Supports iPod touch 1G and iPhone 2G.&lt;br /&gt;
* Add [[BootNeuter]] in the IPSW to unlock iPhone 2G.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
=== 2.x: Second major release of Pwnagetool ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;font-size: 90%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Version&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Features&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.0 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jul 19, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Added support of iPhone 3G &amp;lt;references/&amp;gt;[http://www.engadget.com/2008/07/19/iphone-dev-team-unleashes-pwnage-tool-2-0/]&amp;lt;references/&amp;gt;&lt;br /&gt;
* Jailbreaks 2.0 Firmware&lt;br /&gt;
* Change boot logos&lt;br /&gt;
* Adds Cydia by default&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.0.1 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Aug 4, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.0.1 Firmware&lt;br /&gt;
* Works for 2.0 and 2.0.1.&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.0.2 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Aug 21, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.0.2, Firmware &amp;lt;references/&amp;gt;[http://www.iphonehacks.com/2008/08/pwnage-tool-202.html]&amp;lt;references/&amp;gt;&lt;br /&gt;
* Works for 2.0, 2.0.1, and 2.0.2.&lt;br /&gt;
* Bug fixes - for when it doesn't go to the next page when you click on something.&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.0.3 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Aug 25, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.0.2, Firmware&lt;br /&gt;
* Works for 2.0, 2.0.1, and 2.0.2.&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.1 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Sep 13, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.1 firmware&lt;br /&gt;
* Removed backwards compatibility&lt;br /&gt;
* Download packages from a Valid cydia source, and add them onto your custom ipsw&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 2.2 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Nov 21, 2008&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.2 firmware&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==== 2.2.5 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jan 30, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 2.2.1&lt;br /&gt;
* Not updated by iPhone dev team but made official&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3.x: Third Major Release of PwnageTool ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;font-size: 90%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Version&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Features&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 3.0 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jun 19, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 3.0 firmware&lt;br /&gt;
* DFU mode instructions included&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 3.1 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Sep 15, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 3.1 firmware for iPhone 2G and 3G&lt;br /&gt;
* Jailbreaks 3.1.1 firmware for iPod touch 1G&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 3.1.3 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Oct 2, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Support for iPhone 3GS with [[iBoot-359.3]] bootrom and iPod touch 2G with [[iBoot-240.4]] bootrom (these devices need to be pwned from 3.0/3.0.1)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 3.1.4 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Oct 13, 2009&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 3.1.2 firmware for iPhone 2G, 3G, 3GS with [[iBoot-359.3]] bootrom, iPod touch 1G, iPod touch 2G with [[iBoot-240.4]] bootrom&lt;br /&gt;
* iPod touch 3G not supported.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==== 3.1.5 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Feb 7, 2010&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 3.1.3 for devices supported in 3.1.4.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
=== 4.x: Fourth Major Release of PwnageTool ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;font-size: 90%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Version&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;background-color:#E9E9E9;&amp;quot; align=&amp;quot;center&amp;quot; |Features&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 4.0 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jun 22, 2010&lt;br /&gt;
| |&lt;br /&gt;
* Jailbreaks 4.0 firmware&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
==== 4.01 ====&lt;br /&gt;
| style=&amp;quot;white-space: nowrap;&amp;quot; | Jun 23, 2010&lt;br /&gt;
| |&lt;br /&gt;
* Fixes iBooks issue in 4.0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=1 style=&amp;quot;white-space: nowrap;nowrap;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==Creating the Firmware==&lt;br /&gt;
PwnageTool takes the IPSW file and patches it, creating a custom version. This enables a lot more features such as pre-installed packages, boot neuter (unlock for iPhone 2nd Generation), custom packages and boot logos. This method is usually less secure than the quick exploits such (redsn0w, quickpwn, purplera1n, blackra1n, etc.).&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
This method does have negative aspects. The most common errors are the 1600 errors, a group of errors saying that the either the firmware file is corrupt or you didn't put it in the right mode (recovery, DFU Mode). Sometimes the problems could just be a computer problem such as the memory is full or the USB port is broken. The most common computer error is a 1604 error which means that the firmware file is corrupt.&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
Although PwnageTool is only for Mac OS X, as of  October 2009, the [[iH8sn0w|iH8sn0w Team]] has announced that they're going to make a project project that will bring Pwnage Tool to Windows. This project is named sn0wbreeze, and has been released.[http://ih8sn0w.com/]&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
PwnageTool is freeware.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hacking Software]]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Timeline&amp;diff=6914</id>
		<title>Timeline</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Timeline&amp;diff=6914"/>
		<updated>2010-07-13T16:52:49Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* June */ DevTeam activity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2010==&lt;br /&gt;
===June===&lt;br /&gt;
*June 24 -- [[N90ap|iPhone 4]] is launched.&lt;br /&gt;
*June 22 -- [[iPhone Dev Team]] releases [[PwnageTool]] 4.0 and later 4.0.1 for all devices on 4.0 except iPod Touch 3G.&lt;br /&gt;
*June 21 -- [[iPhone Dev Team]] releases [[Redsn0w]] 0.9.5 to jailbreak 4.0 on iPhone 3G and iPhone Touch 2G.&lt;br /&gt;
*June 21 -- [[iPhone Dev Team]] releases [[Ultrasn0w]] 0.93, an unlock for baseband firmwares 4.26.08, 5.11.07, 5.12.01 and 5.13.04&lt;br /&gt;
*June 21 -- Apple releases 4.0 firmware&lt;br /&gt;
&lt;br /&gt;
===May===&lt;br /&gt;
*May 3 -- Windows version of [[Spirit]] has been updated to not require Windows 98 compatibility mode to run and fixed a photo deletion issue.&lt;br /&gt;
*May 2 (?) -- [[comex]] releases [[Spirit]], an [[untethered jailbreak]] for all iDevices with firmware 3.1.2 through 3.2. Previously [[blackra1n]] was a tethered jailbreak on newer devices and people that updated to firmware 3.1.3 had no jailbreak at all.&lt;br /&gt;
&lt;br /&gt;
===Feb===&lt;br /&gt;
*Feb 12 -- [http://twitter.com/sherif_hashim sherif_hashim] discovers [[AT+XAPP Vulnerability]] and passes it to [[MuscleNerd]] elite member of the [[iPhone Dev Team]]&lt;br /&gt;
*Feb 2 -- Apple releases 3.1.3 firmware closing [[usb_control_msg(0x21, 2) Exploit|usb_control_msg(0x21, 2)]] vulnerability used by [[blackra1n]].&lt;br /&gt;
&lt;br /&gt;
==2009==&lt;br /&gt;
===November===&lt;br /&gt;
*November 3 -- [[Geohot]] releases [[blackra1n]] RC3, a software jailbreak for all devices. Includes a new unlock for the baseband 5.11.07 called [[blacksn0w]] and is also noticeably faster than previous versions.&lt;br /&gt;
&lt;br /&gt;
===October===&lt;br /&gt;
*October 11 -- [[Geohot]] releases [[blackra1n]] RC1, a 30 second software jailbreak for all devices, including a tethered jailbreak for the [[iPod touch 3G]].&lt;br /&gt;
&lt;br /&gt;
===September===&lt;br /&gt;
* September 24 -- [[ih8sn0w|ih8sn0w]] Discovers the [[AT+XEMN|AT+XEMN]] Vulnerability used in [[blacksn0w|blacksn0w]] independently.&lt;br /&gt;
* September 9 -- The [[iPod touch 3G]] w/ [[S5L8922]] processor is released, as well as an &amp;quot;MC Model&amp;quot; [[n72ap|iPod touch 2G]]. Both are no longer vulnerable to [[24kPwn]].&lt;br /&gt;
* Firmware 3.1/3.1.1 (7C144/7C145) Released to the Public. Firmware closes [[iBoot Environment Variable Overflow|iBoot Environment Variable Overflow]] and [[AT+XLOG Vulnerability|AT+XLOG]] + [[AT+FNS|AT+FNS]] Baseband Exploits.&lt;br /&gt;
&lt;br /&gt;
===July===&lt;br /&gt;
* July 14 -- [[Geohot]] releases [[purplesn0w]], a software unlock for the [[iPhone 3GS]] using [[AT+XLOG Vulnerability|the same exploit as ultrasn0w]], but handled differently. Minutes later, an explanation and source code was posted.&lt;br /&gt;
* July 7 -- [[The dev team]] updates [[redsn0w]] and [[ultrasn0w]] to version 0.8, now with [[iPhone 3GS]] support. Saurik also updates Winterboard to support the [[iPhone 3GS]].&lt;br /&gt;
* July 3 -- [[Geohot]] releases [[purplera1n]], a software jailbreak for the [[iPhone 3GS]].&lt;br /&gt;
&lt;br /&gt;
===June===&lt;br /&gt;
* June 28 -- [[Geohot]] posts pictures on his blog of the first fully jailbroken [[iPhone 3GS]].&lt;br /&gt;
* June 25 -- It's discovered that [[iPhone 3GS]] is vulnerable to [[0x24000 Segment Overflow|24kpwn]] exploit.&lt;br /&gt;
* June 24 -- [[The dev team]] release [[ultrasn0w]] unlock for [[iPhone 3G]] thanks to [[AT+XLOG Vulnerability|a new exploit]] discovered by [[User:Oranav|Oranav]].&lt;br /&gt;
* June 23 -- [[Geohot]] announces he's found a new exploit in [[iBoot]] he calls purplera1n.&lt;br /&gt;
* June 19 -- Release of [[iPhone2,1|iPhone 3GS]] to the public and the release of [[PwnageTool|Pwnage Tool 3.0]] and [[RedSn0w|Redsn0w]] for jailbreaking devices running firmware 3.0&lt;br /&gt;
* June 17 -- Release of firmware 3.0 to the public.&lt;br /&gt;
* June 8 -- Apple announces the [[iPhone2,1|iPhone 3GS]].&lt;br /&gt;
&lt;br /&gt;
===March===&lt;br /&gt;
* March 10 -- The [[0x24000 Segment Overflow|untethered jailbreak]] for the [[iPod touch 2G]] is released thanks to the combined work of chronic, CPICH, posixninja, pod2g, ius, planetbeing, [[MuscleNerd]], and co after being leaked and sold by [[NitroKey]]. To prevent users wasting their money on a stolen exploit, the Hybrid DevTeam decided to release it immediately.&lt;br /&gt;
&lt;br /&gt;
===January===&lt;br /&gt;
* January 31 -- The [[iPhone Dev Team]] released a [[redsn0w Lite]], a tethered jailbreak for the [[N72ap|iPod touch 2G]].  It combines the [[ARM7 Go]] vulnerability with the well-established pwnage flow for other Apple mobile devices. It was bundled in a way that will allow usage on the 2.2.1 firmware through uploading the [[ARM7 Go]] vulnerable 2.1.1 iBoot to the device while in DFU mode.&lt;br /&gt;
&lt;br /&gt;
* January 25 -- [[0wnboot]] is released to chronicdev google code page, thanks to AriX, chronic, CPICH, westbaer, ius, pod2g, the rest of the iPod devel crew on IRC, and to the #iphone-hax lab rats. Within days, the AriX and the chronic dev team got a ramdisk booting for a tethered jailbreak.&lt;br /&gt;
&lt;br /&gt;
* January 17 -- [[MuscleNerd]] of the [[iPhone Dev Team]] [http://twitter.com/MuscleNerd/status/1127346766 shows a video demo] of the first jailbroken iPod Touch 2G.&lt;br /&gt;
&lt;br /&gt;
* January 16 -- [[ARM7 Go]] hole disclosed where else but here on The iPhone Wiki, for developers to poke and prod at&lt;br /&gt;
&lt;br /&gt;
* January 15 -- The [[iPhone Dev Team]] [http://twitter.com/iphone_dev/status/1120595069 tweets the vfdecrypt key] for the [[iPod touch 2G]] 2.2 firmware, demonstrating for the first time that unsigned code can now be run on that device.&lt;br /&gt;
&lt;br /&gt;
* January 1 -- The [[iPhone Dev Team]] releases [[yellowsn0w]] 0.9 beta for baseband 02.28.00.&lt;br /&gt;
&lt;br /&gt;
==2008==&lt;br /&gt;
&lt;br /&gt;
===December===&lt;br /&gt;
* December 21 -- [[MuscleNerd]], of [[the dev team]] does a live demo of the 3G unlock, dubbed as 'yellowsn0w': http://qik.com/video/729275&lt;br /&gt;
&lt;br /&gt;
===August===&lt;br /&gt;
* August 18 -- [[The dev team]] releases [http://wikee.iphwn.org/news:pwnage20announcement QuickPwn], a 2.x [[pwnage]]/ramdisk combination exploit that allows jailbreaking without needing to create custom IPSWs.&lt;br /&gt;
&lt;br /&gt;
===July===&lt;br /&gt;
* July 22 -- [[TA_Mobile]] hardware dumps the 3G baseband (bootloader 5.8 &amp;amp; FW 1.45.00) by desoldering the [[NOR]].&lt;br /&gt;
* July 19 -- [[The dev team]] releases [[PwnageTool]] 2.0, jailbreaking and unlocking the 2.0 software on the iPhone 2G and jailbreaking the 2.0 software on the iPhone 3G.&lt;br /&gt;
* July 11 -- [[iPhone 3G]] is released.&lt;br /&gt;
&lt;br /&gt;
===June===&lt;br /&gt;
* June 9 - [[iPhone 3G]] is announced at [[WWDC]] '08.&lt;br /&gt;
&lt;br /&gt;
===April===&lt;br /&gt;
* April 3 -- Dev team releases [[PwnageTool]] 1.0, making use of the pmdx exploit (to patch RSA checks out of the [[kernel]], to write unsigned to [[NOR]])&lt;br /&gt;
&lt;br /&gt;
===March===&lt;br /&gt;
* March 12 -- Dev team releases dual-boot jailbreak method, only to be silently fixed in 2.0.&lt;br /&gt;
* March 4 -- [[User:N000b|George Zhu (n000b)]] releases [[ILiberty / ILiberty%2B]].&lt;br /&gt;
&lt;br /&gt;
===February===&lt;br /&gt;
* February 28 -- [[Cydia]] is released as an open-source alternative to Installer.app, and prepares to take over the jailbreak application scene upon 2.0's release.&lt;br /&gt;
* February 11 -- [[Zibri]] releases [[ZiPhone]], the first all-in-one unlock, activate, jailbreak solution.&lt;br /&gt;
* February 8 -- [[User:Geohot|geohot]] releases software unlock for 4.6, Apple states 25% of phones were never activated with AT&amp;amp;T.&lt;br /&gt;
&lt;br /&gt;
===January===&lt;br /&gt;
* January 28 -- Dev team releases soft upgrade jailbreak for 1.1.3.&lt;br /&gt;
* January 18 -- Geohot and his friends [http://iphonejtag.blogspot.com/2008/01/112-otb-unlocked.html unlocked 1.1.2 OTB 4.6 by test point], the unbeatable version at that time.&lt;br /&gt;
* January 18 -- Dev team posts YouTube video of a jailbroken 1.1.3, which was made possible by the dual boot jailbreak from bgm.&lt;br /&gt;
&lt;br /&gt;
== 2007 ==&lt;br /&gt;
===November===&lt;br /&gt;
* November 15 -- New baseband [[Bootloader 4.6|bootloader (4.6)]] comes out, new iPhones can't be unlocked.&lt;br /&gt;
* November 2 -- [[Jailbreakme]] is released, bringing jailbreaking to the mainstream iPhone user.&lt;br /&gt;
&lt;br /&gt;
===October===&lt;br /&gt;
* October 23 -- iPhone-Elite Team releases the [[Virginizer]].&lt;br /&gt;
* October 14 -- AriX releases iJailBreak, the first automated iPod touch jailbreak for the Mac.&lt;br /&gt;
* October 12 -- planetbeing releases touchFree, the first automated iPod touch jailbreak.&lt;br /&gt;
* October 10 -- niacin, cmw, and dre release the [[LibTiff]] exploit to jailbreak the iPod touch, which is later adapted for use in [[Jailbreakme]].&lt;br /&gt;
&lt;br /&gt;
===September===&lt;br /&gt;
* September 11 -- [[The dev team]] releases [[iUnlock]], first free software unlock.&lt;br /&gt;
* September 10 -- [[IPSF]] releases first paid software unlock.&lt;br /&gt;
* September 9 -- Apple announces the [[iPod touch]] at a media event.&lt;br /&gt;
&lt;br /&gt;
===August===&lt;br /&gt;
* August 23 -- [[User:Geohot|geohot]] and team release [[hardware unlock]] method.&lt;br /&gt;
* August 21 -- Installer.app is released by Nullriver, first GUI apps are distributed.&lt;br /&gt;
&lt;br /&gt;
===July===&lt;br /&gt;
* July 23 -- First phones are used with other carriers by means of [[SIM hacks]].&lt;br /&gt;
* July 20 -- nightwatch adapts a [[toolchain]] to the iPhone. The first apps are compiled.&lt;br /&gt;
* July 9 -- [[The dev team]] releases a [[jailbreak]] method. The first use of this is ringtones.&lt;br /&gt;
* July 3 -- DVD Jon first cracks [[activation]]. People can use the apps on the phone without a subscription.&lt;br /&gt;
&lt;br /&gt;
===June===&lt;br /&gt;
* June 29 -- [[iPhone]] is released. World's most hyped consumer product.&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Redsn0w&amp;diff=6913</id>
		<title>Redsn0w</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Redsn0w&amp;diff=6913"/>
		<updated>2010-07-13T16:30:44Z</updated>

		<summary type="html">&lt;p&gt;Redart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The redsn0w program (at version 0.1) was originally a [[QuickPwn]]-like implementation of the [[0x24000 Segment Overflow]] for the [[N72ap|iPod Touch 2G]]. However, due to the theft and exploitation of the name (as QuickPWN) by quickpwn.com, as of firmware 3.0, QuickPwn was discontinued and redsn0w (at the time, version 0.7) was converted into a jailbreaking tool for all current devices as well as providing unlock support the iPhone 2G. &lt;br /&gt;
&lt;br /&gt;
As of version 0.8, the [[N88ap|iPhone 3GS]] can also be jailbroken through redsn0w. It is currently closed-sourced but the executable is being worked into several third-party GUIs as the underlying engine can also be used as a commandline tool. &lt;br /&gt;
&lt;br /&gt;
Version 0.9 beta 3 was released for Windows and OS X, and it allows firmware 3.0 to 3.1.2 to be jailbroken. It includes support for all devices except the iPod touch 3G and supports a tethered jailbreak on late-model iPhone 3GS's and iPod touch 2G's. This latest version supports custom boot and recovery mode logos, as well as verbose-bootup. Final release, version [http://wikee.iphwn.org/howto:rs9 0.9.2] supports jailbreaking of all iDevices with firmware 3.0 or 3.1.2 on Windows and Mac OSX.&lt;br /&gt;
&lt;br /&gt;
Version [http://wikee.iphwn.org/howto:rsbeta 0.9.5b5-5] supports jailbreaking of iPhone 3G, iPT 2 with firmware 4.0 on Windows and Mac OSX.&lt;br /&gt;
&lt;br /&gt;
== Credit ==&lt;br /&gt;
[[iPhone Dev Team]]&lt;br /&gt;
&lt;br /&gt;
== Exploit ==&lt;br /&gt;
For [[iPod Touch]], [[iPhone]] and [[iPhone 3G]], see:&lt;br /&gt;
*[[Pwnage]]&lt;br /&gt;
*[[Pwnage_2.0|Pwnage 2.0]]&lt;br /&gt;
&lt;br /&gt;
For [[N72ap|iPod Touch 2G]], see:&lt;br /&gt;
*[[0x24000 Segment Overflow]] - Credit the work on this exploit goes to planetbeing, [[MuscleNerd]], and Chronic Dev.&lt;br /&gt;
*[[ARM7_Go]] - used to upload the oversized LLB required to take advantage of [[24kPwn]].&lt;br /&gt;
&lt;br /&gt;
For [[iPhone 3GS]], see:&lt;br /&gt;
*[[0x24000 Segment Overflow]]&lt;br /&gt;
*[[iBoot Environment Variable Overflow]] - Exploited independently, different implementation than the version that [[User:geohot|geohot]] released, [[purplera1n]].&lt;br /&gt;
&lt;br /&gt;
For [[N18ap|iPod Touch 3g]]&lt;br /&gt;
*[[usb_control_msg(0x21, 2) Exploit]]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Timeline&amp;diff=6912</id>
		<title>Timeline</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Timeline&amp;diff=6912"/>
		<updated>2010-07-13T15:57:25Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* Feb */ Added 2 feb info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2010==&lt;br /&gt;
===June===&lt;br /&gt;
*June 24 -- [[N90ap|iPhone 4]] is launched.&lt;br /&gt;
*June 21 -- [[iPhone Dev Team]] releases [[Ultrasn0w]] 0.93 , an unlock for baseband firmwares 4.26.08, 5.11.07, 5.12.01 and 5.13.04&lt;br /&gt;
&lt;br /&gt;
===May===&lt;br /&gt;
*May 3 -- Windows version of [[Spirit]] has been updated to not require Windows 98 compatibility mode to run and fixed a photo deletion issue.&lt;br /&gt;
*May 2 (?) -- [[comex]] releases [[Spirit]], an [[untethered jailbreak]] for all iDevices with firmware 3.1.2 through 3.2. Previously [[blackra1n]] was a tethered jailbreak on newer devices and people that updated to firmware 3.1.3 had no jailbreak at all.&lt;br /&gt;
&lt;br /&gt;
===Feb===&lt;br /&gt;
*Feb 12 -- [http://twitter.com/sherif_hashim sherif_hashim] discovers [[AT+XAPP Vulnerability]] and passes it to [[MuscleNerd]] elite member of the [[iPhone Dev Team]]&lt;br /&gt;
*Feb 2 -- Apple releases 3.1.3 firmware closing [[usb_control_msg(0x21, 2) Exploit|usb_control_msg(0x21, 2)]] vulnerability used by [[blackra1n]].&lt;br /&gt;
&lt;br /&gt;
==2009==&lt;br /&gt;
===November===&lt;br /&gt;
*November 3 -- [[Geohot]] releases [[blackra1n]] RC3, a software jailbreak for all devices. Includes a new unlock for the baseband 5.11.07 called [[blacksn0w]] and is also noticeably faster than previous versions.&lt;br /&gt;
&lt;br /&gt;
===October===&lt;br /&gt;
*October 11 -- [[Geohot]] releases [[blackra1n]] RC1, a 30 second software jailbreak for all devices, including a tethered jailbreak for the [[iPod touch 3G]].&lt;br /&gt;
&lt;br /&gt;
===September===&lt;br /&gt;
* September 24 -- [[ih8sn0w|ih8sn0w]] Discovers the [[AT+XEMN|AT+XEMN]] Vulnerability used in [[blacksn0w|blacksn0w]] independently.&lt;br /&gt;
* September 9 -- The [[iPod touch 3G]] w/ [[S5L8922]] processor is released, as well as an &amp;quot;MC Model&amp;quot; [[n72ap|iPod touch 2G]]. Both are no longer vulnerable to [[24kPwn]].&lt;br /&gt;
* Firmware 3.1/3.1.1 (7C144/7C145) Released to the Public. Firmware closes [[iBoot Environment Variable Overflow|iBoot Environment Variable Overflow]] and [[AT+XLOG Vulnerability|AT+XLOG]] + [[AT+FNS|AT+FNS]] Baseband Exploits.&lt;br /&gt;
&lt;br /&gt;
===July===&lt;br /&gt;
* July 14 -- [[Geohot]] releases [[purplesn0w]], a software unlock for the [[iPhone 3GS]] using [[AT+XLOG Vulnerability|the same exploit as ultrasn0w]], but handled differently. Minutes later, an explanation and source code was posted.&lt;br /&gt;
* July 7 -- [[The dev team]] updates [[redsn0w]] and [[ultrasn0w]] to version 0.8, now with [[iPhone 3GS]] support. Saurik also updates Winterboard to support the [[iPhone 3GS]].&lt;br /&gt;
* July 3 -- [[Geohot]] releases [[purplera1n]], a software jailbreak for the [[iPhone 3GS]].&lt;br /&gt;
&lt;br /&gt;
===June===&lt;br /&gt;
* June 28 -- [[Geohot]] posts pictures on his blog of the first fully jailbroken [[iPhone 3GS]].&lt;br /&gt;
* June 25 -- It's discovered that [[iPhone 3GS]] is vulnerable to [[0x24000 Segment Overflow|24kpwn]] exploit.&lt;br /&gt;
* June 24 -- [[The dev team]] release [[ultrasn0w]] unlock for [[iPhone 3G]] thanks to [[AT+XLOG Vulnerability|a new exploit]] discovered by [[User:Oranav|Oranav]].&lt;br /&gt;
* June 23 -- [[Geohot]] announces he's found a new exploit in [[iBoot]] he calls purplera1n.&lt;br /&gt;
* June 19 -- Release of [[iPhone2,1|iPhone 3GS]] to the public and the release of [[PwnageTool|Pwnage Tool 3.0]] and [[RedSn0w|Redsn0w]] for jailbreaking devices running firmware 3.0&lt;br /&gt;
* June 17 -- Release of firmware 3.0 to the public.&lt;br /&gt;
* June 8 -- Apple announces the [[iPhone2,1|iPhone 3GS]].&lt;br /&gt;
&lt;br /&gt;
===March===&lt;br /&gt;
* March 10 -- The [[0x24000 Segment Overflow|untethered jailbreak]] for the [[iPod touch 2G]] is released thanks to the combined work of chronic, CPICH, posixninja, pod2g, ius, planetbeing, [[MuscleNerd]], and co after being leaked and sold by [[NitroKey]]. To prevent users wasting their money on a stolen exploit, the Hybrid DevTeam decided to release it immediately.&lt;br /&gt;
&lt;br /&gt;
===January===&lt;br /&gt;
* January 31 -- The [[iPhone Dev Team]] released a [[redsn0w Lite]], a tethered jailbreak for the [[N72ap|iPod touch 2G]].  It combines the [[ARM7 Go]] vulnerability with the well-established pwnage flow for other Apple mobile devices. It was bundled in a way that will allow usage on the 2.2.1 firmware through uploading the [[ARM7 Go]] vulnerable 2.1.1 iBoot to the device while in DFU mode.&lt;br /&gt;
&lt;br /&gt;
* January 25 -- [[0wnboot]] is released to chronicdev google code page, thanks to AriX, chronic, CPICH, westbaer, ius, pod2g, the rest of the iPod devel crew on IRC, and to the #iphone-hax lab rats. Within days, the AriX and the chronic dev team got a ramdisk booting for a tethered jailbreak.&lt;br /&gt;
&lt;br /&gt;
* January 17 -- [[MuscleNerd]] of the [[iPhone Dev Team]] [http://twitter.com/MuscleNerd/status/1127346766 shows a video demo] of the first jailbroken iPod Touch 2G.&lt;br /&gt;
&lt;br /&gt;
* January 16 -- [[ARM7 Go]] hole disclosed where else but here on The iPhone Wiki, for developers to poke and prod at&lt;br /&gt;
&lt;br /&gt;
* January 15 -- The [[iPhone Dev Team]] [http://twitter.com/iphone_dev/status/1120595069 tweets the vfdecrypt key] for the [[iPod touch 2G]] 2.2 firmware, demonstrating for the first time that unsigned code can now be run on that device.&lt;br /&gt;
&lt;br /&gt;
* January 1 -- The [[iPhone Dev Team]] releases [[yellowsn0w]] 0.9 beta for baseband 02.28.00.&lt;br /&gt;
&lt;br /&gt;
==2008==&lt;br /&gt;
&lt;br /&gt;
===December===&lt;br /&gt;
* December 21 -- [[MuscleNerd]], of [[the dev team]] does a live demo of the 3G unlock, dubbed as 'yellowsn0w': http://qik.com/video/729275&lt;br /&gt;
&lt;br /&gt;
===August===&lt;br /&gt;
* August 18 -- [[The dev team]] releases [http://wikee.iphwn.org/news:pwnage20announcement QuickPwn], a 2.x [[pwnage]]/ramdisk combination exploit that allows jailbreaking without needing to create custom IPSWs.&lt;br /&gt;
&lt;br /&gt;
===July===&lt;br /&gt;
* July 22 -- [[TA_Mobile]] hardware dumps the 3G baseband (bootloader 5.8 &amp;amp; FW 1.45.00) by desoldering the [[NOR]].&lt;br /&gt;
* July 19 -- [[The dev team]] releases [[PwnageTool]] 2.0, jailbreaking and unlocking the 2.0 software on the iPhone 2G and jailbreaking the 2.0 software on the iPhone 3G.&lt;br /&gt;
* July 11 -- [[iPhone 3G]] is released.&lt;br /&gt;
&lt;br /&gt;
===June===&lt;br /&gt;
* June 9 - [[iPhone 3G]] is announced at [[WWDC]] '08.&lt;br /&gt;
&lt;br /&gt;
===April===&lt;br /&gt;
* April 3 -- Dev team releases [[PwnageTool]] 1.0, making use of the pmdx exploit (to patch RSA checks out of the [[kernel]], to write unsigned to [[NOR]])&lt;br /&gt;
&lt;br /&gt;
===March===&lt;br /&gt;
* March 12 -- Dev team releases dual-boot jailbreak method, only to be silently fixed in 2.0.&lt;br /&gt;
* March 4 -- [[User:N000b|George Zhu (n000b)]] releases [[ILiberty / ILiberty%2B]].&lt;br /&gt;
&lt;br /&gt;
===February===&lt;br /&gt;
* February 28 -- [[Cydia]] is released as an open-source alternative to Installer.app, and prepares to take over the jailbreak application scene upon 2.0's release.&lt;br /&gt;
* February 11 -- [[Zibri]] releases [[ZiPhone]], the first all-in-one unlock, activate, jailbreak solution.&lt;br /&gt;
* February 8 -- [[User:Geohot|geohot]] releases software unlock for 4.6, Apple states 25% of phones were never activated with AT&amp;amp;T.&lt;br /&gt;
&lt;br /&gt;
===January===&lt;br /&gt;
* January 28 -- Dev team releases soft upgrade jailbreak for 1.1.3.&lt;br /&gt;
* January 18 -- Geohot and his friends [http://iphonejtag.blogspot.com/2008/01/112-otb-unlocked.html unlocked 1.1.2 OTB 4.6 by test point], the unbeatable version at that time.&lt;br /&gt;
* January 18 -- Dev team posts YouTube video of a jailbroken 1.1.3, which was made possible by the dual boot jailbreak from bgm.&lt;br /&gt;
&lt;br /&gt;
== 2007 ==&lt;br /&gt;
===November===&lt;br /&gt;
* November 15 -- New baseband [[Bootloader 4.6|bootloader (4.6)]] comes out, new iPhones can't be unlocked.&lt;br /&gt;
* November 2 -- [[Jailbreakme]] is released, bringing jailbreaking to the mainstream iPhone user.&lt;br /&gt;
&lt;br /&gt;
===October===&lt;br /&gt;
* October 23 -- iPhone-Elite Team releases the [[Virginizer]].&lt;br /&gt;
* October 14 -- AriX releases iJailBreak, the first automated iPod touch jailbreak for the Mac.&lt;br /&gt;
* October 12 -- planetbeing releases touchFree, the first automated iPod touch jailbreak.&lt;br /&gt;
* October 10 -- niacin, cmw, and dre release the [[LibTiff]] exploit to jailbreak the iPod touch, which is later adapted for use in [[Jailbreakme]].&lt;br /&gt;
&lt;br /&gt;
===September===&lt;br /&gt;
* September 11 -- [[The dev team]] releases [[iUnlock]], first free software unlock.&lt;br /&gt;
* September 10 -- [[IPSF]] releases first paid software unlock.&lt;br /&gt;
* September 9 -- Apple announces the [[iPod touch]] at a media event.&lt;br /&gt;
&lt;br /&gt;
===August===&lt;br /&gt;
* August 23 -- [[User:Geohot|geohot]] and team release [[hardware unlock]] method.&lt;br /&gt;
* August 21 -- Installer.app is released by Nullriver, first GUI apps are distributed.&lt;br /&gt;
&lt;br /&gt;
===July===&lt;br /&gt;
* July 23 -- First phones are used with other carriers by means of [[SIM hacks]].&lt;br /&gt;
* July 20 -- nightwatch adapts a [[toolchain]] to the iPhone. The first apps are compiled.&lt;br /&gt;
* July 9 -- [[The dev team]] releases a [[jailbreak]] method. The first use of this is ringtones.&lt;br /&gt;
* July 3 -- DVD Jon first cracks [[activation]]. People can use the apps on the phone without a subscription.&lt;br /&gt;
&lt;br /&gt;
===June===&lt;br /&gt;
* June 29 -- [[iPhone]] is released. World's most hyped consumer product.&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Usb_control_msg(0x21,_2)_Exploit&amp;diff=6911</id>
		<title>Usb control msg(0x21, 2) Exploit</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Usb_control_msg(0x21,_2)_Exploit&amp;diff=6911"/>
		<updated>2010-07-13T15:47:32Z</updated>

		<summary type="html">&lt;p&gt;Redart: Info about 3.1.3 closing exploit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:usb_control_msg(0x21, 2) Exploit}}&lt;br /&gt;
This vulnerability exists in versions 3.1, 3.1.1, 3.1.2 (and probably previous) of iBoot on all iDevices, fixed in 3.1.3 firmware. Users of iPhone 3GS (new bootrom), iPT2 (MC) and iPT3 who saved their SHSH for 3.1.2 firmware can use it for tethered jailbreak of firmware 4.0 [http://ih8sn0wforums.com/viewtopic.php?f=56&amp;amp;t=1928]&lt;br /&gt;
== Credit (Alphabetical) ==&lt;br /&gt;
* '''vulnerability''': pod2g and westbaer, also discovered independently by gray, also discovered independently by [[geohot]]&lt;br /&gt;
* '''exploitation''': ius, chronic, pod2g, and posixninja&lt;br /&gt;
* '''payload ([[greenpois0n]])''': chronic and posixninja&lt;br /&gt;
&lt;br /&gt;
== Vulnerability ==&lt;br /&gt;
'''pod2g''' and '''westbaer''' discovered, via some reversing + fuzzing, you could overwrite the content of 0x0 thanks to Apple not checking the contents of a register they should have, shown in the disassm below. Now, the reason that this is useful is because the MMU maps whatever is running ([[LLB]], [[iBoot]], etc.) to 0x0 so that if an exception vector is triggered, it would jump to the one designed to be used with what is running, versus jumping to what is normally located at 0x0, the [[S5L8920 (Bootrom)|bootrom]].&lt;br /&gt;
&lt;br /&gt;
All you need to do is send the following (assuming you're using libusb 0.1.x)...&lt;br /&gt;
 usb_control_msg(iDev, 0x21, 2, 0, 0, 0, 0, 1000);&lt;br /&gt;
And thanks to our vulnerability, it will do this:&lt;br /&gt;
 memcpy(0, LOAD_ADDR, 0x2000);&lt;br /&gt;
&lt;br /&gt;
As you can see, we have full control over the first 0x2000 bytes of iBoot.&lt;br /&gt;
&lt;br /&gt;
=== Disassm ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// R5: a pointer to a buffer is here if requesttype==0xA1.&lt;br /&gt;
//     however, if requesttype==0x21, R5 is undefined.&lt;br /&gt;
&lt;br /&gt;
SRAM:22009ED2                 code_1                                  ; CODE XREF: handle_file_io_control_req+62�j&lt;br /&gt;
SRAM:22009ED2 014 36 49                       LDR     R1, =usb_file_loadaddr&lt;br /&gt;
SRAM:22009ED4 014 36 4B                       LDR     R3, =usb_file_offset&lt;br /&gt;
SRAM:22009ED6 014 28 68                       LDR     R0, [R5]&lt;br /&gt;
SRAM:22009ED8 014 09 68                       LDR     R1, [R1]&lt;br /&gt;
SRAM:22009EDA 014 1B 68                       LDR     R3, [R3]&lt;br /&gt;
SRAM:22009EDC 014 22 1C                       ADDS    R2, R4, #0&lt;br /&gt;
SRAM:22009EDE 014 C9 18                       ADDS    R1, R1, R3&lt;br /&gt;
SRAM:22009EE0 014 07 F0 94 EF                 BLX     memcpy&lt;br /&gt;
SRAM:22009EE4 014 00 2E                       CMP     R6, #0&lt;br /&gt;
SRAM:22009EE6 014 53 D0                       BEQ     return&lt;br /&gt;
SRAM:22009EE8 014 01 23                       MOVS    R3, #1&lt;br /&gt;
SRAM:22009EEA 014 33 60                       STR     R3, [R6]&lt;br /&gt;
SRAM:22009EEC 014 50 E0                       B       return&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exploitation ==&lt;br /&gt;
So, how do you actually run code with this? Well, '''chronic''' suggested that since the irq vector was in constant use, we try that, so we were able to simply replace the address of the irq vector handler (0x00000038) in the 0x2000 [[iBoot]] chunk that we send with 0x41002000, and then just tack our payload to the end of that chunk. Of course, since we are hijacking the irq exception, you must disable interrupts first. Here is the basic procedure:&lt;br /&gt;
* Call enter_critical_task(); disabling interrupts, so that your code can reliably execute.&lt;br /&gt;
* Restore 0x38 (irq handler) with the original irq vector address&lt;br /&gt;
* '''DO WHAT YOU WANT AT THIS POINT, YOU MAY NOT USE INTERRUPTS'''.&lt;br /&gt;
* Call exit_critical_task(); re-enabling interrupts.&lt;br /&gt;
* Call the irq handler so that the interrupt request that you hijacked can execute.&lt;br /&gt;
&lt;br /&gt;
=== Roadblocks ===&lt;br /&gt;
* If what you send is not 0x2000 bytes, the remainder is filled in with zeroes, which is bad.&lt;br /&gt;
* Due to the above rule, you need the first 0x2000 of a decrypted iBoot by the time your payload is done running.&lt;br /&gt;
* You must disable interrupts to reliably execute your payload. Due to this, this will rule out the possibility of reading the 0x2000 iBoot chunk needed from NOR, since nor_read(); requires interrupts.&lt;br /&gt;
&lt;br /&gt;
One way to get around the need of sending the 0x2000 [[iBoot]] chunk is to hook the image_load(); function in the LLB which is sitting intact in memory. This was successfully done in [[blackra1n]]. &lt;br /&gt;
&lt;br /&gt;
The [[PwnageTool]] method requires an [[IPSW]] to be input in order to create a custom firmware anyway, so the 0x2000 chunk is not an issue. It can just be copied from the [[iBoot]] in the [[IPSW]].&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
[[blackra1n]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Exploits]]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=6552</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=6552"/>
		<updated>2010-06-18T05:35:35Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* iPhone */ It seems that BB WF for 1.0.0 was incorrect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the operating system the iPhone/iPod Touch runs. Latest Apple download links can be found [http://www.itunes.com/version here].&lt;br /&gt;
&lt;br /&gt;
==Comparison of firmware versions==&lt;br /&gt;
&lt;br /&gt;
===[[K48ap|iPad]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[Baseband]] (3G only)&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.2&lt;br /&gt;
| [[Wildcat 7B367 (iPad)|Wildcat 7B367]]&lt;br /&gt;
| 06.15.00&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPad/061-7987.20100403.mjiTr/iPad1,1_3.2_7B367_Restore.ipsw iPad1,1_3.2_7B367_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;172e8297af74b91971a802e6ad137c891f553099&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 478,959,325&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[M68ap|iPhone]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[Alpine 1A420]]&lt;br /&gt;
| [http://img399.imageshack.us/i/iphone2go0.jpg/ 03.06.01_G]&lt;br /&gt;
| iphoneproto.zip&lt;br /&gt;
| &amp;lt;code&amp;gt;6e798e906c6590a7521ef89b731569be6d05b3aa&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prototype; [http://forums.macrumors.com/showthread.php?t=627449 macrumors]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 109,813,128&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0&lt;br /&gt;
| Heavenly 1A543a&lt;br /&gt;
| 03.11.02_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3538.20070629.B7vXa/iPhone1,1_1.0_1A543a_Restore.ipsw iPhone1,1_1.0_1A543a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;fb8bb3ee2e9a997affbb97868599f2995c78209c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial US shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,604,348&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1&lt;br /&gt;
| Heavenly 1C25&lt;br /&gt;
| 03.12.06_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3614.20070731.Nt6Y7/iPhone1,1_1.0.1_1C25_Restore.ipsw iPhone1,1_1.0.1_1C25_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a00b85a7a55d62a94be5fbf5effbc42fd63f3097&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,958&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| Heavenly 1C28&lt;br /&gt;
| 03.14.08_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3823.20070821.vormd/iPhone1,1_1.0.2_1C28_Restore.ipsw iPhone1,1_1.0.2_1C28_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;7f5c0ff1f84a0202b75a55c3fcb362e415334d1e&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,324&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Snowbird 3A109a&lt;br /&gt;
| 04.01.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3883.20070927.In76t/iPhone1,1_1.1.1_3A109a_Restore.ipsw iPhone1,1_1.1.1_3A109a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;d441dd1c71ce18f25d8fc4faa71c1e6eaa02d02c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 159,668,150&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oktoberfest 3B48b&lt;br /&gt;
| 04.02.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4037.20071107.5Bghn/iPhone1,1_1.1.2_3B48b_Restore.ipsw iPhone1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;797c02e7d660940e8d9a16cc7229ccf3f67dd8b1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial Euro shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 167,927,501&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Little Bear 4A93&lt;br /&gt;
| 04.03.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4061.20080115.4Fvn7/iPhone1,1_1.1.3_4A93_Restore.ipsw iPhone1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b3dec7580bd00dc4faf28449d9618ef40aeacc96&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,950,551&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| Little Bear 4A102&lt;br /&gt;
| 04.04.05_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4313.20080226.Sw39i/iPhone1,1_1.1.4_4A102_Restore.ipsw iPhone1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;000811bac096011b50ebf6ec1ec2285b62fda4cb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,946,442&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4956.20080710.V50OI/iPhone1,1_2.0_5A347_Restore.ipsw iPhone1,1_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9c510a3cfce789fa5f92a8f763c231bac82ff6d4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 228,768,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5135.20080729.Vfgtr/iPhone1,1_2.0.1_5B108_Restore.ipsw iPhone1,1_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;61de6a2bd6ceddc9ecabad1671b91a59b3824bc4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 254,048,068&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5246.20080818.2V0hO/iPhone1,1_2.0.2_5C1_Restore.ipsw iPhone1,1_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b84b57bea919bdc720287ec908c1378e7d7b5e1b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 253,589,000&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F136&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5202.20080909.gkbEj/iPhone1,1_2.1_5F136_Restore.ipsw iPhone1,1_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;353b7745767b85932e14e262e69463620939bdf7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,171,241&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5779.20081120.Pt5yH/iPhone1,1_2.2_5G77_Restore.ipsw iPhone1,1_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;cbfc6ff886ce89868a55547b9fb980dbf92e6418&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,576,980&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5830.20090127.Mmni6/iPhone1,1_2.2.1_5H11_Restore.ipsw iPhone1,1_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;43b95ebe1e51f8d30eae916053396595c08440d3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,593,705&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone)|Kirkwood 7A341]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6580.20090617.XsP76/iPhone1,1_3.0_7A341_Restore.ipsw iPhone1,1_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;2afd3f8ede17390737f508473ed205506a0bd23f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,394,111&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| [[Kirkwood 7A400 (iPhone)|Kirkwood 7A400]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6974.20090731.Cf4Tg/iPhone1,1_3.0.1_7A400_Restore.ipsw  iPhone1,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34c391fbbc7b31b159372766de39ce5c9cc26ebb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,439,502&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone)|Northstar 7C144]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6605.20090909.PQ3ws/iPhone1,1_3.1_7C144_Restore.ipsw iPhone1,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b7b5f436f81c6f855410e8b44a3d432ccaacd6fc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,536,460&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone)|Northstar 7D11]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7268.20091008.32pNe/iPhone1,1_3.1.2_7D11_Restore.ipsw iPhone1,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e4a1171542dbbd3093516d9c02047b9f7e143050&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,515,888&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPhone)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7481.20100202.4orot/iPhone1,1_3.1.3_7E18_Restore.ipsw iPhone1,1_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;eab23a7f8d2a17cb71046c50fc5f67ec390a3c2b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 238,319,275&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N82ap|iPhone 3G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A345&lt;br /&gt;
| 01.45.00&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| 01.45.00&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4955.20080710.bgt53/iPhone1,2_2.0_5A347_Restore.ipsw iPhone1,2_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;af9506ca0034e462674f9f59c5406f159eaf9fc1&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 235,957,125&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| 01.48.02&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5134.20080729.Q2W3E/iPhone1,2_2.0.1_5B108_Restore.ipsw iPhone1,2_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e81c7ac7e334a3e9d81b3b47894bfaa1ec495482&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 261,224,227&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| 02.08.01&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5241.20080818.t5Fv3/iPhone1,2_2.0.2_5C1_Restore.ipsw iPhone1,2_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;bef7fef954293046420fbcf947379839178a195b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 260,761,030&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F136&lt;br /&gt;
| 02.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5198.20080909.K3294/iPhone1,2_2.1_5F136_Restore.ipsw iPhone1,2_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c6957dcbf2a95ccfd6dce374a727b1b7700a9043&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 249,341,655&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| 02.28.00&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5778.20081120.Aqw4R/iPhone1,2_2.2_5G77_Restore.ipsw iPhone1,2_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f67f8b2b842428bf89456cda0c2d5cf954d111a4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[Ultrasn0w|yellowsn0w]]}}&lt;br /&gt;
| 258,342,348&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| 02.30.03&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5828.20090127.aQLi8/iPhone1,2_2.2.1_5H11_Restore.ipsw iPhone1,2_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e0098e6fab5c90b59e067e03ae3ccd4a7cd0f39c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 258,359,073&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3G)|Kirkwood 7A341]]&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6578.20090617.VfgtU/iPhone1,2_3.0_7A341_Restore.ipsw iPhone1,2_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;94f1fb43de12bff0f168ce690b7e794cc6220ae3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[Ultrasn0w|ultrasn0w]]}}&lt;br /&gt;
| 241,229,233&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| [[Kirkwood 7A400 (iPhone 3G)|Kirkwood 7A400]]&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6972.20090731.Zx3Rr/iPhone1,2_3.0.1_7A400_Restore.ipsw  iPhone1,2_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a148ff39fa4dea499e7a9dd007b63e90c4f56666&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[Ultrasn0w|ultrasn0w]]}}&lt;br /&gt;
| 241,274,617&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3G)|Northstar 7C144]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6600.20090909.AwndZ/iPhone1,2_3.1_7C144_Restore.ipsw iPhone1,2_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b3b3c148170b012012278efda9ff5c38282d559&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[blacksn0w]]}}&lt;br /&gt;
| 253,361,339&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone 3G)|Northstar 7D11]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7265.20091008.Xsd32/iPhone1,2_3.1.2_7D11_Restore.ipsw iPhone1,2_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b1a6ab2771bb5da372ba75a8fa3e1d72b71359d0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[blacksn0w]]}}&lt;br /&gt;
| 253,340,786&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPhone 3G)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| 05.12.01&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7468.20100202.pbnrt/iPhone1,2_3.1.3_7E18_Restore.ipsw iPhone1,2_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f5950afca546f93e281ba3cdb08bc0cfed7f0896&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 239,139,281&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N88ap|iPhone 3GS]]===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3GS)|Kirkwood 7A341]]&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6582.20090617.LlI87/iPhone2,1_3.0_7A341_Restore.ipsw iPhone2,1_3.0_7A341_Restore.ipsw] &lt;br /&gt;
| &amp;lt;code&amp;gt;d8534408c8679c830fd0c4e36ef9762c11ef73df&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[Ultrasn0w|ultrasn0w]]}}&lt;br /&gt;
| 312,292,933&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| Kirkwood 7A400&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6976.20090731.Vgbt5/iPhone2,1_3.0.1_7A400_Restore.ipsw  iPhone2,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;30006575af931e3da0521febace005152cdb8853&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[Ultrasn0w|ultrasn0w]]}}&lt;br /&gt;
| 312,330,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3GS)|Northstar 7C144]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6609.20090909.mwws4/iPhone2,1_3.1_7C144_Restore.ipsw  iPhone2,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;527c74f87588afa1d69c1e2c08eedc88f113013a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[blacksn0w]]}}&lt;br /&gt;
| 321,011,474&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone 3GS)|Northstar 7D11]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7270.20091008.phn32/iPhone2,1_3.1.2_7D11_Restore.ipsw iPhone2,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6998bb7d9e869b2d89a08853312f9457d070fb1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[blacksn0w]]}}&lt;br /&gt;
| 321,015,700&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPhone 3GS)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| 05.12.01&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7472.20100202.8tugj/iPhone2,1_3.1.3_7E18_Restore.ipsw iPhone2,1_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8cb3775e62c6f72059a962bf891b4e145b965052&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 305,122,343&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N90ap|iPhone 4]]===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 4.0&lt;br /&gt;
| [[Apex 8A293 (iPhone 4)|Apex 8A293]]&lt;br /&gt;
| 01.59.00&lt;br /&gt;
| not released yet&lt;br /&gt;
| ?&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N45ap|iPod touch (1st generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Snowbird 3A100a&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Snowbird 3A101a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3882.20070910.N8uyT/iPod1,1_1.1_3A101a_Restore.ipsw iPod1,1_1.1_3A101a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b0d83c7f8b4328174a3f31e0e93f60e591ae143&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,890,186&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Snowbird 3A110a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3932.20070927.p23dD/iPod1,1_1.1.1_3A110a_Restore.ipsw iPod1,1_1.1.1_3A110a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;84bbc6ea8bf29745195bc9926c1874f7c2a36f32&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,906,686&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oktoberfest 3B48b&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4036.20071107.9g3DF/iPod1,1_1.1.2_3B48b_Restore.ipsw iPod1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;108d8ffe9ea75e61cd5e57170ad388b7fa00d923&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 165,567,897&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Little Bear 4A93&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-4060.20080115.9Iuh5/iPod1,1_1.1.3_4A93_Restore.ipsw iPod1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8dca23eec69d5ae58fbf3d4a23276e46cbb2e3c6&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,511,411&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| Little Bear 4A102&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4312.20080226.Btu45/iPod1,1_1.1.4_4A102_Restore.ipsw iPod1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c148d1eb1c979bb6434175411d4a372103a4fdd2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,589&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.5&lt;br /&gt;
| Little Bear 4B1&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4841.20080714.bgy8O/iPod1,1_1.1.5_4B1_Restore.ipsw iPod1,1_1.1.5_4B1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;1b818911316e4248ee01d3ec67f9d39afc3db240&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;ae82798e85f9953b0f4798bad36187cb020c9d22&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 233,409,573&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;a81b6e7af4b85ef436d047f9da57c0f694d8964a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,660,321&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c8b6f9fefa3f3777c56285dfe4c735b1e08a81a2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,201,218&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F137&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc7f6d0972927df502ffca47438ca75dcccffaf3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 251,155,156&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;081a7de363230fb38d0ce092cbbe42f2a50c8a5f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,186,851&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc69be9e421bc0630567184506ab771f6b7ef68b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,166,688&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| Kirkwood 7A341&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;dff2bd14931225908a360fb8e60a336f17d2dd6d&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,458,552&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| Northstar 7C145&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c6270780c166db4c9f4f0a7fa945754a1f9fe7e8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 249,755,862&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;7367dd9ba58a3b9777307368a0128e696fdfc9a6&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| 249,780,497&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| SUNorthstarTwo 7E18&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;5f897990f19d2f093b35e0813d7d77806404fb1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 235,678,189&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N72ap|iPod touch (2nd generation)]]===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.1&lt;br /&gt;
| [[Sugar Bowl 5F138]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-5494.20080909.8i9o0/iPod2,1_2.1.1_5F138_Restore.ipsw iPod2,1_2.1.1_5F138_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c3c700be49ad227d1152188e7c1e46b8958fd1e4&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 282,083,944&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-5358.20081120.Gtghy/iPod2,1_2.2_5G77a_Restore.ipsw iPod2,1_2.2_5G77a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34a0a489605f34d6cc6c9954edcaaf9a050deedc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,123,491&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5863.20090127.rt56K/iPod2,1_2.2.1_5H11a_Restore.ipsw iPod2,1_2.2.1_5H11a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9af5625ea34acdd8abeb6fce71a72651d0c815d5&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,140,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPod touch 2G)|Kirkwood 7A341]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;0f7fc76d9b9aa826b5ab14be9821a315d3d9dc42&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.x is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 270,315,364&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 2G)|Northstar 7C145]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e0d8800a4fc7cc5be6976ddbceb43c2d2a7120d7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 277,753,989&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPod touch 2G)|Northstar 7D11]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e7c83d4a5baec0e81816ae1cd1caf9a4dc38ebf0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| 277,794,671&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPod touch 2G)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;5f4f5c01eda2f811f73167e7d1f82dbeed82367b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 263,275,211&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N18AP|iPod touch (3rd generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C145]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-7163.20090909.NtstR/iPod3,1_3.1.1_7C145_Restore.ipsw iPod3,1_3.1.1_7C145_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a3eddbe2cf77858bae7087dc8b2035f0d3097e57&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
&lt;br /&gt;
| 311,702,789&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C146]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7238.20090918.23GhT/iPod3,1_3.1.1_7C146_Restore.ipsw iPod3,1_3.1.1_7C146_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f66a7286b261137f25ddbbd84047f9a7ea181904&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 311,690,768&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPod touch 3G)|Northstar 7D11]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7271.20091008.Tch23/iPod3,1_3.1.2_7D11_Restore.ipsw iPod3,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;02dcee28d788d594a2939ab564f4f183af6ccdf2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 311,740,034&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| SUNorthstarTwo 7E18&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7473.20100202.4i44t/iPod3,1_3.1.3_7E18_Restore.ipsw iPod3,1_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;375fd469b18bfc0b74c7cfa5b4d5945197b1d106&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 295,870,806&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[VFDecrypt Keys]]&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
*[http://www.trejan.com/projects/ipod/ Firmware List]&lt;br /&gt;
*[http://pastebin.ca/1209360 A link of interest...]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=5791</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=5791"/>
		<updated>2010-02-04T13:47:15Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* iPhone 3GS */ Custom 3GS FW 3.1.3 is out&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the operating system the iPhone/iPod Touch runs. Latest Apple download links can be found [http://www.itunes.com/version here].&lt;br /&gt;
&lt;br /&gt;
==Comparison of firmware versions==&lt;br /&gt;
&lt;br /&gt;
===[[M68ap|iPhone]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[Alpine 1A420]]&lt;br /&gt;
| [http://img399.imageshack.us/i/iphone2go0.jpg/ 03.06.01_G]&lt;br /&gt;
| iphoneproto.zip&lt;br /&gt;
| &amp;lt;code&amp;gt;6e798e906c6590a7521ef89b731569be6d05b3aa&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prototype; [http://forums.macrumors.com/showthread.php?t=627449 macrumors]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 109,813,128&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0&lt;br /&gt;
| Heavenly 1A543a&lt;br /&gt;
| 03.12.06_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3538.20070629.B7vXa/iPhone1,1_1.0_1A543a_Restore.ipsw iPhone1,1_1.0_1A543a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;fb8bb3ee2e9a997affbb97868599f2995c78209c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial US shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,604,348&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1&lt;br /&gt;
| Heavenly 1C25&lt;br /&gt;
| 03.12.06_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3614.20070731.Nt6Y7/iPhone1,1_1.0.1_1C25_Restore.ipsw iPhone1,1_1.0.1_1C25_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a00b85a7a55d62a94be5fbf5effbc42fd63f3097&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,958&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| Heavenly 1C28&lt;br /&gt;
| 03.14.08_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3823.20070821.vormd/iPhone1,1_1.0.2_1C28_Restore.ipsw iPhone1,1_1.0.2_1C28_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;7f5c0ff1f84a0202b75a55c3fcb362e415334d1e&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,324&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Snowbird 3A109a&lt;br /&gt;
| 04.01.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3883.20070927.In76t/iPhone1,1_1.1.1_3A109a_Restore.ipsw iPhone1,1_1.1.1_3A109a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;d441dd1c71ce18f25d8fc4faa71c1e6eaa02d02c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 159,668,150&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oktoberfest 3B48b&lt;br /&gt;
| 04.02.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4037.20071107.5Bghn/iPhone1,1_1.1.2_3B48b_Restore.ipsw iPhone1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;797c02e7d660940e8d9a16cc7229ccf3f67dd8b1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial Euro shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 167,927,501&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Little Bear 4A93&lt;br /&gt;
| 04.03.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4061.20080115.4Fvn7/iPhone1,1_1.1.3_4A93_Restore.ipsw iPhone1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b3dec7580bd00dc4faf28449d9618ef40aeacc96&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,950,551&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| Little Bear 4A102&lt;br /&gt;
| 04.04.05_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4313.20080226.Sw39i/iPhone1,1_1.1.4_4A102_Restore.ipsw iPhone1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;000811bac096011b50ebf6ec1ec2285b62fda4cb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,946,442&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4956.20080710.V50OI/iPhone1,1_2.0_5A347_Restore.ipsw iPhone1,1_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9c510a3cfce789fa5f92a8f763c231bac82ff6d4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 228,768,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5135.20080729.Vfgtr/iPhone1,1_2.0.1_5B108_Restore.ipsw iPhone1,1_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;61de6a2bd6ceddc9ecabad1671b91a59b3824bc4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 254,048,068&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5246.20080818.2V0hO/iPhone1,1_2.0.2_5C1_Restore.ipsw iPhone1,1_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b84b57bea919bdc720287ec908c1378e7d7b5e1b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 253,589,000&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F136&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5202.20080909.gkbEj/iPhone1,1_2.1_5F136_Restore.ipsw iPhone1,1_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;353b7745767b85932e14e262e69463620939bdf7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,171,241&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5779.20081120.Pt5yH/iPhone1,1_2.2_5G77_Restore.ipsw iPhone1,1_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;cbfc6ff886ce89868a55547b9fb980dbf92e6418&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,576,980&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5830.20090127.Mmni6/iPhone1,1_2.2.1_5H11_Restore.ipsw iPhone1,1_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;43b95ebe1e51f8d30eae916053396595c08440d3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,593,705&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone)|Kirkwood 7A341]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6580.20090617.XsP76/iPhone1,1_3.0_7A341_Restore.ipsw iPhone1,1_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;2afd3f8ede17390737f508473ed205506a0bd23f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,394,111&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| [[Kirkwood 7A400 (iPhone)|Kirkwood 7A400]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6974.20090731.Cf4Tg/iPhone1,1_3.0.1_7A400_Restore.ipsw  iPhone1,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34c391fbbc7b31b159372766de39ce5c9cc26ebb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,439,502&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone)|Northstar 7C144]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6605.20090909.PQ3ws/iPhone1,1_3.1_7C144_Restore.ipsw iPhone1,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b7b5f436f81c6f855410e8b44a3d432ccaacd6fc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,536,460&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone)|Northstar 7D11]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7268.20091008.32pNe/iPhone1,1_3.1.2_7D11_Restore.ipsw iPhone1,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e4a1171542dbbd3093516d9c02047b9f7e143050&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,515,888&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPhone)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7481.20100202.4orot/iPhone1,1_3.1.3_7E18_Restore.ipsw iPhone1,1_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;eab23a7f8d2a17cb71046c50fc5f67ec390a3c2b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 238,319,275&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N82ap|iPhone 3G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A345&lt;br /&gt;
| 01.45.00&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| 01.45.00&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4955.20080710.bgt53/iPhone1,2_2.0_5A347_Restore.ipsw iPhone1,2_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;af9506ca0034e462674f9f59c5406f159eaf9fc1&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 235,957,125&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| 01.48.02&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5134.20080729.Q2W3E/iPhone1,2_2.0.1_5B108_Restore.ipsw iPhone1,2_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e81c7ac7e334a3e9d81b3b47894bfaa1ec495482&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 261,224,227&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| 02.08.01&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5241.20080818.t5Fv3/iPhone1,2_2.0.2_5C1_Restore.ipsw iPhone1,2_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;bef7fef954293046420fbcf947379839178a195b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 260,761,030&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F136&lt;br /&gt;
| 02.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5198.20080909.K3294/iPhone1,2_2.1_5F136_Restore.ipsw iPhone1,2_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c6957dcbf2a95ccfd6dce374a727b1b7700a9043&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 249,341,655&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| 02.28.00&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5778.20081120.Aqw4R/iPhone1,2_2.2_5G77_Restore.ipsw iPhone1,2_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f67f8b2b842428bf89456cda0c2d5cf954d111a4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[Ultrasn0w|yellowsn0w]]}}&lt;br /&gt;
| 258,342,348&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| 02.30.03&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5828.20090127.aQLi8/iPhone1,2_2.2.1_5H11_Restore.ipsw iPhone1,2_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e0098e6fab5c90b59e067e03ae3ccd4a7cd0f39c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 258,359,073&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3G)|Kirkwood 7A341]]&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6578.20090617.VfgtU/iPhone1,2_3.0_7A341_Restore.ipsw iPhone1,2_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;94f1fb43de12bff0f168ce690b7e794cc6220ae3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[Ultrasn0w|ultrasn0w]]}}&lt;br /&gt;
| 241,229,233&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| Kirkwood 7A400&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6972.20090731.Zx3Rr/iPhone1,2_3.0.1_7A400_Restore.ipsw  iPhone1,2_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a148ff39fa4dea499e7a9dd007b63e90c4f56666&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[Ultrasn0w|ultrasn0w]]}}&lt;br /&gt;
| 241,274,617&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3G)|Northstar 7C144]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6600.20090909.AwndZ/iPhone1,2_3.1_7C144_Restore.ipsw iPhone1,2_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b3b3c148170b012012278efda9ff5c38282d559&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[blacksn0w]]}}&lt;br /&gt;
| 253,361,339&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone 3G)|Northstar 7D11]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7265.20091008.Xsd32/iPhone1,2_3.1.2_7D11_Restore.ipsw iPhone1,2_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b1a6ab2771bb5da372ba75a8fa3e1d72b71359d0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[blacksn0w]]}}&lt;br /&gt;
| 253,340,786&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPhone 3G)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| 05.12.01&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7468.20100202.pbnrt/iPhone1,2_3.1.3_7E18_Restore.ipsw iPhone1,2_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f5950afca546f93e281ba3cdb08bc0cfed7f0896&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 239,139,281&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N88ap|iPhone 3GS]]===&lt;br /&gt;
Due to a new bootrom designed to close the [[0x24000 Segment Overflow]], an iPhone 3GS produced around year 2009 week 40/41 or later is currently limited to a '''tethered jailbreak'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;120&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;210&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;140&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;95&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3GS)|Kirkwood 7A341]]&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6582.20090617.LlI87/iPhone2,1_3.0_7A341_Restore.ipsw iPhone2,1_3.0_7A341_Restore.ipsw] &lt;br /&gt;
| &amp;lt;code&amp;gt;d8534408c8679c830fd0c4e36ef9762c11ef73df&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[Ultrasn0w|ultrasn0w]]}}&lt;br /&gt;
| 312,292,933&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| Kirkwood 7A400&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6976.20090731.Vgbt5/iPhone2,1_3.0.1_7A400_Restore.ipsw  iPhone2,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;30006575af931e3da0521febace005152cdb8853&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[Ultrasn0w|ultrasn0w]]}}&lt;br /&gt;
| 312,330,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3GS)|Northstar 7C144]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6609.20090909.mwws4/iPhone2,1_3.1_7C144_Restore.ipsw  iPhone2,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;527c74f87588afa1d69c1e2c08eedc88f113013a&amp;lt;/code&amp;gt;&lt;br /&gt;
| Installed on phones produced week 37.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[blacksn0w]]}}&lt;br /&gt;
| 321,011,474&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone 3GS)|Northstar 7D11]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7270.20091008.phn32/iPhone2,1_3.1.2_7D11_Restore.ipsw iPhone2,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6998bb7d9e869b2d89a08853312f9457d070fb1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|[[blacksn0w]]}}&lt;br /&gt;
| 321,015,700&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPhone 3GS)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| 05.12.01&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7472.20100202.8tugj/iPhone2,1_3.1.3_7E18_Restore.ipsw iPhone2,1_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8cb3775e62c6f72059a962bf891b4e145b965052&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{no|No, for OTB phones}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 305,122,343&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N45ap|iPod touch (1st generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Snowbird 3A100a&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Snowbird 3A101a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3882.20070910.N8uyT/iPod1,1_1.1_3A101a_Restore.ipsw iPod1,1_1.1_3A101a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b0d83c7f8b4328174a3f31e0e93f60e591ae143&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,890,186&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Snowbird 3A110a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3932.20070927.p23dD/iPod1,1_1.1.1_3A110a_Restore.ipsw iPod1,1_1.1.1_3A110a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;84bbc6ea8bf29745195bc9926c1874f7c2a36f32&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,906,686&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oktoberfest 3B48b&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4036.20071107.9g3DF/iPod1,1_1.1.2_3B48b_Restore.ipsw iPod1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;108d8ffe9ea75e61cd5e57170ad388b7fa00d923&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 165,567,897&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Little Bear 4A93&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-4060.20080115.9Iuh5/iPod1,1_1.1.3_4A93_Restore.ipsw iPod1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8dca23eec69d5ae58fbf3d4a23276e46cbb2e3c6&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,511,411&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| Little Bear 4A102&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4312.20080226.Btu45/iPod1,1_1.1.4_4A102_Restore.ipsw iPod1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c148d1eb1c979bb6434175411d4a372103a4fdd2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,589&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.5&lt;br /&gt;
| Little Bear 4B1&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4841.20080714.bgy8O/iPod1,1_1.1.5_4B1_Restore.ipsw iPod1,1_1.1.5_4B1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;1b818911316e4248ee01d3ec67f9d39afc3db240&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;ae82798e85f9953b0f4798bad36187cb020c9d22&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 233,409,573&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;a81b6e7af4b85ef436d047f9da57c0f694d8964a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,660,321&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c8b6f9fefa3f3777c56285dfe4c735b1e08a81a2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,201,218&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F137&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc7f6d0972927df502ffca47438ca75dcccffaf3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 251,155,156&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;081a7de363230fb38d0ce092cbbe42f2a50c8a5f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,186,851&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc69be9e421bc0630567184506ab771f6b7ef68b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,166,688&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| Kirkwood 7A341&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;dff2bd14931225908a360fb8e60a336f17d2dd6d&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,458,552&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| Northstar 7C145&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c6270780c166db4c9f4f0a7fa945754a1f9fe7e8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 249,755,862&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;7367dd9ba58a3b9777307368a0128e696fdfc9a6&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| 249,780,497&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| SUNorthstarTwo 7E18&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;5f897990f19d2f093b35e0813d7d77806404fb1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 235,678,189&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N72ap|iPod touch (2nd generation)]]===&lt;br /&gt;
Due to a new bootrom designed to close the [[0x24000 Segment Overflow]], an iPod touch 2G with a model number beginning with &amp;quot;MC&amp;quot; is currently limited to a tethered jailbreak.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.1&lt;br /&gt;
| [[Sugar Bowl 5F138]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-5494.20080909.8i9o0/iPod2,1_2.1.1_5F138_Restore.ipsw iPod2,1_2.1.1_5F138_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c3c700be49ad227d1152188e7c1e46b8958fd1e4&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 282,083,944&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-5358.20081120.Gtghy/iPod2,1_2.2_5G77a_Restore.ipsw iPod2,1_2.2_5G77a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34a0a489605f34d6cc6c9954edcaaf9a050deedc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,123,491&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5863.20090127.rt56K/iPod2,1_2.2.1_5H11a_Restore.ipsw iPod2,1_2.2.1_5H11a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9af5625ea34acdd8abeb6fce71a72651d0c815d5&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,140,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPod touch 2G)|Kirkwood 7A341]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;0f7fc76d9b9aa826b5ab14be9821a315d3d9dc42&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 270,315,364&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 2G)|Northstar 7C145]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e0d8800a4fc7cc5be6976ddbceb43c2d2a7120d7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 277,753,989&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e7c83d4a5baec0e81816ae1cd1caf9a4dc38ebf0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| 277,794,671&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| [[SUNorthstarTwo 7E18 (iPod touch 2G)|SUNorthstarTwo 7E18]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;5f4f5c01eda2f811f73167e7d1f82dbeed82367b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 263,275,211&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N18AP|iPod touch (3rd generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;220&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C145]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-7163.20090909.NtstR/iPod3,1_3.1.1_7C145_Restore.ipsw iPod3,1_3.1.1_7C145_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a3eddbe2cf77858bae7087dc8b2035f0d3097e57&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| style=&amp;quot;background:yellow; color:black;&amp;quot; class=&amp;quot;table-yes&amp;quot; | Tethered&lt;br /&gt;
&lt;br /&gt;
| 311,702,789&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C146]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7238.20090918.23GhT/iPod3,1_3.1.1_7C146_Restore.ipsw iPod3,1_3.1.1_7C146_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f66a7286b261137f25ddbbd84047f9a7ea181904&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background:yellow; color:black;&amp;quot; class=&amp;quot;table-yes&amp;quot; | Tethered&lt;br /&gt;
| 311,690,768&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7271.20091008.Tch23/iPod3,1_3.1.2_7D11_Restore.ipsw iPod3,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;02dcee28d788d594a2939ab564f4f183af6ccdf2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background:yellow; color:black;&amp;quot; class=&amp;quot;table-yes&amp;quot; | Tethered&lt;br /&gt;
| 311,740,034&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.3&lt;br /&gt;
| SUNorthstarTwo 7E18&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7473.20100202.4i44t/iPod3,1_3.1.3_7E18_Restore.ipsw iPod3,1_3.1.3_7E18_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;375fd469b18bfc0b74c7cfa5b4d5945197b1d106&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 295,870,806&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[VFDecrypt Keys]]&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
*[http://www.trejan.com/projects/ipod/ Firmware List]&lt;br /&gt;
*[http://pastebin.ca/1209360 A link of interest...]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=MobileDevice_Library&amp;diff=5667</id>
		<title>MobileDevice Library</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=MobileDevice_Library&amp;diff=5667"/>
		<updated>2009-11-20T19:29:16Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* MobileDevice Header (mobiledevice.h) */ Added version info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MobileDevice Library is used by [[iTunes]] to transfer data between iPhone and computer over the USB connection.&lt;br /&gt;
&lt;br /&gt;
===PC Windows : iTunesMobileDevice.dll===&lt;br /&gt;
&lt;br /&gt;
* Location : Location is stored in '''iTunesMobileDeviceDLL''' registry value under '''HKLM\SOFTWARE\Apple Inc.\Apple Mobile Device Support\Shared''' key. Usually - C:\Program Files\Common Files\Apple\Mobile Device Support\bin\iTunesMobileDevice.dll.&lt;br /&gt;
&lt;br /&gt;
* Supporting CoreFoundation.dll (used for CFStringRef, CFPropertyListRef management) is located in the same dir (when using iTunes prior 9.0). &lt;br /&gt;
&lt;br /&gt;
* For iTunes 9.0 location of CoreFoundation.dll is stored in '''InstallDir''' registry value under '''HKLM\SOFTWARE\Apple Inc.\Apple Application Support''' key, usually C:\Program Files\Common Files\Apple\Apple Application Support\. CoreFoundation.dll from Mobile Device Support\bin should not be used.&lt;br /&gt;
&lt;br /&gt;
===Mac OSX : MobileDevice.framework===&lt;br /&gt;
&lt;br /&gt;
* Location : /System/Library/PrivateFrameworks/MobileDevice.framework&lt;br /&gt;
* Export command : &amp;quot;nm /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===MobileDevice Header (mobiledevice.h)===&lt;br /&gt;
&lt;br /&gt;
Reverse engineered C header for MobileDevice Library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* ----------------------------------------------------------------------------&lt;br /&gt;
 *   MobileDevice.h - interface to MobileDevice.framework &lt;br /&gt;
 * ------------------------------------------------------------------------- */&lt;br /&gt;
#pragma once&lt;br /&gt;
&lt;br /&gt;
#ifndef MOBILEDEVICE_H&lt;br /&gt;
#define MOBILEDEVICE_H&lt;br /&gt;
&lt;br /&gt;
#ifdef __cplusplus&lt;br /&gt;
extern &amp;quot;C&amp;quot; {&lt;br /&gt;
#endif&lt;br /&gt;
	&lt;br /&gt;
#ifndef __GCC__&lt;br /&gt;
#pragma pack&lt;br /&gt;
#define __PACK&lt;br /&gt;
#else&lt;br /&gt;
#define __PACK __attribute__((__packed__))&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#if defined(WIN32)&lt;br /&gt;
#define __DLLIMPORT [DllImport(&amp;quot;iTunesMobileDevice.dll&amp;quot;)]&lt;br /&gt;
	using namespace System::Runtime::InteropServices;&lt;br /&gt;
#include &amp;lt;CoreFoundation.h&amp;gt;&lt;br /&gt;
	typedef unsigned int mach_error_t;&lt;br /&gt;
#elif defined(__APPLE__)&lt;br /&gt;
#define __DLLIMPORT&lt;br /&gt;
#include &amp;lt;CoreFoundation/CoreFoundation.h&amp;gt;&lt;br /&gt;
#include &amp;lt;mach/error.h&amp;gt;&lt;br /&gt;
#endif	&lt;br /&gt;
	&lt;br /&gt;
	/* Error codes */&lt;br /&gt;
#define MDERR_APPLE_MOBILE  (err_system(0x3a))&lt;br /&gt;
#define MDERR_IPHONE        (err_sub(0))&lt;br /&gt;
	&lt;br /&gt;
	/* Apple Mobile (AM*) errors */&lt;br /&gt;
#define MDERR_OK                ERR_SUCCESS&lt;br /&gt;
#define MDERR_SYSCALL           (ERR_MOBILE_DEVICE | 0x01)&lt;br /&gt;
#define MDERR_OUT_OF_MEMORY     (ERR_MOBILE_DEVICE | 0x03)&lt;br /&gt;
#define MDERR_QUERY_FAILED      (ERR_MOBILE_DEVICE | 0x04) &lt;br /&gt;
#define MDERR_INVALID_ARGUMENT  (ERR_MOBILE_DEVICE | 0x0b)&lt;br /&gt;
#define MDERR_DICT_NOT_LOADED   (ERR_MOBILE_DEVICE | 0x25)&lt;br /&gt;
	&lt;br /&gt;
	/* Apple File Connection (AFC*) errors */&lt;br /&gt;
#define MDERR_AFC_OUT_OF_MEMORY 0x03&lt;br /&gt;
	&lt;br /&gt;
	/* USBMux errors */&lt;br /&gt;
#define MDERR_USBMUX_ARG_NULL   0x16&lt;br /&gt;
#define MDERR_USBMUX_FAILED     0xffffffff&lt;br /&gt;
	&lt;br /&gt;
	/* Messages passed to device notification callbacks: passed as part of&lt;br /&gt;
	 * am_device_notification_callback_info. */&lt;br /&gt;
#define ADNCI_MSG_CONNECTED     1&lt;br /&gt;
#define ADNCI_MSG_DISCONNECTED  2&lt;br /&gt;
#define ADNCI_MSG_UNSUBSCRIBED  3&lt;br /&gt;
	&lt;br /&gt;
#define AMD_IPHONE_PRODUCT_ID   0x1290&lt;br /&gt;
	//#define AMD_IPHONE_SERIAL       &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	/* Services, found in /System/Library/Lockdown/Services.plist */&lt;br /&gt;
#define AMSVC_AFC                   CFSTR(&amp;quot;com.apple.afc&amp;quot;)&lt;br /&gt;
#define AMSVC_BACKUP                CFSTR(&amp;quot;com.apple.mobilebackup&amp;quot;)&lt;br /&gt;
#define AMSVC_CRASH_REPORT_COPY     CFSTR(&amp;quot;com.apple.crashreportcopy&amp;quot;)&lt;br /&gt;
#define AMSVC_DEBUG_IMAGE_MOUNT     CFSTR(&amp;quot;com.apple.mobile.debug_image_mount&amp;quot;)&lt;br /&gt;
#define AMSVC_NOTIFICATION_PROXY    CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;)&lt;br /&gt;
#define AMSVC_PURPLE_TEST           CFSTR(&amp;quot;com.apple.purpletestr&amp;quot;)&lt;br /&gt;
#define AMSVC_SOFTWARE_UPDATE       CFSTR(&amp;quot;com.apple.mobile.software_update&amp;quot;)&lt;br /&gt;
#define AMSVC_SYNC                  CFSTR(&amp;quot;com.apple.mobilesync&amp;quot;)&lt;br /&gt;
#define AMSVC_SCREENSHOT            CFSTR(&amp;quot;com.apple.screenshotr&amp;quot;)&lt;br /&gt;
#define AMSVC_SYSLOG_RELAY          CFSTR(&amp;quot;com.apple.syslog_relay&amp;quot;)&lt;br /&gt;
#define AMSVC_SYSTEM_PROFILER       CFSTR(&amp;quot;com.apple.mobile.system_profiler&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	typedef unsigned int afc_error_t;&lt;br /&gt;
	typedef unsigned int usbmux_error_t;&lt;br /&gt;
	&lt;br /&gt;
	struct am_recovery_device;&lt;br /&gt;
	&lt;br /&gt;
	struct am_device_notification_callback_info {&lt;br /&gt;
		struct am_device *dev;  /* 0    device */ &lt;br /&gt;
		unsigned int msg;       /* 4    one of ADNCI_MSG_* */&lt;br /&gt;
                struct am_device_notification* subscription; &lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device restore notification callback functions.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void (*am_restore_device_notification_callback)(struct am_recovery_device *);&lt;br /&gt;
	&lt;br /&gt;
	/* This is a CoreFoundation object of class AMRecoveryModeDevice. */&lt;br /&gt;
	struct am_recovery_device {&lt;br /&gt;
		unsigned char unknown0[8];                          /* 0 */&lt;br /&gt;
		am_restore_device_notification_callback callback;   /* 8 */&lt;br /&gt;
		void *user_info;                                    /* 12 */&lt;br /&gt;
		unsigned char unknown1[12];                         /* 16 */&lt;br /&gt;
		unsigned int readwrite_pipe;                        /* 28 */&lt;br /&gt;
		unsigned char read_pipe;                            /* 32 */&lt;br /&gt;
		unsigned char write_ctrl_pipe;                      /* 33 */&lt;br /&gt;
		unsigned char read_unknown_pipe;                    /* 34 */&lt;br /&gt;
		unsigned char write_file_pipe;                      /* 35 */&lt;br /&gt;
		unsigned char write_input_pipe;                     /* 36 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* A CoreFoundation object of class AMRestoreModeDevice. */&lt;br /&gt;
	struct am_restore_device {&lt;br /&gt;
		unsigned char unknown[32];&lt;br /&gt;
		int port;&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device notification callback function. */&lt;br /&gt;
	typedef void(*am_device_notification_callback)(struct am_device_notification_callback_info *, int cookie);&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the _AMDDeviceAttached function.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void *amd_device_attached_callback;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device restore notification callback functions.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void (*am_restore_device_notification_callback)(struct am_recovery_device *);&lt;br /&gt;
&lt;br /&gt;
	/* Structure that contains internal data used by AMDevice... functions. Never try &lt;br /&gt;
         * to access its members directly! Use AMDeviceCopyDeviceIdentifier, &lt;br /&gt;
         * AMDeviceGetConnectionID, AMDeviceRetain, AMDeviceRelease instead. */&lt;br /&gt;
	struct am_device {&lt;br /&gt;
		unsigned char unknown0[16]; /* 0 - zero */&lt;br /&gt;
		unsigned int device_id;     /* 16 */&lt;br /&gt;
		unsigned int product_id;    /* 20 - set to AMD_IPHONE_PRODUCT_ID */&lt;br /&gt;
		char *serial;               /* 24 - set to UDID, Unique Device Identifier */&lt;br /&gt;
		unsigned int unknown1;      /* 28 */&lt;br /&gt;
		unsigned int unknown2;      /* 32 - reference counter, increased by AMDeviceRetain, decreased by AMDeviceRelease*/&lt;br /&gt;
		unsigned int lockdown_conn; /* 36 */&lt;br /&gt;
		unsigned char unknown3[8];  /* 40 */&lt;br /&gt;
#if (__ITUNES_VER &amp;gt; 740)&lt;br /&gt;
		unsigned int unknown4;      /* 48 - used to store CriticalSection Handle*/&lt;br /&gt;
#endif&lt;br /&gt;
#if (__ITUNES_VER &amp;gt;= 800)&lt;br /&gt;
		unsigned char unknown5[24];  /* 52 */&lt;br /&gt;
#endif&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct am_device_notification {&lt;br /&gt;
		unsigned int unknown0;                      /* 0 */&lt;br /&gt;
		unsigned int unknown1;                      /* 4 */&lt;br /&gt;
		unsigned int unknown2;                      /* 8 */&lt;br /&gt;
		am_device_notification_callback callback;   /* 12 */ &lt;br /&gt;
		unsigned int cookie;                      /* 16 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct afc_connection {&lt;br /&gt;
		unsigned int handle;            /* 0 */&lt;br /&gt;
		unsigned int unknown0;          /* 4 */&lt;br /&gt;
		unsigned char unknown1;         /* 8 */&lt;br /&gt;
		unsigned char padding[3];       /* 9 */&lt;br /&gt;
		unsigned int unknown2;          /* 12 */&lt;br /&gt;
		unsigned int unknown3;          /* 16 */&lt;br /&gt;
		unsigned int unknown4;          /* 20 */&lt;br /&gt;
		unsigned int fs_block_size;     /* 24 */&lt;br /&gt;
		unsigned int sock_block_size;   /* 28: always 0x3c */&lt;br /&gt;
		unsigned int io_timeout;        /* 32: from AFCConnectionOpen, usu. 0 */&lt;br /&gt;
		void *afc_lock;                 /* 36 */&lt;br /&gt;
		unsigned int context;           /* 40 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	struct afc_device_info {&lt;br /&gt;
		unsigned char unknown[12];  /* 0 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
&lt;br /&gt;
	struct afc_directory {&lt;br /&gt;
		unsigned char unknown[0];   /* size unknown */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
&lt;br /&gt;
	struct afc_dictionary {&lt;br /&gt;
		unsigned char unknown[0];   /* size unknown */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	typedef unsigned long long afc_file_ref;&lt;br /&gt;
	&lt;br /&gt;
	struct usbmux_listener_1 {                  /* offset   value in iTunes */&lt;br /&gt;
		unsigned int unknown0;                  /* 0        1 */&lt;br /&gt;
		unsigned char *unknown1;                /* 4        ptr, maybe device? */&lt;br /&gt;
		amd_device_attached_callback callback;  /* 8        _AMDDeviceAttached */&lt;br /&gt;
		unsigned int unknown3;                  /* 12 */&lt;br /&gt;
		unsigned int unknown4;                  /* 16 */&lt;br /&gt;
		unsigned int unknown5;                  /* 20 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct usbmux_listener_2 {&lt;br /&gt;
		unsigned char unknown0[4144];&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct am_bootloader_control_packet {&lt;br /&gt;
		unsigned char opcode;       /* 0 */&lt;br /&gt;
		unsigned char length;       /* 1 */&lt;br /&gt;
		unsigned char magic[2];     /* 2: 0x34, 0x12 */&lt;br /&gt;
		unsigned char payload[0];   /* 4 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Public routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/*  Registers a notification with the current run loop. The callback gets&lt;br /&gt;
	 *  copied into the notification struct, as well as being registered with the&lt;br /&gt;
	 *  current run loop. Cookie gets copied into cookie in the same.&lt;br /&gt;
	 *  (Cookie is a user info parameter that gets passed as an arg to&lt;br /&gt;
	 *  the callback) unused0 and unused1 are both 0 when iTunes calls this.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Never try to acces directly or copy contents of dev and subscription fields &lt;br /&gt;
	 *  in am_device_notification_callback_info. Treat them as abstract handles. &lt;br /&gt;
	 *  When done with connection use AMDeviceRelease to free resources allocated for am_device.&lt;br /&gt;
	 *  &lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK            if successful&lt;br /&gt;
	 *      MDERR_SYSCALL       if CFRunLoopAddSource() failed&lt;br /&gt;
	 *      MDERR_OUT_OF_MEMORY if we ran out of memory&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceNotificationSubscribe(am_device_notification_callback callback, &lt;br /&gt;
								unsigned int unused0, unsigned int unused1, &lt;br /&gt;
								unsigned int cookie, &lt;br /&gt;
								struct am_device_notification **subscription);&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
        /* Unregisters notifications. Buggy (iTunes 8.2): if you subscribe, unsubscribe and subscribe again, arriving &lt;br /&gt;
           notifications will contain cookie and subscription from 1st call to subscribe, not the 2nd one. iTunes &lt;br /&gt;
           calls this function only once on exit.&lt;br /&gt;
        */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceNotificationUnsubscribe(am_device_notification* subscription);&lt;br /&gt;
&lt;br /&gt;
	/*  Returns device_id field of am_device structure&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMDeviceGetConnectionID(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/*  Returns serial field of am_device structure&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT CFStringRef AMDeviceCopyDeviceIdentifier(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/*  Connects to the iPhone. Pass in the am_device structure that the&lt;br /&gt;
	 *  notification callback will give to you.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successfully connected&lt;br /&gt;
	 *      MDERR_SYSCALL           if setsockopt() failed&lt;br /&gt;
	 *      MDERR_QUERY_FAILED      if the daemon query failed&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if USBMuxConnectByPort returned 0xffffffff&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceConnect(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  Calls PairingRecordPath() on the given device, than tests whether the path&lt;br /&gt;
	 *  which that function returns exists. During the initial connect, the path&lt;br /&gt;
	 *  returned by that function is '/', and so this returns 1.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      0   if the path did not exist&lt;br /&gt;
	 *      1   if it did&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceIsPaired(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDevicePair(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  iTunes calls this function immediately after testing whether the device is&lt;br /&gt;
	 *  paired. It creates a pairing file and establishes a Lockdown connection.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the supplied device is null&lt;br /&gt;
	 *      MDERR_DICT_NOT_LOADED   if the load_dict() call failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceValidatePairing(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  Creates a Lockdown session and adjusts the device structure appropriately&lt;br /&gt;
	 *  to indicate that the session has been started. iTunes calls this function&lt;br /&gt;
	 *  after validating pairing.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 *      MDERR_DICT_NOT_LOADED   if the load_dict() call failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStartSession(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	/* Reads various device settings. One of domain or cfstring arguments should be NULL.&lt;br /&gt;
         *&lt;br /&gt;
         * Possible values for cfstring:&lt;br /&gt;
	 * ActivationState&lt;br /&gt;
	 * ActivationStateAcknowledged&lt;br /&gt;
	 * BasebandBootloaderVersion&lt;br /&gt;
	 * BasebandVersion&lt;br /&gt;
	 * BluetoothAddress&lt;br /&gt;
	 * BuildVersion&lt;br /&gt;
	 * DeviceCertificate&lt;br /&gt;
	 * DeviceClass&lt;br /&gt;
	 * DeviceName&lt;br /&gt;
	 * DevicePublicKey&lt;br /&gt;
	 * FirmwareVersion&lt;br /&gt;
	 * HostAttached&lt;br /&gt;
	 * IntegratedCircuitCardIdentity&lt;br /&gt;
	 * InternationalMobileEquipmentIdentity&lt;br /&gt;
	 * InternationalMobileSubscriberIdentity&lt;br /&gt;
	 * ModelNumber&lt;br /&gt;
	 * PhoneNumber&lt;br /&gt;
	 * ProductType&lt;br /&gt;
	 * ProductVersion&lt;br /&gt;
	 * ProtocolVersion&lt;br /&gt;
	 * RegionInfo&lt;br /&gt;
	 * SBLockdownEverRegisteredKey&lt;br /&gt;
	 * SIMStatus&lt;br /&gt;
	 * SerialNumber&lt;br /&gt;
	 * SomebodySetTimeZone&lt;br /&gt;
	 * TimeIntervalSince1970&lt;br /&gt;
	 * TimeZone&lt;br /&gt;
	 * TimeZoneOffsetFromUTC&lt;br /&gt;
	 * TrustedHostAttached&lt;br /&gt;
	 * UniqueDeviceID&lt;br /&gt;
	 * Uses24HourClock&lt;br /&gt;
	 * WiFiAddress&lt;br /&gt;
	 * iTunesHasConnected&lt;br /&gt;
         *&lt;br /&gt;
         * Possible values for domain:&lt;br /&gt;
         * com.apple.mobile.battery&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT CFStringRef AMDeviceCopyValue(struct am_device *device, CFStringRef domain, CFStringRef cfstring);&lt;br /&gt;
	&lt;br /&gt;
	/* Starts a service and returns a socket file descriptor that can be used in order to further&lt;br /&gt;
	 * access the service. You should stop the session and disconnect before using&lt;br /&gt;
	 * the service. iTunes calls this function after starting a session. It starts &lt;br /&gt;
	 * the service and the SSL connection. service_name should be one of the AMSVC_*&lt;br /&gt;
	 * constants.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_SYSCALL           if the setsockopt() call failed&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStartService(struct am_device *device, CFStringRef &lt;br /&gt;
									  service_name, int *socket_fd);&lt;br /&gt;
	&lt;br /&gt;
	/* Stops a session. You should do this before accessing services.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStopSession(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/* Decrements reference counter and, if nothing left, releases resources hold &lt;br /&gt;
	 * by connection, invalidates  pointer to device&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT void AMDeviceRelease(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/* Increments reference counter&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT void AMDeviceRetain(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/* Opens an Apple File Connection. You must start the appropriate service&lt;br /&gt;
	 * first with AMDeviceStartService(). In iTunes, io_timeout is 0.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_AFC_OUT_OF_MEMORY if malloc() failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCConnectionOpen(int socket_fd, unsigned int io_timeout,&lt;br /&gt;
								  struct afc_connection **conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Pass in a pointer to an afc_dictionary structure. It will be filled. You can&lt;br /&gt;
	 * iterate it using AFCKeyValueRead. When done use AFCKeyValueClose. Possible keys:&lt;br /&gt;
	 * FSFreeBytes - free bytes on system device for afc2, user device for afc&lt;br /&gt;
	 * FSBlockSize - filesystem block size&lt;br /&gt;
	 * FSTotalBytes - size of device&lt;br /&gt;
	 * Model - iPhone1,1 etc.&lt;br /&gt;
&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDeviceInfoOpen(struct afc_connection *conn, struct&lt;br /&gt;
								  afc_dictionary **info);&lt;br /&gt;
	&lt;br /&gt;
	/* Turns debug mode on if the environment variable AFCDEBUG is set to a numeric&lt;br /&gt;
	 * value, or if the file '/AFCDEBUG' is present and contains a value. */&lt;br /&gt;
#if defined(__APPLE__)&lt;br /&gt;
	void AFCPlatformInit();&lt;br /&gt;
#endif&lt;br /&gt;
	&lt;br /&gt;
	/* Opens a directory on the iPhone. Pass in a pointer in dir to be filled in.&lt;br /&gt;
	 * Note that this normally only accesses the iTunes sandbox/partition as the&lt;br /&gt;
	 * root, which is /var/root/Media. Pathnames are specified with '/' delimiters&lt;br /&gt;
	 * as in Unix style. Use UTF-8 to specify non-ASCII symbols in path.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryOpen(struct afc_connection *conn, char *path, struct&lt;br /&gt;
								 afc_directory **dir);&lt;br /&gt;
	&lt;br /&gt;
	/* Acquires the next entry in a directory previously opened with&lt;br /&gt;
	 * AFCDirectoryOpen(). When dirent is filled with a NULL value, then the end&lt;br /&gt;
	 * of the directory has been reached. '.' and '..' will be returned as the&lt;br /&gt;
	 * first two entries in each directory except the root; you may want to skip&lt;br /&gt;
	 * over them.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful, even if no entries remain&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryRead(struct afc_connection *conn, struct afc_directory *dir,&lt;br /&gt;
								 char **dirent);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryClose(afc_connection *conn, struct afc_directory *dir);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryCreate(afc_connection *conn, char *dirname);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCRemovePath(afc_connection *conn, char *dirname);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCRenamePath(afc_connection *conn, char *oldpath, char *newpath);&lt;br /&gt;
&lt;br /&gt;
#if (__ITUNES_VER &amp;gt;= 800)&lt;br /&gt;
	/* Creates symbolic or hard link&lt;br /&gt;
         * linktype - int64: 1 means hard link, 2 - soft (symbolic) link&lt;br /&gt;
         * target - absolute or relative path to link target&lt;br /&gt;
         * linkname - absolute path where to create new link&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCLinkPath(struct afc_connection *conn, long long int linktype, const char *target, &lt;br /&gt;
								                              const char *linkname);&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
	/* Opens file for reading or writing without locking it in any way. afc_file_ref should not be shared between threads - &lt;br /&gt;
         * opening file in one thread and closing it in another will lead to possible crash.&lt;br /&gt;
	 * path - UTF-8 encoded absolute path to file&lt;br /&gt;
	 * mode 2 = read, mode 3 = write; unknown = 0 &lt;br /&gt;
	 * ref - receives file handle&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefOpen(struct afc_connection *conn, char *path, unsigned&lt;br /&gt;
							   long long int mode, afc_file_ref *ref);&lt;br /&gt;
	/* Reads specified amount (len) of bytes from file into buf. Puts actual count of read bytes into len on return&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefRead(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   void *buf, unsigned int *len);&lt;br /&gt;
	/* Writes specified amount (len) of bytes from buf into file.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefWrite(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
								void *buf, unsigned int len);&lt;br /&gt;
	/* Moves the file pointer to a specified location.&lt;br /&gt;
	 * offset - Number of bytes from origin (int64)&lt;br /&gt;
	 * origin - 0 = from beginning, 1 = from current position, 2 = from end&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefSeek(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   unsigned long long offset, int origin, int unused);&lt;br /&gt;
&lt;br /&gt;
	/* Gets the current position of a file pointer into offset argument.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefTell(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   unsigned long long* offset);&lt;br /&gt;
&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefLock(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefUnlock(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefClose(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
&lt;br /&gt;
	/* Opens dictionary describing specified file or directory (iTunes below 8.2 allowed using AFCGetFileInfo&lt;br /&gt;
	   to get the same information)&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileInfoOpen(struct afc_connection *conn, char *path, struct&lt;br /&gt;
								afc_dictionary **info);&lt;br /&gt;
&lt;br /&gt;
	/* Reads next entry from dictionary. When last entry is read, function returns NULL in key argument&lt;br /&gt;
	   Possible keys:&lt;br /&gt;
	     &amp;quot;st_size&amp;quot;:     val - size in bytes&lt;br /&gt;
	     &amp;quot;st_blocks&amp;quot;:   val - size in blocks&lt;br /&gt;
	     &amp;quot;st_nlink&amp;quot;:    val - number of hardlinks&lt;br /&gt;
	     &amp;quot;st_ifmt&amp;quot;:     val - &amp;quot;S_IFDIR&amp;quot; for folders&lt;br /&gt;
	                        &amp;quot;S_IFLNK&amp;quot; for symlinks&lt;br /&gt;
	     &amp;quot;LinkTarget&amp;quot;:  val - path to symlink target&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCKeyValueRead(struct afc_dictionary *dict, char **key, char **&lt;br /&gt;
								val);&lt;br /&gt;
	/* Closes dictionary&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCKeyValueClose(struct afc_dictionary *dict);&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the context field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetContext(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the fs_block_size field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetFSBlockSize(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the io_timeout field of the given AFC connection. In iTunes this is&lt;br /&gt;
	 * 0. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetIOTimeout(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the sock_block_size field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetSocketBlockSize(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Closes the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCConnectionClose(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Registers for device notifications related to the restore process. unknown0&lt;br /&gt;
	 * is zero when iTunes calls this. In iTunes,&lt;br /&gt;
	 * the callbacks are located at:&lt;br /&gt;
	 *      1: $3ac68e-$3ac6b1, calls $3ac542(unknown1, arg, 0)&lt;br /&gt;
	 *      2: $3ac66a-$3ac68d, calls $3ac542(unknown1, 0, arg)&lt;br /&gt;
	 *      3: $3ac762-$3ac785, calls $3ac6b2(unknown1, arg, 0)&lt;br /&gt;
	 *      4: $3ac73e-$3ac761, calls $3ac6b2(unknown1, 0, arg)&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreRegisterForDeviceNotifications(&lt;br /&gt;
				am_restore_device_notification_callback dfu_connect_callback,&lt;br /&gt;
				am_restore_device_notification_callback recovery_connect_callback,&lt;br /&gt;
				am_restore_device_notification_callback dfu_disconnect_callback,&lt;br /&gt;
				am_restore_device_notification_callback recovery_disconnect_callback,&lt;br /&gt;
				unsigned int unknown0,&lt;br /&gt;
				void *user_info);&lt;br /&gt;
	&lt;br /&gt;
	/* Causes the restore functions to spit out (unhelpful) progress messages to&lt;br /&gt;
	 * the file specified by the given path. iTunes always calls this right before&lt;br /&gt;
	 * restoring with a path of&lt;br /&gt;
	 * &amp;quot;$HOME/Library/Logs/iPhone Updater Logs/iPhoneUpdater X.log&amp;quot;, where X is an&lt;br /&gt;
	 * unused number.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreEnableFileLogging(char *path);&lt;br /&gt;
	&lt;br /&gt;
	/* Initializes a new option dictionary to default values. Pass the constant&lt;br /&gt;
	 * kCFAllocatorDefault as the allocator. The option dictionary looks as&lt;br /&gt;
	 * follows:&lt;br /&gt;
	 * {&lt;br /&gt;
	 *      NORImageType =&amp;gt; 'production',&lt;br /&gt;
	 *      AutoBootDelay =&amp;gt; 0,&lt;br /&gt;
	 *      KernelCacheType =&amp;gt; 'Release',&lt;br /&gt;
	 *      UpdateBaseband =&amp;gt; true,&lt;br /&gt;
	 *      DFUFileType =&amp;gt; 'RELEASE',&lt;br /&gt;
	 *      SystemImageType =&amp;gt; 'User',&lt;br /&gt;
	 *      CreateFilesystemPartitions =&amp;gt; true,&lt;br /&gt;
	 *      FlashNOR =&amp;gt; true,&lt;br /&gt;
	 *      RestoreBootArgs =&amp;gt; 'rd=md0 nand-enable-reformat=1 -progress'&lt;br /&gt;
	 *      BootImageType =&amp;gt; 'User'&lt;br /&gt;
	 *  }&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      the option dictionary   if successful&lt;br /&gt;
	 *      NULL                    if out of memory&lt;br /&gt;
	 */ &lt;br /&gt;
	__DLLIMPORT CFMutableDictionaryRef AMRestoreCreateDefaultOptions(CFAllocatorRef allocator);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented public routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestorePerformRecoveryModeRestore(struct am_recovery_device *&lt;br /&gt;
				rdev, CFDictionaryRef opts, void *callback, void *user_info);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestorePerformRestoreModeRestore(struct am_restore_device *&lt;br /&gt;
				rdev, CFDictionaryRef opts, void *callback, void *user_info);&lt;br /&gt;
	__DLLIMPORT struct am_restore_device *AMRestoreModeDeviceCreate(unsigned int unknown0,&lt;br /&gt;
				unsigned int connection_id, unsigned int unknown1);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreCreatePathsForBundle(CFStringRef restore_bundle_path,&lt;br /&gt;
				CFStringRef kernel_cache_type, CFStringRef boot_image_type, unsigned int&lt;br /&gt;
				unknown0, CFStringRef *firmware_dir_path, CFStringRef *&lt;br /&gt;
				kernelcache_restore_path, unsigned int unknown1, CFStringRef *&lt;br /&gt;
				ramdisk_path);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreModeDeviceReboot(struct am_restore_device *rdev);	// Added by JB 30.07.2008&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceEnterRecovery(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceDisconnect(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	/* to use this, start the service &amp;quot;com.apple.mobile.notification_proxy&amp;quot;, handle will be the socket to use */&lt;br /&gt;
	typedef void (*NOTIFY_CALLBACK)(CFSTR notification, USERDATA data);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDPostNotification(SOCKET socket, CFStringRef  notification, CFStringRef userinfo);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDObserveNotification(SOCKET socket, CFSTR notification);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDListenForNotifications(SOCKET socket, NOTIFY_CALLBACK cb, USERDATA data);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDShutdownNotificationProxy(SOCKET socket);&lt;br /&gt;
	&lt;br /&gt;
	/*edits by geohot*/&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceDeactivate(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceActivate(struct am_device *device, CFDictionaryRef dict);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceRemoveValue(struct am_device *device, unsigned int, CFStringRef cfstring);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Semi-private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/*  Pass in a usbmux_listener_1 structure and a usbmux_listener_2 structure&lt;br /&gt;
	 *  pointer, which will be filled with the resulting usbmux_listener_2.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if completed successfully&lt;br /&gt;
	 *      MDERR_USBMUX_ARG_NULL   if one of the arguments was NULL&lt;br /&gt;
	 *      MDERR_USBMUX_FAILED     if the listener was not created successfully&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT usbmux_error_t USBMuxListenerCreate(struct usbmux_listener_1 *esi_fp8, struct&lt;br /&gt;
										usbmux_listener_2 **eax_fp12);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented semi-private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	__DLLIMPORT usbmux_error_t USBMuxListenerHandleData(void *);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Private routines - here be dragons&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/* AMRestorePerformRestoreModeRestore() calls this function with a dictionary&lt;br /&gt;
	 * in order to perform certain special restore operations&lt;br /&gt;
	 * (RESTORED_OPERATION_*). It is thought that this function might enable&lt;br /&gt;
	 * significant access to the phone. */&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	 typedef unsigned int (*t_performOperation)(struct am_restore_device *rdev,&lt;br /&gt;
	 CFDictionaryRef op) __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_performOperation _performOperation = (t_performOperation)0x3c39fa4b;&lt;br /&gt;
	 */ &lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	 typedef int (*t_socketForPort)(struct am_restore_device *rdev, unsigned int port)&lt;br /&gt;
	 __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_socketForPort _socketForPort = (t_socketForPort)(void *)0x3c39f36c;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef void (*t_restored_send_message)(int port, CFDictionaryRef msg);&lt;br /&gt;
	 t_restored_send_message _restored_send_message = (t_restored_send_message)0x3c3a4e40;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef CFDictionaryRef (*t_restored_receive_message)(int port);&lt;br /&gt;
	 t_restored_receive_message _restored_receive_message = (t_restored_receive_message)0x3c3a4d40;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_sendControlPacket)(struct am_recovery_device *rdev, unsigned&lt;br /&gt;
	 int msg1, unsigned int msg2, unsigned int unknown0, unsigned int *unknown1,&lt;br /&gt;
	 unsigned char *unknown2) __attribute__ ((regparm(3)));&lt;br /&gt;
	 t_sendControlPacket _sendControlPacket = (t_sendControlPacket)0x3c3a3da3;;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_sendCommandToDevice)(struct am_recovery_device *rdev,&lt;br /&gt;
	 CFStringRef cmd) __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_sendCommandToDevice _sendCommandToDevice = (t_sendCommandToDevice)0x3c3a3e3b;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_AMRUSBInterfaceReadPipe)(unsigned int readwrite_pipe, unsigned&lt;br /&gt;
	 int read_pipe, unsigned char *data, unsigned int *len);&lt;br /&gt;
	 t_AMRUSBInterfaceReadPipe _AMRUSBInterfaceReadPipe = (t_AMRUSBInterfaceReadPipe)0x3c3a27e8;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_AMRUSBInterfaceWritePipe)(unsigned int readwrite_pipe, unsigned&lt;br /&gt;
	 int write_pipe, void *data, unsigned int len);&lt;br /&gt;
	 t_AMRUSBInterfaceWritePipe _AMRUSBInterfaceWritePipe = (t_AMRUSBInterfaceWritePipe)0x3c3a27cb;&lt;br /&gt;
	 */&lt;br /&gt;
	&lt;br /&gt;
	int performOperation(am_restore_device *rdev, CFMutableDictionaryRef message);&lt;br /&gt;
	int socketForPort(am_restore_device *rdev, unsigned int portnum);&lt;br /&gt;
	int sendCommandToDevice(am_recovery_device *rdev, CFStringRef cfs, int block);&lt;br /&gt;
	int sendFileToDevice(am_recovery_device *rdev, CFStringRef filename); &lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
#ifdef __cplusplus&lt;br /&gt;
}&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
/* -*- mode:c; indent-tabs-mode:nil; c-basic-offset:2; tab-width:2; */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AFC Connection===&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
===Locking the Device for Sync===&lt;br /&gt;
When iTunes sends a new song to the device, the device shows a &amp;quot;Sync in progress&amp;quot; screen and when complete, the Music app on the device re-reads the iTunesDB file so it picks up the new song.&lt;br /&gt;
&lt;br /&gt;
To get this behaviour, first start the notification service:&lt;br /&gt;
&amp;lt;pre&amp;gt;SOCKET socket;&lt;br /&gt;
AMDeviceStartService(dev, CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;), &amp;amp;socket, NULL);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we post a notificaton message to signal that we are going to start a sync:&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket, CFSTR(&amp;quot;com.apple.itunes-mobdev.syncWillStart&amp;quot;), NULL);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we open the itunes lock file:&lt;br /&gt;
&amp;lt;pre&amp;gt;afc_file_ref lockref;&lt;br /&gt;
AFCFileRefOpen(conn, &amp;quot;/com.apple.itunes.lock_sync&amp;quot;, 2, &amp;amp;lockref);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now post a notification to say we are going to lock this file, and try and lock it.&lt;br /&gt;
If the AFCFileRefLock call fails, pause and repeat.&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket, CFSTR(&amp;quot;com.apple.itunes-mobdev.syncLockRequest&amp;quot;), NULL);&lt;br /&gt;
mach_error_t error = AFCFileRefLock(conn, lockref);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the file is successfully locked, post another notification, and stop the notification service.&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket,CFSTR(&amp;quot;com.apple.itunes-mobdev.syncDidStart&amp;quot;), NULL);&lt;br /&gt;
AMDShutdownNotificationProxy(socket);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the sync can proceed, so copy your files across and make the changes to the iTunesDB.&lt;br /&gt;
&lt;br /&gt;
To release the lock, start the notification system again, unlock and close the lock file, and send a sync finished notification message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;AFCFileRefUnlock(conn, lockref);&lt;br /&gt;
AFCFileRefClose(conn, lockref);&lt;br /&gt;
AMDeviceStartService(dev, CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;), &amp;amp;socket, NULL);&lt;br /&gt;
AMDPostNotification(socket, &amp;amp;CFSTR(&amp;quot;com.apple.itunes-mobdev.syncDidFinish&amp;quot;), NULL);&lt;br /&gt;
AMDShutdownNotificationProxy(socket);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To handle &amp;quot;Slide to Cancel&amp;quot; and terminate sync when user slides cancel switch, use AMDObserveNotification to subscribe notifications about “com.apple.itunes-client.syncCancelRequest”. Then start listening for notifications (AMDListenForNotifications) until you get “AMDNotificationFaceplant”.&lt;br /&gt;
When notification got, you should unlock and close lock file handle (don’t sure if you need to post “syncDidFinish” to proxy, seems it doesn’t matter) and terminate sync gracefully.&lt;br /&gt;
The same notification is also got when you unplug your device, so you should always be ready for errors.&lt;br /&gt;
&lt;br /&gt;
NOTE: You may find that starting the notification_proxy service once and once only at the start of your app and using the same socket in calls to AMDPostNotification works better. iTunes opens and closes the notification_proxy regularly, but it appears to be a bit flakey when you open/close it all the time.&lt;br /&gt;
&lt;br /&gt;
===Private Functions===&lt;br /&gt;
&lt;br /&gt;
====How to find address of privates functions in iTunesMobileDevice.dll or MobileDevice.framework ?====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Libraries Implementations===&lt;br /&gt;
&lt;br /&gt;
* [http://gojohnnyboi.com/source/afcinstall.cpp afcinstall (command line, os x file install via afc)]&lt;br /&gt;
* [http://code.google.com/p/iphuc/ iPhuc (Command line utility)]&lt;br /&gt;
* [http://code.google.com/p/iphucwin32/ iPhuc Win32 (Command line utility)]&lt;br /&gt;
* [http://code.google.com/p/manzana/ manzana (.Net Library)]&lt;br /&gt;
* [http://code.google.com/p/independence/source/browse/trunk/libPhoneInteraction/ libPhoneInteraction (C Library)]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:Blackra1n&amp;diff=5365</id>
		<title>Talk:Blackra1n</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:Blackra1n&amp;diff=5365"/>
		<updated>2009-11-04T13:40:12Z</updated>

		<summary type="html">&lt;p&gt;Redart: Where is afc2?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Is there any reason why even RC3 doesn't add afc2 to services.plist? --[[User:Redart|Redart]] 13:40, 4 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Baseband_Bootloader&amp;diff=5305</id>
		<title>Baseband Bootloader</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Baseband_Bootloader&amp;diff=5305"/>
		<updated>2009-10-29T07:03:06Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* 6.4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The baseband bootloader is the code which runs before the baseband FW, it is responsible for signature checking and updating the baseband. See also [[bootloader]].&lt;br /&gt;
&lt;br /&gt;
==Revisions==&lt;br /&gt;
===3.9===&lt;br /&gt;
This is the old bootloader from the [[iPhone]]/[[S-Gold 2]]. It is vulnerable to [[Minus 0x400]] and [[IPSF]]&lt;br /&gt;
&lt;br /&gt;
===4.6===&lt;br /&gt;
This is the new bootloader from the [[iPhone]]/[[S-Gold 2]]. It is vulnerable to [[Minus 0x20000 with Back Extend Erase]]&lt;br /&gt;
&lt;br /&gt;
===5.8===&lt;br /&gt;
This is the bootloader from the [[iPhone 3G]]/[[X-Gold 608]]. It is, in contrast to 3.9 and 4.6, sig checked on startup. There is an exploit where the main fw cert is passed with the loader instead of the loader cert, and it checks the main firmware instead, allowing you to upload unsigned loader code. This has been fixed in 5.9. You can downgrade from 02.30.03 to 02.28.00 using [[pHaseBanDowngrader]] (by pH) in the Bootloader 5.8.&lt;br /&gt;
&lt;br /&gt;
DWD_ICE2_SECURE_BOOTLOADER/Secure_ICE2_Bootloader.5.8.fls.&lt;br /&gt;
&lt;br /&gt;
===5.9===&lt;br /&gt;
This is the bootloader of version 2.1 and 2.2 OTB (and some 2.0 OTB) [[iPhone 3G]]/[[X-Gold 608]]. Still has no known exploits and it was released as soon as Apple knew [[iPhone Dev Team]] could downgrade their iPhone 3G baseband from 1.48 to 1.45. Now, all the iPhone 3G has bootloader 5.9 and higher. &lt;br /&gt;
&lt;br /&gt;
DWD_ICE2_SECURE_BOOTLOADER/Secure_ICE2_Bootloader.5.9.fls&lt;br /&gt;
&lt;br /&gt;
===6.2===&lt;br /&gt;
This is the latest bootloader of version 2.2.1 OTB in 2008 [[iPhone 3G]]/[[X-Gold 608]]. Still has no known exploits and it was released as soon as Apple knew [[iPhone Dev Team]] could unlock their iPhone 3G baseband version 2.28 by yellowsn0w. Now, all the iPhone 3G 2.2.1 OTB has bootloader 6.2. &lt;br /&gt;
&lt;br /&gt;
DWD_ICE2_SECURE_BOOTLOADER/Secure_ICE2_Bootloader.6.2.fls&lt;br /&gt;
===6.4===&lt;br /&gt;
This is the latest bootloader of version 2.2.1 OTB in 2009 [[iPhone 3G]]/[[X-Gold 608]]. Still has no known exploits and it was released as soon as Apple released firmware 3.x beta for testing. All iPhone 3GS have bootloader 6.4 and same to iPhone 3G produced in 2009. The baseband firmware of 3.x (BB ver 4.x) now contents the loader of bootloader 6.4.&lt;br /&gt;
&lt;br /&gt;
DWD_ICE2_SECURE_BOOTLOADER/Secure_ICE2_Bootloader.6.4.fls&lt;br /&gt;
00.00:00.00:04.24 DRV_ICE2_IFWD_04.24.00 DUALMODE SGOLD3  Apr  7 2009       ÿÿÿÿ    &lt;br /&gt;
&lt;br /&gt;
[[Category:Baseband]]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:AT%2BXEMN_Heap_Overflow&amp;diff=5300</id>
		<title>Talk:AT+XEMN Heap Overflow</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:AT%2BXEMN_Heap_Overflow&amp;diff=5300"/>
		<updated>2009-10-28T16:34:33Z</updated>

		<summary type="html">&lt;p&gt;Redart: New page: Don't you think that public discussion of this vulnerability will allow Apple to fix it in the upcoming update and make all this discussions totaly useless? --~~~~&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Don't you think that public discussion of this vulnerability will allow Apple to fix it in the upcoming update and make all this discussions totaly useless? --[[User:Redart|Redart]] 16:34, 28 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=MobileDevice_Library&amp;diff=5222</id>
		<title>MobileDevice Library</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=MobileDevice_Library&amp;diff=5222"/>
		<updated>2009-10-18T22:00:00Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* MobileDevice Header (mobiledevice.h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MobileDevice Library is used by [[iTunes]] to transfer data between iPhone and computer over the USB connection.&lt;br /&gt;
&lt;br /&gt;
===PC Windows : iTunesMobileDevice.dll===&lt;br /&gt;
&lt;br /&gt;
* Location : Location is stored in '''iTunesMobileDeviceDLL''' registry value under '''HKLM\SOFTWARE\Apple Inc.\Apple Mobile Device Support\Shared''' key. Usually - C:\Program Files\Common Files\Apple\Mobile Device Support\bin\iTunesMobileDevice.dll.&lt;br /&gt;
&lt;br /&gt;
* Supporting CoreFoundation.dll (used for CFStringRef, CFPropertyListRef management) is located in the same dir (when using iTunes prior 9.0). &lt;br /&gt;
&lt;br /&gt;
* For iTunes 9.0 location of CoreFoundation.dll is stored in '''InstallDir''' registry value under '''HKLM\SOFTWARE\Apple Inc.\Apple Application Support''' key, usually C:\Program Files\Common Files\Apple\Apple Application Support\. CoreFoundation.dll from Mobile Device Support\bin should not be used.&lt;br /&gt;
&lt;br /&gt;
===Mac OSX : MobileDevice.framework===&lt;br /&gt;
&lt;br /&gt;
* Location : /System/Library/PrivateFrameworks/MobileDevice.framework&lt;br /&gt;
* Export command : &amp;quot;nm /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===MobileDevice Header (mobiledevice.h)===&lt;br /&gt;
&lt;br /&gt;
Reverse engineered C header for MobileDevice Library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* ----------------------------------------------------------------------------&lt;br /&gt;
 *   MobileDevice.h - interface to MobileDevice.framework &lt;br /&gt;
 * ------------------------------------------------------------------------- */&lt;br /&gt;
#pragma once&lt;br /&gt;
&lt;br /&gt;
#ifndef MOBILEDEVICE_H&lt;br /&gt;
#define MOBILEDEVICE_H&lt;br /&gt;
&lt;br /&gt;
#ifdef __cplusplus&lt;br /&gt;
extern &amp;quot;C&amp;quot; {&lt;br /&gt;
#endif&lt;br /&gt;
	&lt;br /&gt;
#ifndef __GCC__&lt;br /&gt;
#pragma pack&lt;br /&gt;
#define __PACK&lt;br /&gt;
#else&lt;br /&gt;
#define __PACK __attribute__((__packed__))&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#if defined(WIN32)&lt;br /&gt;
#define __DLLIMPORT [DllImport(&amp;quot;iTunesMobileDevice.dll&amp;quot;)]&lt;br /&gt;
	using namespace System::Runtime::InteropServices;&lt;br /&gt;
#include &amp;lt;CoreFoundation.h&amp;gt;&lt;br /&gt;
	typedef unsigned int mach_error_t;&lt;br /&gt;
#elif defined(__APPLE__)&lt;br /&gt;
#define __DLLIMPORT&lt;br /&gt;
#include &amp;lt;CoreFoundation/CoreFoundation.h&amp;gt;&lt;br /&gt;
#include &amp;lt;mach/error.h&amp;gt;&lt;br /&gt;
#endif	&lt;br /&gt;
	&lt;br /&gt;
	/* Error codes */&lt;br /&gt;
#define MDERR_APPLE_MOBILE  (err_system(0x3a))&lt;br /&gt;
#define MDERR_IPHONE        (err_sub(0))&lt;br /&gt;
	&lt;br /&gt;
	/* Apple Mobile (AM*) errors */&lt;br /&gt;
#define MDERR_OK                ERR_SUCCESS&lt;br /&gt;
#define MDERR_SYSCALL           (ERR_MOBILE_DEVICE | 0x01)&lt;br /&gt;
#define MDERR_OUT_OF_MEMORY     (ERR_MOBILE_DEVICE | 0x03)&lt;br /&gt;
#define MDERR_QUERY_FAILED      (ERR_MOBILE_DEVICE | 0x04) &lt;br /&gt;
#define MDERR_INVALID_ARGUMENT  (ERR_MOBILE_DEVICE | 0x0b)&lt;br /&gt;
#define MDERR_DICT_NOT_LOADED   (ERR_MOBILE_DEVICE | 0x25)&lt;br /&gt;
	&lt;br /&gt;
	/* Apple File Connection (AFC*) errors */&lt;br /&gt;
#define MDERR_AFC_OUT_OF_MEMORY 0x03&lt;br /&gt;
	&lt;br /&gt;
	/* USBMux errors */&lt;br /&gt;
#define MDERR_USBMUX_ARG_NULL   0x16&lt;br /&gt;
#define MDERR_USBMUX_FAILED     0xffffffff&lt;br /&gt;
	&lt;br /&gt;
	/* Messages passed to device notification callbacks: passed as part of&lt;br /&gt;
	 * am_device_notification_callback_info. */&lt;br /&gt;
#define ADNCI_MSG_CONNECTED     1&lt;br /&gt;
#define ADNCI_MSG_DISCONNECTED  2&lt;br /&gt;
#define ADNCI_MSG_UNSUBSCRIBED  3&lt;br /&gt;
	&lt;br /&gt;
#define AMD_IPHONE_PRODUCT_ID   0x1290&lt;br /&gt;
	//#define AMD_IPHONE_SERIAL       &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	/* Services, found in /System/Library/Lockdown/Services.plist */&lt;br /&gt;
#define AMSVC_AFC                   CFSTR(&amp;quot;com.apple.afc&amp;quot;)&lt;br /&gt;
#define AMSVC_BACKUP                CFSTR(&amp;quot;com.apple.mobilebackup&amp;quot;)&lt;br /&gt;
#define AMSVC_CRASH_REPORT_COPY     CFSTR(&amp;quot;com.apple.crashreportcopy&amp;quot;)&lt;br /&gt;
#define AMSVC_DEBUG_IMAGE_MOUNT     CFSTR(&amp;quot;com.apple.mobile.debug_image_mount&amp;quot;)&lt;br /&gt;
#define AMSVC_NOTIFICATION_PROXY    CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;)&lt;br /&gt;
#define AMSVC_PURPLE_TEST           CFSTR(&amp;quot;com.apple.purpletestr&amp;quot;)&lt;br /&gt;
#define AMSVC_SOFTWARE_UPDATE       CFSTR(&amp;quot;com.apple.mobile.software_update&amp;quot;)&lt;br /&gt;
#define AMSVC_SYNC                  CFSTR(&amp;quot;com.apple.mobilesync&amp;quot;)&lt;br /&gt;
#define AMSVC_SCREENSHOT            CFSTR(&amp;quot;com.apple.screenshotr&amp;quot;)&lt;br /&gt;
#define AMSVC_SYSLOG_RELAY          CFSTR(&amp;quot;com.apple.syslog_relay&amp;quot;)&lt;br /&gt;
#define AMSVC_SYSTEM_PROFILER       CFSTR(&amp;quot;com.apple.mobile.system_profiler&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	typedef unsigned int afc_error_t;&lt;br /&gt;
	typedef unsigned int usbmux_error_t;&lt;br /&gt;
	&lt;br /&gt;
	struct am_recovery_device;&lt;br /&gt;
	&lt;br /&gt;
	struct am_device_notification_callback_info {&lt;br /&gt;
		struct am_device *dev;  /* 0    device */ &lt;br /&gt;
		unsigned int msg;       /* 4    one of ADNCI_MSG_* */&lt;br /&gt;
                struct am_device_notification* subscription; &lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device restore notification callback functions.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void (*am_restore_device_notification_callback)(struct am_recovery_device *);&lt;br /&gt;
	&lt;br /&gt;
	/* This is a CoreFoundation object of class AMRecoveryModeDevice. */&lt;br /&gt;
	struct am_recovery_device {&lt;br /&gt;
		unsigned char unknown0[8];                          /* 0 */&lt;br /&gt;
		am_restore_device_notification_callback callback;   /* 8 */&lt;br /&gt;
		void *user_info;                                    /* 12 */&lt;br /&gt;
		unsigned char unknown1[12];                         /* 16 */&lt;br /&gt;
		unsigned int readwrite_pipe;                        /* 28 */&lt;br /&gt;
		unsigned char read_pipe;                            /* 32 */&lt;br /&gt;
		unsigned char write_ctrl_pipe;                      /* 33 */&lt;br /&gt;
		unsigned char read_unknown_pipe;                    /* 34 */&lt;br /&gt;
		unsigned char write_file_pipe;                      /* 35 */&lt;br /&gt;
		unsigned char write_input_pipe;                     /* 36 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* A CoreFoundation object of class AMRestoreModeDevice. */&lt;br /&gt;
	struct am_restore_device {&lt;br /&gt;
		unsigned char unknown[32];&lt;br /&gt;
		int port;&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device notification callback function. */&lt;br /&gt;
	typedef void(*am_device_notification_callback)(struct am_device_notification_callback_info *, int cookie);&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the _AMDDeviceAttached function.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void *amd_device_attached_callback;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device restore notification callback functions.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void (*am_restore_device_notification_callback)(struct am_recovery_device *);&lt;br /&gt;
&lt;br /&gt;
	/* Structure that contains internal data used by AMDevice... functions. Never try &lt;br /&gt;
         * to access its members directly! Use AMDeviceCopyDeviceIdentifier, &lt;br /&gt;
         * AMDeviceGetConnectionID, AMDeviceRetain, AMDeviceRelease instead. */&lt;br /&gt;
	struct am_device {&lt;br /&gt;
		unsigned char unknown0[16]; /* 0 - zero */&lt;br /&gt;
		unsigned int device_id;     /* 16 */&lt;br /&gt;
		unsigned int product_id;    /* 20 - set to AMD_IPHONE_PRODUCT_ID */&lt;br /&gt;
		char *serial;               /* 24 - set to UDID, Unique Device Identifier */&lt;br /&gt;
		unsigned int unknown1;      /* 28 */&lt;br /&gt;
		unsigned int unknown2;      /* 32 - reference counter, increased by AMDeviceRetain, decreased by AMDeviceRelease*/&lt;br /&gt;
		unsigned int lockdown_conn; /* 36 */&lt;br /&gt;
		unsigned char unknown3[8];  /* 40 */&lt;br /&gt;
#if (__ITUNES_VER &amp;gt; 740)&lt;br /&gt;
		unsigned int unknown4;      /* 48 - used to store CriticalSection Handle*/&lt;br /&gt;
#endif&lt;br /&gt;
#if (__ITUNES_VER &amp;gt;= 800)&lt;br /&gt;
		unsigned char unknown5[24];  /* 52 */&lt;br /&gt;
#endif&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct am_device_notification {&lt;br /&gt;
		unsigned int unknown0;                      /* 0 */&lt;br /&gt;
		unsigned int unknown1;                      /* 4 */&lt;br /&gt;
		unsigned int unknown2;                      /* 8 */&lt;br /&gt;
		am_device_notification_callback callback;   /* 12 */ &lt;br /&gt;
		unsigned int cookie;                      /* 16 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct afc_connection {&lt;br /&gt;
		unsigned int handle;            /* 0 */&lt;br /&gt;
		unsigned int unknown0;          /* 4 */&lt;br /&gt;
		unsigned char unknown1;         /* 8 */&lt;br /&gt;
		unsigned char padding[3];       /* 9 */&lt;br /&gt;
		unsigned int unknown2;          /* 12 */&lt;br /&gt;
		unsigned int unknown3;          /* 16 */&lt;br /&gt;
		unsigned int unknown4;          /* 20 */&lt;br /&gt;
		unsigned int fs_block_size;     /* 24 */&lt;br /&gt;
		unsigned int sock_block_size;   /* 28: always 0x3c */&lt;br /&gt;
		unsigned int io_timeout;        /* 32: from AFCConnectionOpen, usu. 0 */&lt;br /&gt;
		void *afc_lock;                 /* 36 */&lt;br /&gt;
		unsigned int context;           /* 40 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	struct afc_device_info {&lt;br /&gt;
		unsigned char unknown[12];  /* 0 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
&lt;br /&gt;
	struct afc_directory {&lt;br /&gt;
		unsigned char unknown[0];   /* size unknown */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
&lt;br /&gt;
	struct afc_dictionary {&lt;br /&gt;
		unsigned char unknown[0];   /* size unknown */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	typedef unsigned long long afc_file_ref;&lt;br /&gt;
	&lt;br /&gt;
	struct usbmux_listener_1 {                  /* offset   value in iTunes */&lt;br /&gt;
		unsigned int unknown0;                  /* 0        1 */&lt;br /&gt;
		unsigned char *unknown1;                /* 4        ptr, maybe device? */&lt;br /&gt;
		amd_device_attached_callback callback;  /* 8        _AMDDeviceAttached */&lt;br /&gt;
		unsigned int unknown3;                  /* 12 */&lt;br /&gt;
		unsigned int unknown4;                  /* 16 */&lt;br /&gt;
		unsigned int unknown5;                  /* 20 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct usbmux_listener_2 {&lt;br /&gt;
		unsigned char unknown0[4144];&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct am_bootloader_control_packet {&lt;br /&gt;
		unsigned char opcode;       /* 0 */&lt;br /&gt;
		unsigned char length;       /* 1 */&lt;br /&gt;
		unsigned char magic[2];     /* 2: 0x34, 0x12 */&lt;br /&gt;
		unsigned char payload[0];   /* 4 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Public routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/*  Registers a notification with the current run loop. The callback gets&lt;br /&gt;
	 *  copied into the notification struct, as well as being registered with the&lt;br /&gt;
	 *  current run loop. Cookie gets copied into cookie in the same.&lt;br /&gt;
	 *  (Cookie is a user info parameter that gets passed as an arg to&lt;br /&gt;
	 *  the callback) unused0 and unused1 are both 0 when iTunes calls this.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Never try to acces directly or copy contents of dev and subscription fields &lt;br /&gt;
	 *  in am_device_notification_callback_info. Treat them as abstract handles. &lt;br /&gt;
	 *  When done with connection use AMDeviceRelease to free resources allocated for am_device.&lt;br /&gt;
	 *  &lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK            if successful&lt;br /&gt;
	 *      MDERR_SYSCALL       if CFRunLoopAddSource() failed&lt;br /&gt;
	 *      MDERR_OUT_OF_MEMORY if we ran out of memory&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceNotificationSubscribe(am_device_notification_callback callback, &lt;br /&gt;
								unsigned int unused0, unsigned int unused1, &lt;br /&gt;
								unsigned int cookie, &lt;br /&gt;
								struct am_device_notification **subscription);&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
        /* Unregisters notifications. Buggy (iTunes 8.2): if you subscribe, unsubscribe and subscribe again, arriving &lt;br /&gt;
           notifications will contain cookie and subscription from 1st call to subscribe, not the 2nd one. iTunes &lt;br /&gt;
           calls this function only once on exit.&lt;br /&gt;
        */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceNotificationUnsubscribe(am_device_notification* subscription);&lt;br /&gt;
&lt;br /&gt;
	/*  Returns device_id field of am_device structure&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMDeviceGetConnectionID(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/*  Returns serial field of am_device structure&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT CFStringRef AMDeviceCopyDeviceIdentifier(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/*  Connects to the iPhone. Pass in the am_device structure that the&lt;br /&gt;
	 *  notification callback will give to you.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successfully connected&lt;br /&gt;
	 *      MDERR_SYSCALL           if setsockopt() failed&lt;br /&gt;
	 *      MDERR_QUERY_FAILED      if the daemon query failed&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if USBMuxConnectByPort returned 0xffffffff&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceConnect(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  Calls PairingRecordPath() on the given device, than tests whether the path&lt;br /&gt;
	 *  which that function returns exists. During the initial connect, the path&lt;br /&gt;
	 *  returned by that function is '/', and so this returns 1.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      0   if the path did not exist&lt;br /&gt;
	 *      1   if it did&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceIsPaired(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDevicePair(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  iTunes calls this function immediately after testing whether the device is&lt;br /&gt;
	 *  paired. It creates a pairing file and establishes a Lockdown connection.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the supplied device is null&lt;br /&gt;
	 *      MDERR_DICT_NOT_LOADED   if the load_dict() call failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceValidatePairing(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  Creates a Lockdown session and adjusts the device structure appropriately&lt;br /&gt;
	 *  to indicate that the session has been started. iTunes calls this function&lt;br /&gt;
	 *  after validating pairing.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 *      MDERR_DICT_NOT_LOADED   if the load_dict() call failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStartSession(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	/* Reads various device settings. One of domain or cfstring arguments should be NULL.&lt;br /&gt;
         *&lt;br /&gt;
         * Possible values for cfstring:&lt;br /&gt;
	 * ActivationState&lt;br /&gt;
	 * ActivationStateAcknowledged&lt;br /&gt;
	 * BasebandBootloaderVersion&lt;br /&gt;
	 * BasebandVersion&lt;br /&gt;
	 * BluetoothAddress&lt;br /&gt;
	 * BuildVersion&lt;br /&gt;
	 * DeviceCertificate&lt;br /&gt;
	 * DeviceClass&lt;br /&gt;
	 * DeviceName&lt;br /&gt;
	 * DevicePublicKey&lt;br /&gt;
	 * FirmwareVersion&lt;br /&gt;
	 * HostAttached&lt;br /&gt;
	 * IntegratedCircuitCardIdentity&lt;br /&gt;
	 * InternationalMobileEquipmentIdentity&lt;br /&gt;
	 * InternationalMobileSubscriberIdentity&lt;br /&gt;
	 * ModelNumber&lt;br /&gt;
	 * PhoneNumber&lt;br /&gt;
	 * ProductType&lt;br /&gt;
	 * ProductVersion&lt;br /&gt;
	 * ProtocolVersion&lt;br /&gt;
	 * RegionInfo&lt;br /&gt;
	 * SBLockdownEverRegisteredKey&lt;br /&gt;
	 * SIMStatus&lt;br /&gt;
	 * SerialNumber&lt;br /&gt;
	 * SomebodySetTimeZone&lt;br /&gt;
	 * TimeIntervalSince1970&lt;br /&gt;
	 * TimeZone&lt;br /&gt;
	 * TimeZoneOffsetFromUTC&lt;br /&gt;
	 * TrustedHostAttached&lt;br /&gt;
	 * UniqueDeviceID&lt;br /&gt;
	 * Uses24HourClock&lt;br /&gt;
	 * WiFiAddress&lt;br /&gt;
	 * iTunesHasConnected&lt;br /&gt;
         *&lt;br /&gt;
         * Possible values for domain:&lt;br /&gt;
         * com.apple.mobile.battery&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT CFStringRef AMDeviceCopyValue(struct am_device *device, CFStringRef domain, CFStringRef cfstring);&lt;br /&gt;
	&lt;br /&gt;
	/* Starts a service and returns a socket file descriptor that can be used in order to further&lt;br /&gt;
	 * access the service. You should stop the session and disconnect before using&lt;br /&gt;
	 * the service. iTunes calls this function after starting a session. It starts &lt;br /&gt;
	 * the service and the SSL connection. service_name should be one of the AMSVC_*&lt;br /&gt;
	 * constants.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_SYSCALL           if the setsockopt() call failed&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStartService(struct am_device *device, CFStringRef &lt;br /&gt;
									  service_name, int *socket_fd);&lt;br /&gt;
	&lt;br /&gt;
	/* Stops a session. You should do this before accessing services.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStopSession(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/* Decrements reference counter and, if nothing left, releases resources hold &lt;br /&gt;
	 * by connection, invalidates  pointer to device&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT void AMDeviceRelease(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/* Increments reference counter&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT void AMDeviceRetain(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/* Opens an Apple File Connection. You must start the appropriate service&lt;br /&gt;
	 * first with AMDeviceStartService(). In iTunes, io_timeout is 0.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_AFC_OUT_OF_MEMORY if malloc() failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCConnectionOpen(int socket_fd, unsigned int io_timeout,&lt;br /&gt;
								  struct afc_connection **conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Pass in a pointer to an afc_dictionary structure. It will be filled. You can&lt;br /&gt;
	 * iterate it using AFCKeyValueRead. When done use AFCKeyValueClose. Possible keys:&lt;br /&gt;
	 * FSFreeBytes - free bytes on system device for afc2, user device for afc&lt;br /&gt;
	 * FSBlockSize - filesystem block size&lt;br /&gt;
	 * FSTotalBytes - size of device&lt;br /&gt;
	 * Model - iPhone1,1 etc.&lt;br /&gt;
&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDeviceInfoOpen(struct afc_connection *conn, struct&lt;br /&gt;
								  afc_dictionary **info);&lt;br /&gt;
	&lt;br /&gt;
	/* Turns debug mode on if the environment variable AFCDEBUG is set to a numeric&lt;br /&gt;
	 * value, or if the file '/AFCDEBUG' is present and contains a value. */&lt;br /&gt;
#if defined(__APPLE__)&lt;br /&gt;
	void AFCPlatformInit();&lt;br /&gt;
#endif&lt;br /&gt;
	&lt;br /&gt;
	/* Opens a directory on the iPhone. Pass in a pointer in dir to be filled in.&lt;br /&gt;
	 * Note that this normally only accesses the iTunes sandbox/partition as the&lt;br /&gt;
	 * root, which is /var/root/Media. Pathnames are specified with '/' delimiters&lt;br /&gt;
	 * as in Unix style. Use UTF-8 to specify non-ASCII symbols in path.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryOpen(struct afc_connection *conn, char *path, struct&lt;br /&gt;
								 afc_directory **dir);&lt;br /&gt;
	&lt;br /&gt;
	/* Acquires the next entry in a directory previously opened with&lt;br /&gt;
	 * AFCDirectoryOpen(). When dirent is filled with a NULL value, then the end&lt;br /&gt;
	 * of the directory has been reached. '.' and '..' will be returned as the&lt;br /&gt;
	 * first two entries in each directory except the root; you may want to skip&lt;br /&gt;
	 * over them.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful, even if no entries remain&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryRead(struct afc_connection *conn, struct afc_directory *dir,&lt;br /&gt;
								 char **dirent);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryClose(afc_connection *conn, struct afc_directory *dir);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryCreate(afc_connection *conn, char *dirname);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCRemovePath(afc_connection *conn, char *dirname);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCRenamePath(afc_connection *conn, char *oldpath, char *newpath);&lt;br /&gt;
&lt;br /&gt;
	/* Creates symbolic or hard link&lt;br /&gt;
         * linktype - int64: 1 means hard link, 2 - soft (symbolic) link&lt;br /&gt;
         * target - absolute or relative path to link target&lt;br /&gt;
         * linkname - absolute path where to create new link&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCLinkPath(struct afc_connection *conn, long long int linktype, const char *target, &lt;br /&gt;
								                              const char *linkname);&lt;br /&gt;
&lt;br /&gt;
	/* Opens file for reading or writing without locking it in any way. afc_file_ref should not be shared between threads - &lt;br /&gt;
         * opening file in one thread and closing it in another will lead to possible crash.&lt;br /&gt;
	 * path - UTF-8 encoded absolute path to file&lt;br /&gt;
	 * mode 2 = read, mode 3 = write; unknown = 0 &lt;br /&gt;
	 * ref - receives file handle&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefOpen(struct afc_connection *conn, char *path, unsigned&lt;br /&gt;
							   long long int mode, afc_file_ref *ref);&lt;br /&gt;
	/* Reads specified amount (len) of bytes from file into buf. Puts actual count of read bytes into len on return&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefRead(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   void *buf, unsigned int *len);&lt;br /&gt;
	/* Writes specified amount (len) of bytes from buf into file.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefWrite(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
								void *buf, unsigned int len);&lt;br /&gt;
	/* Moves the file pointer to a specified location.&lt;br /&gt;
	 * offset - Number of bytes from origin (int64)&lt;br /&gt;
	 * origin - 0 = from beginning, 1 = from current position, 2 = from end&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefSeek(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   unsigned long long offset, int origin, int unused);&lt;br /&gt;
&lt;br /&gt;
	/* Gets the current position of a file pointer into offset argument.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefTell(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   unsigned long long* offset);&lt;br /&gt;
&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefLock(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefUnlock(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefClose(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
&lt;br /&gt;
	/* Opens dictionary describing specified file or directory (iTunes below 8.2 allowed using AFCGetFileInfo&lt;br /&gt;
	   to get the same information)&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileInfoOpen(struct afc_connection *conn, char *path, struct&lt;br /&gt;
								afc_dictionary **info);&lt;br /&gt;
&lt;br /&gt;
	/* Reads next entry from dictionary. When last entry is read, function returns NULL in key argument&lt;br /&gt;
	   Possible keys:&lt;br /&gt;
	     &amp;quot;st_size&amp;quot;:     val - size in bytes&lt;br /&gt;
	     &amp;quot;st_blocks&amp;quot;:   val - size in blocks&lt;br /&gt;
	     &amp;quot;st_nlink&amp;quot;:    val - number of hardlinks&lt;br /&gt;
	     &amp;quot;st_ifmt&amp;quot;:     val - &amp;quot;S_IFDIR&amp;quot; for folders&lt;br /&gt;
	                        &amp;quot;S_IFLNK&amp;quot; for symlinks&lt;br /&gt;
	     &amp;quot;LinkTarget&amp;quot;:  val - path to symlink target&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCKeyValueRead(struct afc_dictionary *dict, char **key, char **&lt;br /&gt;
								val);&lt;br /&gt;
	/* Closes dictionary&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCKeyValueClose(struct afc_dictionary *dict);&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the context field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetContext(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the fs_block_size field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetFSBlockSize(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the io_timeout field of the given AFC connection. In iTunes this is&lt;br /&gt;
	 * 0. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetIOTimeout(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the sock_block_size field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetSocketBlockSize(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Closes the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCConnectionClose(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Registers for device notifications related to the restore process. unknown0&lt;br /&gt;
	 * is zero when iTunes calls this. In iTunes,&lt;br /&gt;
	 * the callbacks are located at:&lt;br /&gt;
	 *      1: $3ac68e-$3ac6b1, calls $3ac542(unknown1, arg, 0)&lt;br /&gt;
	 *      2: $3ac66a-$3ac68d, calls $3ac542(unknown1, 0, arg)&lt;br /&gt;
	 *      3: $3ac762-$3ac785, calls $3ac6b2(unknown1, arg, 0)&lt;br /&gt;
	 *      4: $3ac73e-$3ac761, calls $3ac6b2(unknown1, 0, arg)&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreRegisterForDeviceNotifications(&lt;br /&gt;
				am_restore_device_notification_callback dfu_connect_callback,&lt;br /&gt;
				am_restore_device_notification_callback recovery_connect_callback,&lt;br /&gt;
				am_restore_device_notification_callback dfu_disconnect_callback,&lt;br /&gt;
				am_restore_device_notification_callback recovery_disconnect_callback,&lt;br /&gt;
				unsigned int unknown0,&lt;br /&gt;
				void *user_info);&lt;br /&gt;
	&lt;br /&gt;
	/* Causes the restore functions to spit out (unhelpful) progress messages to&lt;br /&gt;
	 * the file specified by the given path. iTunes always calls this right before&lt;br /&gt;
	 * restoring with a path of&lt;br /&gt;
	 * &amp;quot;$HOME/Library/Logs/iPhone Updater Logs/iPhoneUpdater X.log&amp;quot;, where X is an&lt;br /&gt;
	 * unused number.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreEnableFileLogging(char *path);&lt;br /&gt;
	&lt;br /&gt;
	/* Initializes a new option dictionary to default values. Pass the constant&lt;br /&gt;
	 * kCFAllocatorDefault as the allocator. The option dictionary looks as&lt;br /&gt;
	 * follows:&lt;br /&gt;
	 * {&lt;br /&gt;
	 *      NORImageType =&amp;gt; 'production',&lt;br /&gt;
	 *      AutoBootDelay =&amp;gt; 0,&lt;br /&gt;
	 *      KernelCacheType =&amp;gt; 'Release',&lt;br /&gt;
	 *      UpdateBaseband =&amp;gt; true,&lt;br /&gt;
	 *      DFUFileType =&amp;gt; 'RELEASE',&lt;br /&gt;
	 *      SystemImageType =&amp;gt; 'User',&lt;br /&gt;
	 *      CreateFilesystemPartitions =&amp;gt; true,&lt;br /&gt;
	 *      FlashNOR =&amp;gt; true,&lt;br /&gt;
	 *      RestoreBootArgs =&amp;gt; 'rd=md0 nand-enable-reformat=1 -progress'&lt;br /&gt;
	 *      BootImageType =&amp;gt; 'User'&lt;br /&gt;
	 *  }&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      the option dictionary   if successful&lt;br /&gt;
	 *      NULL                    if out of memory&lt;br /&gt;
	 */ &lt;br /&gt;
	__DLLIMPORT CFMutableDictionaryRef AMRestoreCreateDefaultOptions(CFAllocatorRef allocator);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented public routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestorePerformRecoveryModeRestore(struct am_recovery_device *&lt;br /&gt;
				rdev, CFDictionaryRef opts, void *callback, void *user_info);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestorePerformRestoreModeRestore(struct am_restore_device *&lt;br /&gt;
				rdev, CFDictionaryRef opts, void *callback, void *user_info);&lt;br /&gt;
	__DLLIMPORT struct am_restore_device *AMRestoreModeDeviceCreate(unsigned int unknown0,&lt;br /&gt;
				unsigned int connection_id, unsigned int unknown1);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreCreatePathsForBundle(CFStringRef restore_bundle_path,&lt;br /&gt;
				CFStringRef kernel_cache_type, CFStringRef boot_image_type, unsigned int&lt;br /&gt;
				unknown0, CFStringRef *firmware_dir_path, CFStringRef *&lt;br /&gt;
				kernelcache_restore_path, unsigned int unknown1, CFStringRef *&lt;br /&gt;
				ramdisk_path);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreModeDeviceReboot(struct am_restore_device *rdev);	// Added by JB 30.07.2008&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceEnterRecovery(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceDisconnect(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	/* to use this, start the service &amp;quot;com.apple.mobile.notification_proxy&amp;quot;, handle will be the socket to use */&lt;br /&gt;
	typedef void (*NOTIFY_CALLBACK)(CFSTR notification, USERDATA data);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDPostNotification(SOCKET socket, CFStringRef  notification, CFStringRef userinfo);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDObserveNotification(SOCKET socket, CFSTR notification);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDListenForNotifications(SOCKET socket, NOTIFY_CALLBACK cb, USERDATA data);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDShutdownNotificationProxy(SOCKET socket);&lt;br /&gt;
	&lt;br /&gt;
	/*edits by geohot*/&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceDeactivate(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceActivate(struct am_device *device, CFDictionaryRef dict);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceRemoveValue(struct am_device *device, unsigned int, CFStringRef cfstring);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Semi-private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/*  Pass in a usbmux_listener_1 structure and a usbmux_listener_2 structure&lt;br /&gt;
	 *  pointer, which will be filled with the resulting usbmux_listener_2.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if completed successfully&lt;br /&gt;
	 *      MDERR_USBMUX_ARG_NULL   if one of the arguments was NULL&lt;br /&gt;
	 *      MDERR_USBMUX_FAILED     if the listener was not created successfully&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT usbmux_error_t USBMuxListenerCreate(struct usbmux_listener_1 *esi_fp8, struct&lt;br /&gt;
										usbmux_listener_2 **eax_fp12);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented semi-private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	__DLLIMPORT usbmux_error_t USBMuxListenerHandleData(void *);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Private routines - here be dragons&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/* AMRestorePerformRestoreModeRestore() calls this function with a dictionary&lt;br /&gt;
	 * in order to perform certain special restore operations&lt;br /&gt;
	 * (RESTORED_OPERATION_*). It is thought that this function might enable&lt;br /&gt;
	 * significant access to the phone. */&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	 typedef unsigned int (*t_performOperation)(struct am_restore_device *rdev,&lt;br /&gt;
	 CFDictionaryRef op) __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_performOperation _performOperation = (t_performOperation)0x3c39fa4b;&lt;br /&gt;
	 */ &lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	 typedef int (*t_socketForPort)(struct am_restore_device *rdev, unsigned int port)&lt;br /&gt;
	 __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_socketForPort _socketForPort = (t_socketForPort)(void *)0x3c39f36c;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef void (*t_restored_send_message)(int port, CFDictionaryRef msg);&lt;br /&gt;
	 t_restored_send_message _restored_send_message = (t_restored_send_message)0x3c3a4e40;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef CFDictionaryRef (*t_restored_receive_message)(int port);&lt;br /&gt;
	 t_restored_receive_message _restored_receive_message = (t_restored_receive_message)0x3c3a4d40;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_sendControlPacket)(struct am_recovery_device *rdev, unsigned&lt;br /&gt;
	 int msg1, unsigned int msg2, unsigned int unknown0, unsigned int *unknown1,&lt;br /&gt;
	 unsigned char *unknown2) __attribute__ ((regparm(3)));&lt;br /&gt;
	 t_sendControlPacket _sendControlPacket = (t_sendControlPacket)0x3c3a3da3;;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_sendCommandToDevice)(struct am_recovery_device *rdev,&lt;br /&gt;
	 CFStringRef cmd) __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_sendCommandToDevice _sendCommandToDevice = (t_sendCommandToDevice)0x3c3a3e3b;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_AMRUSBInterfaceReadPipe)(unsigned int readwrite_pipe, unsigned&lt;br /&gt;
	 int read_pipe, unsigned char *data, unsigned int *len);&lt;br /&gt;
	 t_AMRUSBInterfaceReadPipe _AMRUSBInterfaceReadPipe = (t_AMRUSBInterfaceReadPipe)0x3c3a27e8;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_AMRUSBInterfaceWritePipe)(unsigned int readwrite_pipe, unsigned&lt;br /&gt;
	 int write_pipe, void *data, unsigned int len);&lt;br /&gt;
	 t_AMRUSBInterfaceWritePipe _AMRUSBInterfaceWritePipe = (t_AMRUSBInterfaceWritePipe)0x3c3a27cb;&lt;br /&gt;
	 */&lt;br /&gt;
	&lt;br /&gt;
	int performOperation(am_restore_device *rdev, CFMutableDictionaryRef message);&lt;br /&gt;
	int socketForPort(am_restore_device *rdev, unsigned int portnum);&lt;br /&gt;
	int sendCommandToDevice(am_recovery_device *rdev, CFStringRef cfs, int block);&lt;br /&gt;
	int sendFileToDevice(am_recovery_device *rdev, CFStringRef filename); &lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
#ifdef __cplusplus&lt;br /&gt;
}&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
/* -*- mode:c; indent-tabs-mode:nil; c-basic-offset:2; tab-width:2; */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AFC Connection===&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
===Locking the Device for Sync===&lt;br /&gt;
When iTunes sends a new song to the device, the device shows a &amp;quot;Sync in progress&amp;quot; screen and when complete, the Music app on the device re-reads the iTunesDB file so it picks up the new song.&lt;br /&gt;
&lt;br /&gt;
To get this behaviour, first start the notification service:&lt;br /&gt;
&amp;lt;pre&amp;gt;SOCKET socket;&lt;br /&gt;
AMDeviceStartService(dev, CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;), &amp;amp;socket, NULL);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we post a notificaton message to signal that we are going to start a sync:&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket, CFSTR(&amp;quot;com.apple.itunes-mobdev.syncWillStart&amp;quot;), NULL);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we open the itunes lock file:&lt;br /&gt;
&amp;lt;pre&amp;gt;afc_file_ref lockref;&lt;br /&gt;
AFCFileRefOpen(conn, &amp;quot;/com.apple.itunes.lock_sync&amp;quot;, 2, &amp;amp;lockref);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now post a notification to say we are going to lock this file, and try and lock it.&lt;br /&gt;
If the AFCFileRefLock call fails, pause and repeat.&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket, CFSTR(&amp;quot;com.apple.itunes-mobdev.syncLockRequest&amp;quot;), NULL);&lt;br /&gt;
mach_error_t error = AFCFileRefLock(conn, lockref);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the file is successfully locked, post another notification, and stop the notification service.&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket,CFSTR(&amp;quot;com.apple.itunes-mobdev.syncDidStart&amp;quot;), NULL);&lt;br /&gt;
AMDShutdownNotificationProxy(socket);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the sync can proceed, so copy your files across and make the changes to the iTunesDB.&lt;br /&gt;
&lt;br /&gt;
To release the lock, start the notification system again, unlock and close the lock file, and send a sync finished notification message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;AFCFileRefUnlock(conn, lockref);&lt;br /&gt;
AFCFileRefClose(conn, lockref);&lt;br /&gt;
AMDeviceStartService(dev, CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;), &amp;amp;socket, NULL);&lt;br /&gt;
AMDPostNotification(socket, &amp;amp;CFSTR(&amp;quot;com.apple.itunes-mobdev.syncDidFinish&amp;quot;), NULL);&lt;br /&gt;
AMDShutdownNotificationProxy(socket);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To handle &amp;quot;Slide to Cancel&amp;quot; and terminate sync when user slides cancel switch, use AMDObserveNotification to subscribe notifications about “com.apple.itunes-client.syncCancelRequest”. Then start listening for notifications (AMDListenForNotifications) until you get “AMDNotificationFaceplant”.&lt;br /&gt;
When notification got, you should unlock and close lock file handle (don’t sure if you need to post “syncDidFinish” to proxy, seems it doesn’t matter) and terminate sync gracefully.&lt;br /&gt;
The same notification is also got when you unplug your device, so you should always be ready for errors.&lt;br /&gt;
&lt;br /&gt;
NOTE: You may find that starting the notification_proxy service once and once only at the start of your app and using the same socket in calls to AMDPostNotification works better. iTunes opens and closes the notification_proxy regularly, but it appears to be a bit flakey when you open/close it all the time.&lt;br /&gt;
&lt;br /&gt;
===Private Functions===&lt;br /&gt;
&lt;br /&gt;
====How to find address of privates functions in iTunesMobileDevice.dll or MobileDevice.framework ?====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Libraries Implementations===&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/p/iphuc/ iPhuc (Command line utility)]&lt;br /&gt;
* [http://code.google.com/p/iphucwin32/ iPhuc Win32 (Command line utility)]&lt;br /&gt;
* [http://code.google.com/p/manzana/ manzana (.Net Library)]&lt;br /&gt;
* [http://code.google.com/p/independence/source/browse/trunk/libPhoneInteraction/ libPhoneInteraction (C Library)]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=MobileDevice_Library&amp;diff=5221</id>
		<title>MobileDevice Library</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=MobileDevice_Library&amp;diff=5221"/>
		<updated>2009-10-18T21:59:14Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* MobileDevice Header (mobiledevice.h) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MobileDevice Library is used by [[iTunes]] to transfer data between iPhone and computer over the USB connection.&lt;br /&gt;
&lt;br /&gt;
===PC Windows : iTunesMobileDevice.dll===&lt;br /&gt;
&lt;br /&gt;
* Location : Location is stored in '''iTunesMobileDeviceDLL''' registry value under '''HKLM\SOFTWARE\Apple Inc.\Apple Mobile Device Support\Shared''' key. Usually - C:\Program Files\Common Files\Apple\Mobile Device Support\bin\iTunesMobileDevice.dll.&lt;br /&gt;
&lt;br /&gt;
* Supporting CoreFoundation.dll (used for CFStringRef, CFPropertyListRef management) is located in the same dir (when using iTunes prior 9.0). &lt;br /&gt;
&lt;br /&gt;
* For iTunes 9.0 location of CoreFoundation.dll is stored in '''InstallDir''' registry value under '''HKLM\SOFTWARE\Apple Inc.\Apple Application Support''' key, usually C:\Program Files\Common Files\Apple\Apple Application Support\. CoreFoundation.dll from Mobile Device Support\bin should not be used.&lt;br /&gt;
&lt;br /&gt;
===Mac OSX : MobileDevice.framework===&lt;br /&gt;
&lt;br /&gt;
* Location : /System/Library/PrivateFrameworks/MobileDevice.framework&lt;br /&gt;
* Export command : &amp;quot;nm /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===MobileDevice Header (mobiledevice.h)===&lt;br /&gt;
&lt;br /&gt;
Reverse engineered C header for MobileDevice Library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* ----------------------------------------------------------------------------&lt;br /&gt;
 *   MobileDevice.h - interface to MobileDevice.framework &lt;br /&gt;
 * ------------------------------------------------------------------------- */&lt;br /&gt;
#pragma once&lt;br /&gt;
&lt;br /&gt;
#ifndef MOBILEDEVICE_H&lt;br /&gt;
#define MOBILEDEVICE_H&lt;br /&gt;
&lt;br /&gt;
#ifdef __cplusplus&lt;br /&gt;
extern &amp;quot;C&amp;quot; {&lt;br /&gt;
#endif&lt;br /&gt;
	&lt;br /&gt;
#ifndef __GCC__&lt;br /&gt;
#pragma pack&lt;br /&gt;
#define __PACK&lt;br /&gt;
#else&lt;br /&gt;
#define __PACK __attribute__((__packed__))&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#if defined(WIN32)&lt;br /&gt;
#define __DLLIMPORT [DllImport(&amp;quot;iTunesMobileDevice.dll&amp;quot;)]&lt;br /&gt;
	using namespace System::Runtime::InteropServices;&lt;br /&gt;
#include &amp;lt;CoreFoundation.h&amp;gt;&lt;br /&gt;
	typedef unsigned int mach_error_t;&lt;br /&gt;
#elif defined(__APPLE__)&lt;br /&gt;
#define __DLLIMPORT&lt;br /&gt;
#include &amp;lt;CoreFoundation/CoreFoundation.h&amp;gt;&lt;br /&gt;
#include &amp;lt;mach/error.h&amp;gt;&lt;br /&gt;
#endif	&lt;br /&gt;
	&lt;br /&gt;
	/* Error codes */&lt;br /&gt;
#define MDERR_APPLE_MOBILE  (err_system(0x3a))&lt;br /&gt;
#define MDERR_IPHONE        (err_sub(0))&lt;br /&gt;
	&lt;br /&gt;
	/* Apple Mobile (AM*) errors */&lt;br /&gt;
#define MDERR_OK                ERR_SUCCESS&lt;br /&gt;
#define MDERR_SYSCALL           (ERR_MOBILE_DEVICE | 0x01)&lt;br /&gt;
#define MDERR_OUT_OF_MEMORY     (ERR_MOBILE_DEVICE | 0x03)&lt;br /&gt;
#define MDERR_QUERY_FAILED      (ERR_MOBILE_DEVICE | 0x04) &lt;br /&gt;
#define MDERR_INVALID_ARGUMENT  (ERR_MOBILE_DEVICE | 0x0b)&lt;br /&gt;
#define MDERR_DICT_NOT_LOADED   (ERR_MOBILE_DEVICE | 0x25)&lt;br /&gt;
	&lt;br /&gt;
	/* Apple File Connection (AFC*) errors */&lt;br /&gt;
#define MDERR_AFC_OUT_OF_MEMORY 0x03&lt;br /&gt;
	&lt;br /&gt;
	/* USBMux errors */&lt;br /&gt;
#define MDERR_USBMUX_ARG_NULL   0x16&lt;br /&gt;
#define MDERR_USBMUX_FAILED     0xffffffff&lt;br /&gt;
	&lt;br /&gt;
	/* Messages passed to device notification callbacks: passed as part of&lt;br /&gt;
	 * am_device_notification_callback_info. */&lt;br /&gt;
#define ADNCI_MSG_CONNECTED     1&lt;br /&gt;
#define ADNCI_MSG_DISCONNECTED  2&lt;br /&gt;
#define ADNCI_MSG_UNSUBSCRIBED  3&lt;br /&gt;
	&lt;br /&gt;
#define AMD_IPHONE_PRODUCT_ID   0x1290&lt;br /&gt;
	//#define AMD_IPHONE_SERIAL       &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	/* Services, found in /System/Library/Lockdown/Services.plist */&lt;br /&gt;
#define AMSVC_AFC                   CFSTR(&amp;quot;com.apple.afc&amp;quot;)&lt;br /&gt;
#define AMSVC_BACKUP                CFSTR(&amp;quot;com.apple.mobilebackup&amp;quot;)&lt;br /&gt;
#define AMSVC_CRASH_REPORT_COPY     CFSTR(&amp;quot;com.apple.crashreportcopy&amp;quot;)&lt;br /&gt;
#define AMSVC_DEBUG_IMAGE_MOUNT     CFSTR(&amp;quot;com.apple.mobile.debug_image_mount&amp;quot;)&lt;br /&gt;
#define AMSVC_NOTIFICATION_PROXY    CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;)&lt;br /&gt;
#define AMSVC_PURPLE_TEST           CFSTR(&amp;quot;com.apple.purpletestr&amp;quot;)&lt;br /&gt;
#define AMSVC_SOFTWARE_UPDATE       CFSTR(&amp;quot;com.apple.mobile.software_update&amp;quot;)&lt;br /&gt;
#define AMSVC_SYNC                  CFSTR(&amp;quot;com.apple.mobilesync&amp;quot;)&lt;br /&gt;
#define AMSVC_SCREENSHOT            CFSTR(&amp;quot;com.apple.screenshotr&amp;quot;)&lt;br /&gt;
#define AMSVC_SYSLOG_RELAY          CFSTR(&amp;quot;com.apple.syslog_relay&amp;quot;)&lt;br /&gt;
#define AMSVC_SYSTEM_PROFILER       CFSTR(&amp;quot;com.apple.mobile.system_profiler&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	typedef unsigned int afc_error_t;&lt;br /&gt;
	typedef unsigned int usbmux_error_t;&lt;br /&gt;
	&lt;br /&gt;
	struct am_recovery_device;&lt;br /&gt;
	&lt;br /&gt;
	struct am_device_notification_callback_info {&lt;br /&gt;
		struct am_device *dev;  /* 0    device */ &lt;br /&gt;
		unsigned int msg;       /* 4    one of ADNCI_MSG_* */&lt;br /&gt;
                struct am_device_notification* subscription; &lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device restore notification callback functions.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void (*am_restore_device_notification_callback)(struct am_recovery_device *);&lt;br /&gt;
	&lt;br /&gt;
	/* This is a CoreFoundation object of class AMRecoveryModeDevice. */&lt;br /&gt;
	struct am_recovery_device {&lt;br /&gt;
		unsigned char unknown0[8];                          /* 0 */&lt;br /&gt;
		am_restore_device_notification_callback callback;   /* 8 */&lt;br /&gt;
		void *user_info;                                    /* 12 */&lt;br /&gt;
		unsigned char unknown1[12];                         /* 16 */&lt;br /&gt;
		unsigned int readwrite_pipe;                        /* 28 */&lt;br /&gt;
		unsigned char read_pipe;                            /* 32 */&lt;br /&gt;
		unsigned char write_ctrl_pipe;                      /* 33 */&lt;br /&gt;
		unsigned char read_unknown_pipe;                    /* 34 */&lt;br /&gt;
		unsigned char write_file_pipe;                      /* 35 */&lt;br /&gt;
		unsigned char write_input_pipe;                     /* 36 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* A CoreFoundation object of class AMRestoreModeDevice. */&lt;br /&gt;
	struct am_restore_device {&lt;br /&gt;
		unsigned char unknown[32];&lt;br /&gt;
		int port;&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device notification callback function. */&lt;br /&gt;
	typedef void(*am_device_notification_callback)(struct am_device_notification_callback_info *, int cookie);&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the _AMDDeviceAttached function.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void *amd_device_attached_callback;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device restore notification callback functions.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void (*am_restore_device_notification_callback)(struct am_recovery_device *);&lt;br /&gt;
&lt;br /&gt;
	/* Structure that contains internal data used by AMDevice... functions. Never try &lt;br /&gt;
         * to access its members directly! Use AMDeviceCopyDeviceIdentifier, &lt;br /&gt;
         * AMDeviceGetConnectionID, AMDeviceRetain, AMDeviceRelease instead. */&lt;br /&gt;
	struct am_device {&lt;br /&gt;
		unsigned char unknown0[16]; /* 0 - zero */&lt;br /&gt;
		unsigned int device_id;     /* 16 */&lt;br /&gt;
		unsigned int product_id;    /* 20 - set to AMD_IPHONE_PRODUCT_ID */&lt;br /&gt;
		char *serial;               /* 24 - set to UDID, Unique Device Identifier */&lt;br /&gt;
		unsigned int unknown1;      /* 28 */&lt;br /&gt;
		unsigned int unknown2;      /* 32 - reference counter, increased by AMDeviceRetain, decreased by AMDeviceRelease*/&lt;br /&gt;
		unsigned int lockdown_conn; /* 36 */&lt;br /&gt;
		unsigned char unknown3[8];  /* 40 */&lt;br /&gt;
#if (__ITUNES_VER &amp;gt; 740)&lt;br /&gt;
		unsigned int unknown4;      /* 48 - used to store CriticalSection Handle*/&lt;br /&gt;
#endif&lt;br /&gt;
#if (__ITUNES_VER &amp;gt;= 800)&lt;br /&gt;
		unsigned char unknown5[24];  /* 52 */&lt;br /&gt;
#endif&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct am_device_notification {&lt;br /&gt;
		unsigned int unknown0;                      /* 0 */&lt;br /&gt;
		unsigned int unknown1;                      /* 4 */&lt;br /&gt;
		unsigned int unknown2;                      /* 8 */&lt;br /&gt;
		am_device_notification_callback callback;   /* 12 */ &lt;br /&gt;
		unsigned int cookie;                      /* 16 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct afc_connection {&lt;br /&gt;
		unsigned int handle;            /* 0 */&lt;br /&gt;
		unsigned int unknown0;          /* 4 */&lt;br /&gt;
		unsigned char unknown1;         /* 8 */&lt;br /&gt;
		unsigned char padding[3];       /* 9 */&lt;br /&gt;
		unsigned int unknown2;          /* 12 */&lt;br /&gt;
		unsigned int unknown3;          /* 16 */&lt;br /&gt;
		unsigned int unknown4;          /* 20 */&lt;br /&gt;
		unsigned int fs_block_size;     /* 24 */&lt;br /&gt;
		unsigned int sock_block_size;   /* 28: always 0x3c */&lt;br /&gt;
		unsigned int io_timeout;        /* 32: from AFCConnectionOpen, usu. 0 */&lt;br /&gt;
		void *afc_lock;                 /* 36 */&lt;br /&gt;
		unsigned int context;           /* 40 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	struct afc_device_info {&lt;br /&gt;
		unsigned char unknown[12];  /* 0 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
&lt;br /&gt;
	struct afc_directory {&lt;br /&gt;
		unsigned char unknown[0];   /* size unknown */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
&lt;br /&gt;
	struct afc_dictionary {&lt;br /&gt;
		unsigned char unknown[0];   /* size unknown */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	typedef unsigned long long afc_file_ref;&lt;br /&gt;
	&lt;br /&gt;
	struct usbmux_listener_1 {                  /* offset   value in iTunes */&lt;br /&gt;
		unsigned int unknown0;                  /* 0        1 */&lt;br /&gt;
		unsigned char *unknown1;                /* 4        ptr, maybe device? */&lt;br /&gt;
		amd_device_attached_callback callback;  /* 8        _AMDDeviceAttached */&lt;br /&gt;
		unsigned int unknown3;                  /* 12 */&lt;br /&gt;
		unsigned int unknown4;                  /* 16 */&lt;br /&gt;
		unsigned int unknown5;                  /* 20 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct usbmux_listener_2 {&lt;br /&gt;
		unsigned char unknown0[4144];&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct am_bootloader_control_packet {&lt;br /&gt;
		unsigned char opcode;       /* 0 */&lt;br /&gt;
		unsigned char length;       /* 1 */&lt;br /&gt;
		unsigned char magic[2];     /* 2: 0x34, 0x12 */&lt;br /&gt;
		unsigned char payload[0];   /* 4 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Public routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/*  Registers a notification with the current run loop. The callback gets&lt;br /&gt;
	 *  copied into the notification struct, as well as being registered with the&lt;br /&gt;
	 *  current run loop. Cookie gets copied into cookie in the same.&lt;br /&gt;
	 *  (Cookie is a user info parameter that gets passed as an arg to&lt;br /&gt;
	 *  the callback) unused0 and unused1 are both 0 when iTunes calls this.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Never try to acces directly or copy contents of dev and subscription fields &lt;br /&gt;
	 *  in am_device_notification_callback_info. Treat them as abstract handles. &lt;br /&gt;
	 *  When done with connection use AMDeviceRelease to free resources allocated for am_device.&lt;br /&gt;
	 *  &lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK            if successful&lt;br /&gt;
	 *      MDERR_SYSCALL       if CFRunLoopAddSource() failed&lt;br /&gt;
	 *      MDERR_OUT_OF_MEMORY if we ran out of memory&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceNotificationSubscribe(am_device_notification_callback callback, &lt;br /&gt;
								unsigned int unused0, unsigned int unused1, &lt;br /&gt;
								unsigned int cookie, &lt;br /&gt;
								struct am_device_notification **subscription);&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
        /* Unregisters notifications. Buggy (iTunes 8.2): if you subscribe, unsubscribe and subscribe again, arriving &lt;br /&gt;
           notifications will contain cookie and subscription from 1st call to subscribe, not the 2nd one. iTunes &lt;br /&gt;
           calls this function only once on exit.&lt;br /&gt;
        */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceNotificationUnsubscribe(am_device_notification* subscription);&lt;br /&gt;
&lt;br /&gt;
	/*  Returns device_id field of am_device structure&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMDeviceGetConnectionID(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/*  Returns serial field of am_device structure&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT CFStringRef AMDeviceCopyDeviceIdentifier(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/*  Connects to the iPhone. Pass in the am_device structure that the&lt;br /&gt;
	 *  notification callback will give to you.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successfully connected&lt;br /&gt;
	 *      MDERR_SYSCALL           if setsockopt() failed&lt;br /&gt;
	 *      MDERR_QUERY_FAILED      if the daemon query failed&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if USBMuxConnectByPort returned 0xffffffff&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceConnect(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  Calls PairingRecordPath() on the given device, than tests whether the path&lt;br /&gt;
	 *  which that function returns exists. During the initial connect, the path&lt;br /&gt;
	 *  returned by that function is '/', and so this returns 1.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      0   if the path did not exist&lt;br /&gt;
	 *      1   if it did&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceIsPaired(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDevicePair(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  iTunes calls this function immediately after testing whether the device is&lt;br /&gt;
	 *  paired. It creates a pairing file and establishes a Lockdown connection.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the supplied device is null&lt;br /&gt;
	 *      MDERR_DICT_NOT_LOADED   if the load_dict() call failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceValidatePairing(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  Creates a Lockdown session and adjusts the device structure appropriately&lt;br /&gt;
	 *  to indicate that the session has been started. iTunes calls this function&lt;br /&gt;
	 *  after validating pairing.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 *      MDERR_DICT_NOT_LOADED   if the load_dict() call failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStartSession(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	/* Reads various device settings. One of domain or cfstring arguments should be NULL.&lt;br /&gt;
         *&lt;br /&gt;
         * Possible values for cfstring:&lt;br /&gt;
	 * ActivationState&lt;br /&gt;
	 * ActivationStateAcknowledged&lt;br /&gt;
	 * BasebandBootloaderVersion&lt;br /&gt;
	 * BasebandVersion&lt;br /&gt;
	 * BluetoothAddress&lt;br /&gt;
	 * BuildVersion&lt;br /&gt;
	 * DeviceCertificate&lt;br /&gt;
	 * DeviceClass&lt;br /&gt;
	 * DeviceName&lt;br /&gt;
	 * DevicePublicKey&lt;br /&gt;
	 * FirmwareVersion&lt;br /&gt;
	 * HostAttached&lt;br /&gt;
	 * IntegratedCircuitCardIdentity&lt;br /&gt;
	 * InternationalMobileEquipmentIdentity&lt;br /&gt;
	 * InternationalMobileSubscriberIdentity&lt;br /&gt;
	 * ModelNumber&lt;br /&gt;
	 * PhoneNumber&lt;br /&gt;
	 * ProductType&lt;br /&gt;
	 * ProductVersion&lt;br /&gt;
	 * ProtocolVersion&lt;br /&gt;
	 * RegionInfo&lt;br /&gt;
	 * SBLockdownEverRegisteredKey&lt;br /&gt;
	 * SIMStatus&lt;br /&gt;
	 * SerialNumber&lt;br /&gt;
	 * SomebodySetTimeZone&lt;br /&gt;
	 * TimeIntervalSince1970&lt;br /&gt;
	 * TimeZone&lt;br /&gt;
	 * TimeZoneOffsetFromUTC&lt;br /&gt;
	 * TrustedHostAttached&lt;br /&gt;
	 * UniqueDeviceID&lt;br /&gt;
	 * Uses24HourClock&lt;br /&gt;
	 * WiFiAddress&lt;br /&gt;
	 * iTunesHasConnected&lt;br /&gt;
         *&lt;br /&gt;
         * Possible values for domain:&lt;br /&gt;
         * com.apple.mobile.battery&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT CFStringRef AMDeviceCopyValue(struct am_device *device, CFStringRef domain, CFStringRef cfstring);&lt;br /&gt;
	&lt;br /&gt;
	/* Starts a service and returns a socket file descriptor that can be used in order to further&lt;br /&gt;
	 * access the service. You should stop the session and disconnect before using&lt;br /&gt;
	 * the service. iTunes calls this function after starting a session. It starts &lt;br /&gt;
	 * the service and the SSL connection. service_name should be one of the AMSVC_*&lt;br /&gt;
	 * constants.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_SYSCALL           if the setsockopt() call failed&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStartService(struct am_device *device, CFStringRef &lt;br /&gt;
									  service_name, int *socket_fd);&lt;br /&gt;
	&lt;br /&gt;
	/* Stops a session. You should do this before accessing services.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStopSession(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/* Decrements reference counter and, if nothing left, releases resources hold &lt;br /&gt;
	 * by connection, invalidates  pointer to device&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT void AMDeviceRelease(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/* Increments reference counter&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT void AMDeviceRetain(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/* Opens an Apple File Connection. You must start the appropriate service&lt;br /&gt;
	 * first with AMDeviceStartService(). In iTunes, io_timeout is 0.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_AFC_OUT_OF_MEMORY if malloc() failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCConnectionOpen(int socket_fd, unsigned int io_timeout,&lt;br /&gt;
								  struct afc_connection **conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Pass in a pointer to an afc_dictionary structure. It will be filled. You can&lt;br /&gt;
	 * iterate it using AFCKeyValueRead. When done use AFCKeyValueClose. Possible keys:&lt;br /&gt;
	 * FSFreeBytes - free bytes on system device for afc2, user device for afc&lt;br /&gt;
	 * FSBlockSize - filesystem block size&lt;br /&gt;
	 * FSTotalBytes - size of device&lt;br /&gt;
	 * Model - iPhone1,1 etc.&lt;br /&gt;
&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDeviceInfoOpen(struct afc_connection *conn, struct&lt;br /&gt;
								  afc_dictionary **info);&lt;br /&gt;
	&lt;br /&gt;
	/* Turns debug mode on if the environment variable AFCDEBUG is set to a numeric&lt;br /&gt;
	 * value, or if the file '/AFCDEBUG' is present and contains a value. */&lt;br /&gt;
#if defined(__APPLE__)&lt;br /&gt;
	void AFCPlatformInit();&lt;br /&gt;
#endif&lt;br /&gt;
	&lt;br /&gt;
	/* Opens a directory on the iPhone. Pass in a pointer in dir to be filled in.&lt;br /&gt;
	 * Note that this normally only accesses the iTunes sandbox/partition as the&lt;br /&gt;
	 * root, which is /var/root/Media. Pathnames are specified with '/' delimiters&lt;br /&gt;
	 * as in Unix style. Use UTF-8 to specify non-ASCII symbols in path.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryOpen(struct afc_connection *conn, char *path, struct&lt;br /&gt;
								 afc_directory **dir);&lt;br /&gt;
	&lt;br /&gt;
	/* Acquires the next entry in a directory previously opened with&lt;br /&gt;
	 * AFCDirectoryOpen(). When dirent is filled with a NULL value, then the end&lt;br /&gt;
	 * of the directory has been reached. '.' and '..' will be returned as the&lt;br /&gt;
	 * first two entries in each directory except the root; you may want to skip&lt;br /&gt;
	 * over them.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful, even if no entries remain&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryRead(struct afc_connection *conn, struct afc_directory *dir,&lt;br /&gt;
								 char **dirent);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryClose(afc_connection *conn, struct afc_directory *dir);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryCreate(afc_connection *conn, char *dirname);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCRemovePath(afc_connection *conn, char *dirname);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCRenamePath(afc_connection *conn, char *oldpath, char *newpath);&lt;br /&gt;
&lt;br /&gt;
	/* Creates symbolic or hard link&lt;br /&gt;
         * linktype - int64: 1 means hard link, 2 - soft (symbolic) link&lt;br /&gt;
         * target - absolute or relative path to link target&lt;br /&gt;
         * linkname - absolute path where to create new link&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCLinkPath(struct afc_connection *conn, long long int linktype, const char *target, const char *linkname);&lt;br /&gt;
&lt;br /&gt;
	/* Opens file for reading or writing without locking it in any way. afc_file_ref should not be shared between threads - &lt;br /&gt;
         * opening file in one thread and closing it in another will lead to possible crash.&lt;br /&gt;
	 * path - UTF-8 encoded absolute path to file&lt;br /&gt;
	 * mode 2 = read, mode 3 = write; unknown = 0 &lt;br /&gt;
	 * ref - receives file handle&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefOpen(struct afc_connection *conn, char *path, unsigned&lt;br /&gt;
							   long long int mode, afc_file_ref *ref);&lt;br /&gt;
	/* Reads specified amount (len) of bytes from file into buf. Puts actual count of read bytes into len on return&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefRead(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   void *buf, unsigned int *len);&lt;br /&gt;
	/* Writes specified amount (len) of bytes from buf into file.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefWrite(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
								void *buf, unsigned int len);&lt;br /&gt;
	/* Moves the file pointer to a specified location.&lt;br /&gt;
	 * offset - Number of bytes from origin (int64)&lt;br /&gt;
	 * origin - 0 = from beginning, 1 = from current position, 2 = from end&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefSeek(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   unsigned long long offset, int origin, int unused);&lt;br /&gt;
&lt;br /&gt;
	/* Gets the current position of a file pointer into offset argument.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefTell(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   unsigned long long* offset);&lt;br /&gt;
&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefLock(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefUnlock(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefClose(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
&lt;br /&gt;
	/* Opens dictionary describing specified file or directory (iTunes below 8.2 allowed using AFCGetFileInfo&lt;br /&gt;
	   to get the same information)&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileInfoOpen(struct afc_connection *conn, char *path, struct&lt;br /&gt;
								afc_dictionary **info);&lt;br /&gt;
&lt;br /&gt;
	/* Reads next entry from dictionary. When last entry is read, function returns NULL in key argument&lt;br /&gt;
	   Possible keys:&lt;br /&gt;
	     &amp;quot;st_size&amp;quot;:     val - size in bytes&lt;br /&gt;
	     &amp;quot;st_blocks&amp;quot;:   val - size in blocks&lt;br /&gt;
	     &amp;quot;st_nlink&amp;quot;:    val - number of hardlinks&lt;br /&gt;
	     &amp;quot;st_ifmt&amp;quot;:     val - &amp;quot;S_IFDIR&amp;quot; for folders&lt;br /&gt;
	                        &amp;quot;S_IFLNK&amp;quot; for symlinks&lt;br /&gt;
	     &amp;quot;LinkTarget&amp;quot;:  val - path to symlink target&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCKeyValueRead(struct afc_dictionary *dict, char **key, char **&lt;br /&gt;
								val);&lt;br /&gt;
	/* Closes dictionary&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCKeyValueClose(struct afc_dictionary *dict);&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the context field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetContext(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the fs_block_size field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetFSBlockSize(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the io_timeout field of the given AFC connection. In iTunes this is&lt;br /&gt;
	 * 0. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetIOTimeout(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the sock_block_size field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetSocketBlockSize(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Closes the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCConnectionClose(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Registers for device notifications related to the restore process. unknown0&lt;br /&gt;
	 * is zero when iTunes calls this. In iTunes,&lt;br /&gt;
	 * the callbacks are located at:&lt;br /&gt;
	 *      1: $3ac68e-$3ac6b1, calls $3ac542(unknown1, arg, 0)&lt;br /&gt;
	 *      2: $3ac66a-$3ac68d, calls $3ac542(unknown1, 0, arg)&lt;br /&gt;
	 *      3: $3ac762-$3ac785, calls $3ac6b2(unknown1, arg, 0)&lt;br /&gt;
	 *      4: $3ac73e-$3ac761, calls $3ac6b2(unknown1, 0, arg)&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreRegisterForDeviceNotifications(&lt;br /&gt;
				am_restore_device_notification_callback dfu_connect_callback,&lt;br /&gt;
				am_restore_device_notification_callback recovery_connect_callback,&lt;br /&gt;
				am_restore_device_notification_callback dfu_disconnect_callback,&lt;br /&gt;
				am_restore_device_notification_callback recovery_disconnect_callback,&lt;br /&gt;
				unsigned int unknown0,&lt;br /&gt;
				void *user_info);&lt;br /&gt;
	&lt;br /&gt;
	/* Causes the restore functions to spit out (unhelpful) progress messages to&lt;br /&gt;
	 * the file specified by the given path. iTunes always calls this right before&lt;br /&gt;
	 * restoring with a path of&lt;br /&gt;
	 * &amp;quot;$HOME/Library/Logs/iPhone Updater Logs/iPhoneUpdater X.log&amp;quot;, where X is an&lt;br /&gt;
	 * unused number.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreEnableFileLogging(char *path);&lt;br /&gt;
	&lt;br /&gt;
	/* Initializes a new option dictionary to default values. Pass the constant&lt;br /&gt;
	 * kCFAllocatorDefault as the allocator. The option dictionary looks as&lt;br /&gt;
	 * follows:&lt;br /&gt;
	 * {&lt;br /&gt;
	 *      NORImageType =&amp;gt; 'production',&lt;br /&gt;
	 *      AutoBootDelay =&amp;gt; 0,&lt;br /&gt;
	 *      KernelCacheType =&amp;gt; 'Release',&lt;br /&gt;
	 *      UpdateBaseband =&amp;gt; true,&lt;br /&gt;
	 *      DFUFileType =&amp;gt; 'RELEASE',&lt;br /&gt;
	 *      SystemImageType =&amp;gt; 'User',&lt;br /&gt;
	 *      CreateFilesystemPartitions =&amp;gt; true,&lt;br /&gt;
	 *      FlashNOR =&amp;gt; true,&lt;br /&gt;
	 *      RestoreBootArgs =&amp;gt; 'rd=md0 nand-enable-reformat=1 -progress'&lt;br /&gt;
	 *      BootImageType =&amp;gt; 'User'&lt;br /&gt;
	 *  }&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      the option dictionary   if successful&lt;br /&gt;
	 *      NULL                    if out of memory&lt;br /&gt;
	 */ &lt;br /&gt;
	__DLLIMPORT CFMutableDictionaryRef AMRestoreCreateDefaultOptions(CFAllocatorRef allocator);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented public routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestorePerformRecoveryModeRestore(struct am_recovery_device *&lt;br /&gt;
				rdev, CFDictionaryRef opts, void *callback, void *user_info);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestorePerformRestoreModeRestore(struct am_restore_device *&lt;br /&gt;
				rdev, CFDictionaryRef opts, void *callback, void *user_info);&lt;br /&gt;
	__DLLIMPORT struct am_restore_device *AMRestoreModeDeviceCreate(unsigned int unknown0,&lt;br /&gt;
				unsigned int connection_id, unsigned int unknown1);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreCreatePathsForBundle(CFStringRef restore_bundle_path,&lt;br /&gt;
				CFStringRef kernel_cache_type, CFStringRef boot_image_type, unsigned int&lt;br /&gt;
				unknown0, CFStringRef *firmware_dir_path, CFStringRef *&lt;br /&gt;
				kernelcache_restore_path, unsigned int unknown1, CFStringRef *&lt;br /&gt;
				ramdisk_path);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreModeDeviceReboot(struct am_restore_device *rdev);	// Added by JB 30.07.2008&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceEnterRecovery(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceDisconnect(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	/* to use this, start the service &amp;quot;com.apple.mobile.notification_proxy&amp;quot;, handle will be the socket to use */&lt;br /&gt;
	typedef void (*NOTIFY_CALLBACK)(CFSTR notification, USERDATA data);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDPostNotification(SOCKET socket, CFStringRef  notification, CFStringRef userinfo);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDObserveNotification(SOCKET socket, CFSTR notification);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDListenForNotifications(SOCKET socket, NOTIFY_CALLBACK cb, USERDATA data);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDShutdownNotificationProxy(SOCKET socket);&lt;br /&gt;
	&lt;br /&gt;
	/*edits by geohot*/&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceDeactivate(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceActivate(struct am_device *device, CFDictionaryRef dict);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceRemoveValue(struct am_device *device, unsigned int, CFStringRef cfstring);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Semi-private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/*  Pass in a usbmux_listener_1 structure and a usbmux_listener_2 structure&lt;br /&gt;
	 *  pointer, which will be filled with the resulting usbmux_listener_2.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if completed successfully&lt;br /&gt;
	 *      MDERR_USBMUX_ARG_NULL   if one of the arguments was NULL&lt;br /&gt;
	 *      MDERR_USBMUX_FAILED     if the listener was not created successfully&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT usbmux_error_t USBMuxListenerCreate(struct usbmux_listener_1 *esi_fp8, struct&lt;br /&gt;
										usbmux_listener_2 **eax_fp12);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented semi-private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	__DLLIMPORT usbmux_error_t USBMuxListenerHandleData(void *);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Private routines - here be dragons&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/* AMRestorePerformRestoreModeRestore() calls this function with a dictionary&lt;br /&gt;
	 * in order to perform certain special restore operations&lt;br /&gt;
	 * (RESTORED_OPERATION_*). It is thought that this function might enable&lt;br /&gt;
	 * significant access to the phone. */&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	 typedef unsigned int (*t_performOperation)(struct am_restore_device *rdev,&lt;br /&gt;
	 CFDictionaryRef op) __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_performOperation _performOperation = (t_performOperation)0x3c39fa4b;&lt;br /&gt;
	 */ &lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	 typedef int (*t_socketForPort)(struct am_restore_device *rdev, unsigned int port)&lt;br /&gt;
	 __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_socketForPort _socketForPort = (t_socketForPort)(void *)0x3c39f36c;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef void (*t_restored_send_message)(int port, CFDictionaryRef msg);&lt;br /&gt;
	 t_restored_send_message _restored_send_message = (t_restored_send_message)0x3c3a4e40;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef CFDictionaryRef (*t_restored_receive_message)(int port);&lt;br /&gt;
	 t_restored_receive_message _restored_receive_message = (t_restored_receive_message)0x3c3a4d40;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_sendControlPacket)(struct am_recovery_device *rdev, unsigned&lt;br /&gt;
	 int msg1, unsigned int msg2, unsigned int unknown0, unsigned int *unknown1,&lt;br /&gt;
	 unsigned char *unknown2) __attribute__ ((regparm(3)));&lt;br /&gt;
	 t_sendControlPacket _sendControlPacket = (t_sendControlPacket)0x3c3a3da3;;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_sendCommandToDevice)(struct am_recovery_device *rdev,&lt;br /&gt;
	 CFStringRef cmd) __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_sendCommandToDevice _sendCommandToDevice = (t_sendCommandToDevice)0x3c3a3e3b;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_AMRUSBInterfaceReadPipe)(unsigned int readwrite_pipe, unsigned&lt;br /&gt;
	 int read_pipe, unsigned char *data, unsigned int *len);&lt;br /&gt;
	 t_AMRUSBInterfaceReadPipe _AMRUSBInterfaceReadPipe = (t_AMRUSBInterfaceReadPipe)0x3c3a27e8;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_AMRUSBInterfaceWritePipe)(unsigned int readwrite_pipe, unsigned&lt;br /&gt;
	 int write_pipe, void *data, unsigned int len);&lt;br /&gt;
	 t_AMRUSBInterfaceWritePipe _AMRUSBInterfaceWritePipe = (t_AMRUSBInterfaceWritePipe)0x3c3a27cb;&lt;br /&gt;
	 */&lt;br /&gt;
	&lt;br /&gt;
	int performOperation(am_restore_device *rdev, CFMutableDictionaryRef message);&lt;br /&gt;
	int socketForPort(am_restore_device *rdev, unsigned int portnum);&lt;br /&gt;
	int sendCommandToDevice(am_recovery_device *rdev, CFStringRef cfs, int block);&lt;br /&gt;
	int sendFileToDevice(am_recovery_device *rdev, CFStringRef filename); &lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
#ifdef __cplusplus&lt;br /&gt;
}&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
/* -*- mode:c; indent-tabs-mode:nil; c-basic-offset:2; tab-width:2; */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AFC Connection===&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
===Locking the Device for Sync===&lt;br /&gt;
When iTunes sends a new song to the device, the device shows a &amp;quot;Sync in progress&amp;quot; screen and when complete, the Music app on the device re-reads the iTunesDB file so it picks up the new song.&lt;br /&gt;
&lt;br /&gt;
To get this behaviour, first start the notification service:&lt;br /&gt;
&amp;lt;pre&amp;gt;SOCKET socket;&lt;br /&gt;
AMDeviceStartService(dev, CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;), &amp;amp;socket, NULL);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we post a notificaton message to signal that we are going to start a sync:&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket, CFSTR(&amp;quot;com.apple.itunes-mobdev.syncWillStart&amp;quot;), NULL);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we open the itunes lock file:&lt;br /&gt;
&amp;lt;pre&amp;gt;afc_file_ref lockref;&lt;br /&gt;
AFCFileRefOpen(conn, &amp;quot;/com.apple.itunes.lock_sync&amp;quot;, 2, &amp;amp;lockref);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now post a notification to say we are going to lock this file, and try and lock it.&lt;br /&gt;
If the AFCFileRefLock call fails, pause and repeat.&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket, CFSTR(&amp;quot;com.apple.itunes-mobdev.syncLockRequest&amp;quot;), NULL);&lt;br /&gt;
mach_error_t error = AFCFileRefLock(conn, lockref);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the file is successfully locked, post another notification, and stop the notification service.&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket,CFSTR(&amp;quot;com.apple.itunes-mobdev.syncDidStart&amp;quot;), NULL);&lt;br /&gt;
AMDShutdownNotificationProxy(socket);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the sync can proceed, so copy your files across and make the changes to the iTunesDB.&lt;br /&gt;
&lt;br /&gt;
To release the lock, start the notification system again, unlock and close the lock file, and send a sync finished notification message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;AFCFileRefUnlock(conn, lockref);&lt;br /&gt;
AFCFileRefClose(conn, lockref);&lt;br /&gt;
AMDeviceStartService(dev, CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;), &amp;amp;socket, NULL);&lt;br /&gt;
AMDPostNotification(socket, &amp;amp;CFSTR(&amp;quot;com.apple.itunes-mobdev.syncDidFinish&amp;quot;), NULL);&lt;br /&gt;
AMDShutdownNotificationProxy(socket);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To handle &amp;quot;Slide to Cancel&amp;quot; and terminate sync when user slides cancel switch, use AMDObserveNotification to subscribe notifications about “com.apple.itunes-client.syncCancelRequest”. Then start listening for notifications (AMDListenForNotifications) until you get “AMDNotificationFaceplant”.&lt;br /&gt;
When notification got, you should unlock and close lock file handle (don’t sure if you need to post “syncDidFinish” to proxy, seems it doesn’t matter) and terminate sync gracefully.&lt;br /&gt;
The same notification is also got when you unplug your device, so you should always be ready for errors.&lt;br /&gt;
&lt;br /&gt;
NOTE: You may find that starting the notification_proxy service once and once only at the start of your app and using the same socket in calls to AMDPostNotification works better. iTunes opens and closes the notification_proxy regularly, but it appears to be a bit flakey when you open/close it all the time.&lt;br /&gt;
&lt;br /&gt;
===Private Functions===&lt;br /&gt;
&lt;br /&gt;
====How to find address of privates functions in iTunesMobileDevice.dll or MobileDevice.framework ?====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Libraries Implementations===&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/p/iphuc/ iPhuc (Command line utility)]&lt;br /&gt;
* [http://code.google.com/p/iphucwin32/ iPhuc Win32 (Command line utility)]&lt;br /&gt;
* [http://code.google.com/p/manzana/ manzana (.Net Library)]&lt;br /&gt;
* [http://code.google.com/p/independence/source/browse/trunk/libPhoneInteraction/ libPhoneInteraction (C Library)]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=MobileDevice_Library&amp;diff=5219</id>
		<title>MobileDevice Library</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=MobileDevice_Library&amp;diff=5219"/>
		<updated>2009-10-18T21:57:32Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* MobileDevice Header (mobiledevice.h) */ Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MobileDevice Library is used by [[iTunes]] to transfer data between iPhone and computer over the USB connection.&lt;br /&gt;
&lt;br /&gt;
===PC Windows : iTunesMobileDevice.dll===&lt;br /&gt;
&lt;br /&gt;
* Location : Location is stored in '''iTunesMobileDeviceDLL''' registry value under '''HKLM\SOFTWARE\Apple Inc.\Apple Mobile Device Support\Shared''' key. Usually - C:\Program Files\Common Files\Apple\Mobile Device Support\bin\iTunesMobileDevice.dll.&lt;br /&gt;
&lt;br /&gt;
* Supporting CoreFoundation.dll (used for CFStringRef, CFPropertyListRef management) is located in the same dir (when using iTunes prior 9.0). &lt;br /&gt;
&lt;br /&gt;
* For iTunes 9.0 location of CoreFoundation.dll is stored in '''InstallDir''' registry value under '''HKLM\SOFTWARE\Apple Inc.\Apple Application Support''' key, usually C:\Program Files\Common Files\Apple\Apple Application Support\. CoreFoundation.dll from Mobile Device Support\bin should not be used.&lt;br /&gt;
&lt;br /&gt;
===Mac OSX : MobileDevice.framework===&lt;br /&gt;
&lt;br /&gt;
* Location : /System/Library/PrivateFrameworks/MobileDevice.framework&lt;br /&gt;
* Export command : &amp;quot;nm /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===MobileDevice Header (mobiledevice.h)===&lt;br /&gt;
&lt;br /&gt;
Reverse engineered C header for MobileDevice Library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* ----------------------------------------------------------------------------&lt;br /&gt;
 *   MobileDevice.h - interface to MobileDevice.framework &lt;br /&gt;
 * ------------------------------------------------------------------------- */&lt;br /&gt;
#pragma once&lt;br /&gt;
&lt;br /&gt;
#ifndef MOBILEDEVICE_H&lt;br /&gt;
#define MOBILEDEVICE_H&lt;br /&gt;
&lt;br /&gt;
#ifdef __cplusplus&lt;br /&gt;
extern &amp;quot;C&amp;quot; {&lt;br /&gt;
#endif&lt;br /&gt;
	&lt;br /&gt;
#ifndef __GCC__&lt;br /&gt;
#pragma pack&lt;br /&gt;
#define __PACK&lt;br /&gt;
#else&lt;br /&gt;
#define __PACK __attribute__((__packed__))&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#if defined(WIN32)&lt;br /&gt;
#define __DLLIMPORT [DllImport(&amp;quot;iTunesMobileDevice.dll&amp;quot;)]&lt;br /&gt;
	using namespace System::Runtime::InteropServices;&lt;br /&gt;
#include &amp;lt;CoreFoundation.h&amp;gt;&lt;br /&gt;
	typedef unsigned int mach_error_t;&lt;br /&gt;
#elif defined(__APPLE__)&lt;br /&gt;
#define __DLLIMPORT&lt;br /&gt;
#include &amp;lt;CoreFoundation/CoreFoundation.h&amp;gt;&lt;br /&gt;
#include &amp;lt;mach/error.h&amp;gt;&lt;br /&gt;
#endif	&lt;br /&gt;
	&lt;br /&gt;
	/* Error codes */&lt;br /&gt;
#define MDERR_APPLE_MOBILE  (err_system(0x3a))&lt;br /&gt;
#define MDERR_IPHONE        (err_sub(0))&lt;br /&gt;
	&lt;br /&gt;
	/* Apple Mobile (AM*) errors */&lt;br /&gt;
#define MDERR_OK                ERR_SUCCESS&lt;br /&gt;
#define MDERR_SYSCALL           (ERR_MOBILE_DEVICE | 0x01)&lt;br /&gt;
#define MDERR_OUT_OF_MEMORY     (ERR_MOBILE_DEVICE | 0x03)&lt;br /&gt;
#define MDERR_QUERY_FAILED      (ERR_MOBILE_DEVICE | 0x04) &lt;br /&gt;
#define MDERR_INVALID_ARGUMENT  (ERR_MOBILE_DEVICE | 0x0b)&lt;br /&gt;
#define MDERR_DICT_NOT_LOADED   (ERR_MOBILE_DEVICE | 0x25)&lt;br /&gt;
	&lt;br /&gt;
	/* Apple File Connection (AFC*) errors */&lt;br /&gt;
#define MDERR_AFC_OUT_OF_MEMORY 0x03&lt;br /&gt;
	&lt;br /&gt;
	/* USBMux errors */&lt;br /&gt;
#define MDERR_USBMUX_ARG_NULL   0x16&lt;br /&gt;
#define MDERR_USBMUX_FAILED     0xffffffff&lt;br /&gt;
	&lt;br /&gt;
	/* Messages passed to device notification callbacks: passed as part of&lt;br /&gt;
	 * am_device_notification_callback_info. */&lt;br /&gt;
#define ADNCI_MSG_CONNECTED     1&lt;br /&gt;
#define ADNCI_MSG_DISCONNECTED  2&lt;br /&gt;
#define ADNCI_MSG_UNSUBSCRIBED  3&lt;br /&gt;
	&lt;br /&gt;
#define AMD_IPHONE_PRODUCT_ID   0x1290&lt;br /&gt;
	//#define AMD_IPHONE_SERIAL       &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	/* Services, found in /System/Library/Lockdown/Services.plist */&lt;br /&gt;
#define AMSVC_AFC                   CFSTR(&amp;quot;com.apple.afc&amp;quot;)&lt;br /&gt;
#define AMSVC_BACKUP                CFSTR(&amp;quot;com.apple.mobilebackup&amp;quot;)&lt;br /&gt;
#define AMSVC_CRASH_REPORT_COPY     CFSTR(&amp;quot;com.apple.crashreportcopy&amp;quot;)&lt;br /&gt;
#define AMSVC_DEBUG_IMAGE_MOUNT     CFSTR(&amp;quot;com.apple.mobile.debug_image_mount&amp;quot;)&lt;br /&gt;
#define AMSVC_NOTIFICATION_PROXY    CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;)&lt;br /&gt;
#define AMSVC_PURPLE_TEST           CFSTR(&amp;quot;com.apple.purpletestr&amp;quot;)&lt;br /&gt;
#define AMSVC_SOFTWARE_UPDATE       CFSTR(&amp;quot;com.apple.mobile.software_update&amp;quot;)&lt;br /&gt;
#define AMSVC_SYNC                  CFSTR(&amp;quot;com.apple.mobilesync&amp;quot;)&lt;br /&gt;
#define AMSVC_SCREENSHOT            CFSTR(&amp;quot;com.apple.screenshotr&amp;quot;)&lt;br /&gt;
#define AMSVC_SYSLOG_RELAY          CFSTR(&amp;quot;com.apple.syslog_relay&amp;quot;)&lt;br /&gt;
#define AMSVC_SYSTEM_PROFILER       CFSTR(&amp;quot;com.apple.mobile.system_profiler&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	typedef unsigned int afc_error_t;&lt;br /&gt;
	typedef unsigned int usbmux_error_t;&lt;br /&gt;
	&lt;br /&gt;
	struct am_recovery_device;&lt;br /&gt;
	&lt;br /&gt;
	struct am_device_notification_callback_info {&lt;br /&gt;
		struct am_device *dev;  /* 0    device */ &lt;br /&gt;
		unsigned int msg;       /* 4    one of ADNCI_MSG_* */&lt;br /&gt;
                struct am_device_notification* subscription; &lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device restore notification callback functions.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void (*am_restore_device_notification_callback)(struct am_recovery_device *);&lt;br /&gt;
	&lt;br /&gt;
	/* This is a CoreFoundation object of class AMRecoveryModeDevice. */&lt;br /&gt;
	struct am_recovery_device {&lt;br /&gt;
		unsigned char unknown0[8];                          /* 0 */&lt;br /&gt;
		am_restore_device_notification_callback callback;   /* 8 */&lt;br /&gt;
		void *user_info;                                    /* 12 */&lt;br /&gt;
		unsigned char unknown1[12];                         /* 16 */&lt;br /&gt;
		unsigned int readwrite_pipe;                        /* 28 */&lt;br /&gt;
		unsigned char read_pipe;                            /* 32 */&lt;br /&gt;
		unsigned char write_ctrl_pipe;                      /* 33 */&lt;br /&gt;
		unsigned char read_unknown_pipe;                    /* 34 */&lt;br /&gt;
		unsigned char write_file_pipe;                      /* 35 */&lt;br /&gt;
		unsigned char write_input_pipe;                     /* 36 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* A CoreFoundation object of class AMRestoreModeDevice. */&lt;br /&gt;
	struct am_restore_device {&lt;br /&gt;
		unsigned char unknown[32];&lt;br /&gt;
		int port;&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device notification callback function. */&lt;br /&gt;
	typedef void(*am_device_notification_callback)(struct am_device_notification_callback_info *, int cookie);&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the _AMDDeviceAttached function.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void *amd_device_attached_callback;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device restore notification callback functions.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void (*am_restore_device_notification_callback)(struct am_recovery_device *);&lt;br /&gt;
&lt;br /&gt;
	/* Structure that contains internal data used by AMDevice... functions. Never try &lt;br /&gt;
         * to access its members directly! Use AMDeviceCopyDeviceIdentifier, &lt;br /&gt;
         * AMDeviceGetConnectionID, AMDeviceRetain, AMDeviceRelease instead. */&lt;br /&gt;
	struct am_device {&lt;br /&gt;
		unsigned char unknown0[16]; /* 0 - zero */&lt;br /&gt;
		unsigned int device_id;     /* 16 */&lt;br /&gt;
		unsigned int product_id;    /* 20 - set to AMD_IPHONE_PRODUCT_ID */&lt;br /&gt;
		char *serial;               /* 24 - set to UDID, Unique Device Identifier */&lt;br /&gt;
		unsigned int unknown1;      /* 28 */&lt;br /&gt;
		unsigned int unknown2;      /* 32 - reference counter, increased by AMDeviceRetain, decreased by AMDeviceRelease*/&lt;br /&gt;
		unsigned int lockdown_conn; /* 36 */&lt;br /&gt;
		unsigned char unknown3[8];  /* 40 */&lt;br /&gt;
#if (__ITUNES_VER &amp;gt; 740)&lt;br /&gt;
		unsigned int unknown4;      /* 48 - used to store CriticalSection Handle*/&lt;br /&gt;
#endif&lt;br /&gt;
#if (__ITUNES_VER &amp;gt;= 800)&lt;br /&gt;
		unsigned char unknown5[24];  /* 52 */&lt;br /&gt;
#endif&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct am_device_notification {&lt;br /&gt;
		unsigned int unknown0;                      /* 0 */&lt;br /&gt;
		unsigned int unknown1;                      /* 4 */&lt;br /&gt;
		unsigned int unknown2;                      /* 8 */&lt;br /&gt;
		am_device_notification_callback callback;   /* 12 */ &lt;br /&gt;
		unsigned int cookie;                      /* 16 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct afc_connection {&lt;br /&gt;
		unsigned int handle;            /* 0 */&lt;br /&gt;
		unsigned int unknown0;          /* 4 */&lt;br /&gt;
		unsigned char unknown1;         /* 8 */&lt;br /&gt;
		unsigned char padding[3];       /* 9 */&lt;br /&gt;
		unsigned int unknown2;          /* 12 */&lt;br /&gt;
		unsigned int unknown3;          /* 16 */&lt;br /&gt;
		unsigned int unknown4;          /* 20 */&lt;br /&gt;
		unsigned int fs_block_size;     /* 24 */&lt;br /&gt;
		unsigned int sock_block_size;   /* 28: always 0x3c */&lt;br /&gt;
		unsigned int io_timeout;        /* 32: from AFCConnectionOpen, usu. 0 */&lt;br /&gt;
		void *afc_lock;                 /* 36 */&lt;br /&gt;
		unsigned int context;           /* 40 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	struct afc_device_info {&lt;br /&gt;
		unsigned char unknown[12];  /* 0 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
&lt;br /&gt;
	struct afc_directory {&lt;br /&gt;
		unsigned char unknown[0];   /* size unknown */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
&lt;br /&gt;
	struct afc_dictionary {&lt;br /&gt;
		unsigned char unknown[0];   /* size unknown */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	typedef unsigned long long afc_file_ref;&lt;br /&gt;
	&lt;br /&gt;
	struct usbmux_listener_1 {                  /* offset   value in iTunes */&lt;br /&gt;
		unsigned int unknown0;                  /* 0        1 */&lt;br /&gt;
		unsigned char *unknown1;                /* 4        ptr, maybe device? */&lt;br /&gt;
		amd_device_attached_callback callback;  /* 8        _AMDDeviceAttached */&lt;br /&gt;
		unsigned int unknown3;                  /* 12 */&lt;br /&gt;
		unsigned int unknown4;                  /* 16 */&lt;br /&gt;
		unsigned int unknown5;                  /* 20 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct usbmux_listener_2 {&lt;br /&gt;
		unsigned char unknown0[4144];&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct am_bootloader_control_packet {&lt;br /&gt;
		unsigned char opcode;       /* 0 */&lt;br /&gt;
		unsigned char length;       /* 1 */&lt;br /&gt;
		unsigned char magic[2];     /* 2: 0x34, 0x12 */&lt;br /&gt;
		unsigned char payload[0];   /* 4 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Public routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/*  Registers a notification with the current run loop. The callback gets&lt;br /&gt;
	 *  copied into the notification struct, as well as being registered with the&lt;br /&gt;
	 *  current run loop. Cookie gets copied into cookie in the same.&lt;br /&gt;
	 *  (Cookie is a user info parameter that gets passed as an arg to&lt;br /&gt;
	 *  the callback) unused0 and unused1 are both 0 when iTunes calls this.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Never try to acces directly or copy contents of dev and subscription fields &lt;br /&gt;
	 *  in am_device_notification_callback_info. Treat them as abstract handles. &lt;br /&gt;
	 *  When done with connection use AMDeviceRelease to free resources allocated for am_device.&lt;br /&gt;
	 *  &lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK            if successful&lt;br /&gt;
	 *      MDERR_SYSCALL       if CFRunLoopAddSource() failed&lt;br /&gt;
	 *      MDERR_OUT_OF_MEMORY if we ran out of memory&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceNotificationSubscribe(am_device_notification_callback callback, &lt;br /&gt;
								unsigned int unused0, unsigned int unused1, &lt;br /&gt;
								unsigned int cookie, &lt;br /&gt;
								struct am_device_notification **subscription);&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
        /* Unregisters notifications. Buggy (iTunes 8.2): if you subscribe, unsubscribe and subscribe again, arriving &lt;br /&gt;
           notifications will contain cookie and subscription from 1st call to subscribe, not the 2nd one. iTunes &lt;br /&gt;
           calls this function only once on exit.&lt;br /&gt;
        */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceNotificationUnsubscribe(am_device_notification* subscription);&lt;br /&gt;
&lt;br /&gt;
	/*  Returns device_id field of am_device structure&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMDeviceGetConnectionID(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/*  Returns serial field of am_device structure&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT CFStringRef AMDeviceCopyDeviceIdentifier(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/*  Connects to the iPhone. Pass in the am_device structure that the&lt;br /&gt;
	 *  notification callback will give to you.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successfully connected&lt;br /&gt;
	 *      MDERR_SYSCALL           if setsockopt() failed&lt;br /&gt;
	 *      MDERR_QUERY_FAILED      if the daemon query failed&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if USBMuxConnectByPort returned 0xffffffff&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceConnect(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  Calls PairingRecordPath() on the given device, than tests whether the path&lt;br /&gt;
	 *  which that function returns exists. During the initial connect, the path&lt;br /&gt;
	 *  returned by that function is '/', and so this returns 1.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      0   if the path did not exist&lt;br /&gt;
	 *      1   if it did&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceIsPaired(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDevicePair(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  iTunes calls this function immediately after testing whether the device is&lt;br /&gt;
	 *  paired. It creates a pairing file and establishes a Lockdown connection.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the supplied device is null&lt;br /&gt;
	 *      MDERR_DICT_NOT_LOADED   if the load_dict() call failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceValidatePairing(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  Creates a Lockdown session and adjusts the device structure appropriately&lt;br /&gt;
	 *  to indicate that the session has been started. iTunes calls this function&lt;br /&gt;
	 *  after validating pairing.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 *      MDERR_DICT_NOT_LOADED   if the load_dict() call failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStartSession(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	/* Reads various device settings. One of domain or cfstring arguments should be NULL.&lt;br /&gt;
         *&lt;br /&gt;
         * Possible values for cfstring:&lt;br /&gt;
	 * ActivationState&lt;br /&gt;
	 * ActivationStateAcknowledged&lt;br /&gt;
	 * BasebandBootloaderVersion&lt;br /&gt;
	 * BasebandVersion&lt;br /&gt;
	 * BluetoothAddress&lt;br /&gt;
	 * BuildVersion&lt;br /&gt;
	 * DeviceCertificate&lt;br /&gt;
	 * DeviceClass&lt;br /&gt;
	 * DeviceName&lt;br /&gt;
	 * DevicePublicKey&lt;br /&gt;
	 * FirmwareVersion&lt;br /&gt;
	 * HostAttached&lt;br /&gt;
	 * IntegratedCircuitCardIdentity&lt;br /&gt;
	 * InternationalMobileEquipmentIdentity&lt;br /&gt;
	 * InternationalMobileSubscriberIdentity&lt;br /&gt;
	 * ModelNumber&lt;br /&gt;
	 * PhoneNumber&lt;br /&gt;
	 * ProductType&lt;br /&gt;
	 * ProductVersion&lt;br /&gt;
	 * ProtocolVersion&lt;br /&gt;
	 * RegionInfo&lt;br /&gt;
	 * SBLockdownEverRegisteredKey&lt;br /&gt;
	 * SIMStatus&lt;br /&gt;
	 * SerialNumber&lt;br /&gt;
	 * SomebodySetTimeZone&lt;br /&gt;
	 * TimeIntervalSince1970&lt;br /&gt;
	 * TimeZone&lt;br /&gt;
	 * TimeZoneOffsetFromUTC&lt;br /&gt;
	 * TrustedHostAttached&lt;br /&gt;
	 * UniqueDeviceID&lt;br /&gt;
	 * Uses24HourClock&lt;br /&gt;
	 * WiFiAddress&lt;br /&gt;
	 * iTunesHasConnected&lt;br /&gt;
         *&lt;br /&gt;
         * Possible values for domain:&lt;br /&gt;
         * com.apple.mobile.battery&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT CFStringRef AMDeviceCopyValue(struct am_device *device, CFStringRef domain, CFStringRef cfstring);&lt;br /&gt;
	&lt;br /&gt;
	/* Starts a service and returns a socket file descriptor that can be used in order to further&lt;br /&gt;
	 * access the service. You should stop the session and disconnect before using&lt;br /&gt;
	 * the service. iTunes calls this function after starting a session. It starts &lt;br /&gt;
	 * the service and the SSL connection. service_name should be one of the AMSVC_*&lt;br /&gt;
	 * constants.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_SYSCALL           if the setsockopt() call failed&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStartService(struct am_device *device, CFStringRef &lt;br /&gt;
									  service_name, int *socket_fd);&lt;br /&gt;
	&lt;br /&gt;
	/* Stops a session. You should do this before accessing services.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStopSession(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/* Decrements reference counter and, if nothing left, releases resources hold &lt;br /&gt;
	 * by connection, invalidates  pointer to device&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT void AMDeviceRelease(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/* Increments reference counter&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT void AMDeviceRetain(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/* Opens an Apple File Connection. You must start the appropriate service&lt;br /&gt;
	 * first with AMDeviceStartService(). In iTunes, io_timeout is 0.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_AFC_OUT_OF_MEMORY if malloc() failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCConnectionOpen(int socket_fd, unsigned int io_timeout,&lt;br /&gt;
								  struct afc_connection **conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Pass in a pointer to an afc_dictionary structure. It will be filled. You can&lt;br /&gt;
	 * iterate it using AFCKeyValueRead. When done use AFCKeyValueClose. Possible keys:&lt;br /&gt;
	 * FSFreeBytes - free bytes on system device for afc2, user device for afc&lt;br /&gt;
	 * FSBlockSize - filesystem block size&lt;br /&gt;
	 * FSTotalBytes - size of device&lt;br /&gt;
	 * Model - iPhone1,1 etc.&lt;br /&gt;
&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDeviceInfoOpen(struct afc_connection *conn, struct&lt;br /&gt;
								  afc_dictionary **info);&lt;br /&gt;
	&lt;br /&gt;
	/* Turns debug mode on if the environment variable AFCDEBUG is set to a numeric&lt;br /&gt;
	 * value, or if the file '/AFCDEBUG' is present and contains a value. */&lt;br /&gt;
#if defined(__APPLE__)&lt;br /&gt;
	void AFCPlatformInit();&lt;br /&gt;
#endif&lt;br /&gt;
	&lt;br /&gt;
	/* Opens a directory on the iPhone. Pass in a pointer in dir to be filled in.&lt;br /&gt;
	 * Note that this normally only accesses the iTunes sandbox/partition as the&lt;br /&gt;
	 * root, which is /var/root/Media. Pathnames are specified with '/' delimiters&lt;br /&gt;
	 * as in Unix style. Use UTF-8 to specify non-ASCII symbols in path.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryOpen(struct afc_connection *conn, char *path, struct&lt;br /&gt;
								 afc_directory **dir);&lt;br /&gt;
	&lt;br /&gt;
	/* Acquires the next entry in a directory previously opened with&lt;br /&gt;
	 * AFCDirectoryOpen(). When dirent is filled with a NULL value, then the end&lt;br /&gt;
	 * of the directory has been reached. '.' and '..' will be returned as the&lt;br /&gt;
	 * first two entries in each directory except the root; you may want to skip&lt;br /&gt;
	 * over them.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful, even if no entries remain&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryRead(struct afc_connection *conn/*unsigned int unused*/, struct afc_directory *dir,&lt;br /&gt;
								 char **dirent);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryClose(afc_connection *conn, struct afc_directory *dir);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryCreate(afc_connection *conn, char *dirname);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCRemovePath(afc_connection *conn, char *dirname);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCRenamePath(afc_connection *conn, char *oldpath, char *newpath);&lt;br /&gt;
&lt;br /&gt;
	/* Creates symbolic or hard link&lt;br /&gt;
         * linktype - int64: 1 means hard link, 2 - soft (symbolic) link&lt;br /&gt;
         * target - absolute or relative path to link target&lt;br /&gt;
         * linkname - absolute path where to create new link&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCLinkPath(afc_connection *conn, long long int linktype, const char *target, const char *linkname);&lt;br /&gt;
&lt;br /&gt;
	/* Opens file for reading or writing without locking it in any way. afc_file_ref should not be shared between threads - &lt;br /&gt;
         * opening file in one thread and closing it in another will lead to possible crash.&lt;br /&gt;
	 * path - UTF-8 encoded absolute path to file&lt;br /&gt;
	 * mode 2 = read, mode 3 = write; unknown = 0 &lt;br /&gt;
	 * ref - receives file handle&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefOpen(struct afc_connection *conn, char *path, unsigned&lt;br /&gt;
							   long long int mode, afc_file_ref *ref);&lt;br /&gt;
	/* Reads specified amount (len) of bytes from file into buf. Puts actual count of read bytes into len on return&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefRead(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   void *buf, unsigned int *len);&lt;br /&gt;
	/* Writes specified amount (len) of bytes from buf into file.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefWrite(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
								void *buf, unsigned int len);&lt;br /&gt;
	/* Moves the file pointer to a specified location.&lt;br /&gt;
	 * offset - Number of bytes from origin (int64)&lt;br /&gt;
	 * origin - 0 = from beginning, 1 = from current position, 2 = from end&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefSeek(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   unsigned long long offset, int origin, int unused);&lt;br /&gt;
&lt;br /&gt;
	/* Gets the current position of a file pointer into offset argument.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefTell(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   unsigned long long* offset);&lt;br /&gt;
&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefLock(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefUnlock(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefClose(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
&lt;br /&gt;
	/* Opens dictionary describing specified file or directory (iTunes below 8.2 allowed using AFCGetFileInfo&lt;br /&gt;
	   to get the same information)&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileInfoOpen(struct afc_connection *conn, char *path, struct&lt;br /&gt;
								afc_dictionary **info);&lt;br /&gt;
&lt;br /&gt;
	/* Reads next entry from dictionary. When last entry is read, function returns NULL in key argument&lt;br /&gt;
	   Possible keys:&lt;br /&gt;
	     &amp;quot;st_size&amp;quot;:     val - size in bytes&lt;br /&gt;
	     &amp;quot;st_blocks&amp;quot;:   val - size in blocks&lt;br /&gt;
	     &amp;quot;st_nlink&amp;quot;:    val - number of hardlinks&lt;br /&gt;
	     &amp;quot;st_ifmt&amp;quot;:     val - &amp;quot;S_IFDIR&amp;quot; for folders&lt;br /&gt;
	                        &amp;quot;S_IFLNK&amp;quot; for symlinks&lt;br /&gt;
	     &amp;quot;LinkTarget&amp;quot;:  val - path to symlink target&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCKeyValueRead(struct afc_dictionary *dict, char **key, char **&lt;br /&gt;
								val);&lt;br /&gt;
	/* Closes dictionary&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCKeyValueClose(struct afc_dictionary *dict);&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the context field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetContext(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the fs_block_size field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetFSBlockSize(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the io_timeout field of the given AFC connection. In iTunes this is&lt;br /&gt;
	 * 0. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetIOTimeout(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the sock_block_size field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetSocketBlockSize(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Closes the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCConnectionClose(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Registers for device notifications related to the restore process. unknown0&lt;br /&gt;
	 * is zero when iTunes calls this. In iTunes,&lt;br /&gt;
	 * the callbacks are located at:&lt;br /&gt;
	 *      1: $3ac68e-$3ac6b1, calls $3ac542(unknown1, arg, 0)&lt;br /&gt;
	 *      2: $3ac66a-$3ac68d, calls $3ac542(unknown1, 0, arg)&lt;br /&gt;
	 *      3: $3ac762-$3ac785, calls $3ac6b2(unknown1, arg, 0)&lt;br /&gt;
	 *      4: $3ac73e-$3ac761, calls $3ac6b2(unknown1, 0, arg)&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreRegisterForDeviceNotifications(&lt;br /&gt;
				am_restore_device_notification_callback dfu_connect_callback,&lt;br /&gt;
				am_restore_device_notification_callback recovery_connect_callback,&lt;br /&gt;
				am_restore_device_notification_callback dfu_disconnect_callback,&lt;br /&gt;
				am_restore_device_notification_callback recovery_disconnect_callback,&lt;br /&gt;
				unsigned int unknown0,&lt;br /&gt;
				void *user_info);&lt;br /&gt;
	&lt;br /&gt;
	/* Causes the restore functions to spit out (unhelpful) progress messages to&lt;br /&gt;
	 * the file specified by the given path. iTunes always calls this right before&lt;br /&gt;
	 * restoring with a path of&lt;br /&gt;
	 * &amp;quot;$HOME/Library/Logs/iPhone Updater Logs/iPhoneUpdater X.log&amp;quot;, where X is an&lt;br /&gt;
	 * unused number.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreEnableFileLogging(char *path);&lt;br /&gt;
	&lt;br /&gt;
	/* Initializes a new option dictionary to default values. Pass the constant&lt;br /&gt;
	 * kCFAllocatorDefault as the allocator. The option dictionary looks as&lt;br /&gt;
	 * follows:&lt;br /&gt;
	 * {&lt;br /&gt;
	 *      NORImageType =&amp;gt; 'production',&lt;br /&gt;
	 *      AutoBootDelay =&amp;gt; 0,&lt;br /&gt;
	 *      KernelCacheType =&amp;gt; 'Release',&lt;br /&gt;
	 *      UpdateBaseband =&amp;gt; true,&lt;br /&gt;
	 *      DFUFileType =&amp;gt; 'RELEASE',&lt;br /&gt;
	 *      SystemImageType =&amp;gt; 'User',&lt;br /&gt;
	 *      CreateFilesystemPartitions =&amp;gt; true,&lt;br /&gt;
	 *      FlashNOR =&amp;gt; true,&lt;br /&gt;
	 *      RestoreBootArgs =&amp;gt; 'rd=md0 nand-enable-reformat=1 -progress'&lt;br /&gt;
	 *      BootImageType =&amp;gt; 'User'&lt;br /&gt;
	 *  }&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      the option dictionary   if successful&lt;br /&gt;
	 *      NULL                    if out of memory&lt;br /&gt;
	 */ &lt;br /&gt;
	__DLLIMPORT CFMutableDictionaryRef AMRestoreCreateDefaultOptions(CFAllocatorRef allocator);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented public routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestorePerformRecoveryModeRestore(struct am_recovery_device *&lt;br /&gt;
				rdev, CFDictionaryRef opts, void *callback, void *user_info);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestorePerformRestoreModeRestore(struct am_restore_device *&lt;br /&gt;
				rdev, CFDictionaryRef opts, void *callback, void *user_info);&lt;br /&gt;
	__DLLIMPORT struct am_restore_device *AMRestoreModeDeviceCreate(unsigned int unknown0,&lt;br /&gt;
				unsigned int connection_id, unsigned int unknown1);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreCreatePathsForBundle(CFStringRef restore_bundle_path,&lt;br /&gt;
				CFStringRef kernel_cache_type, CFStringRef boot_image_type, unsigned int&lt;br /&gt;
				unknown0, CFStringRef *firmware_dir_path, CFStringRef *&lt;br /&gt;
				kernelcache_restore_path, unsigned int unknown1, CFStringRef *&lt;br /&gt;
				ramdisk_path);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreModeDeviceReboot(struct am_restore_device *rdev);	// Added by JB 30.07.2008&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceEnterRecovery(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceDisconnect(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	/* to use this, start the service &amp;quot;com.apple.mobile.notification_proxy&amp;quot;, handle will be the socket to use */&lt;br /&gt;
	typedef void (*NOTIFY_CALLBACK)(CFSTR notification, USERDATA data);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDPostNotification(SOCKET socket, CFStringRef  notification, CFStringRef userinfo);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDObserveNotification(SOCKET socket, CFSTR notification);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDListenForNotifications(SOCKET socket, NOTIFY_CALLBACK cb, USERDATA data);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDShutdownNotificationProxy(SOCKET socket);&lt;br /&gt;
	&lt;br /&gt;
	/*edits by geohot*/&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceDeactivate(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceActivate(struct am_device *device, CFDictionaryRef dict);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceRemoveValue(struct am_device *device, unsigned int, CFStringRef cfstring);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Semi-private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/*  Pass in a usbmux_listener_1 structure and a usbmux_listener_2 structure&lt;br /&gt;
	 *  pointer, which will be filled with the resulting usbmux_listener_2.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if completed successfully&lt;br /&gt;
	 *      MDERR_USBMUX_ARG_NULL   if one of the arguments was NULL&lt;br /&gt;
	 *      MDERR_USBMUX_FAILED     if the listener was not created successfully&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT usbmux_error_t USBMuxListenerCreate(struct usbmux_listener_1 *esi_fp8, struct&lt;br /&gt;
										usbmux_listener_2 **eax_fp12);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented semi-private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	__DLLIMPORT usbmux_error_t USBMuxListenerHandleData(void *);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Private routines - here be dragons&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/* AMRestorePerformRestoreModeRestore() calls this function with a dictionary&lt;br /&gt;
	 * in order to perform certain special restore operations&lt;br /&gt;
	 * (RESTORED_OPERATION_*). It is thought that this function might enable&lt;br /&gt;
	 * significant access to the phone. */&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	 typedef unsigned int (*t_performOperation)(struct am_restore_device *rdev,&lt;br /&gt;
	 CFDictionaryRef op) __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_performOperation _performOperation = (t_performOperation)0x3c39fa4b;&lt;br /&gt;
	 */ &lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	 typedef int (*t_socketForPort)(struct am_restore_device *rdev, unsigned int port)&lt;br /&gt;
	 __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_socketForPort _socketForPort = (t_socketForPort)(void *)0x3c39f36c;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef void (*t_restored_send_message)(int port, CFDictionaryRef msg);&lt;br /&gt;
	 t_restored_send_message _restored_send_message = (t_restored_send_message)0x3c3a4e40;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef CFDictionaryRef (*t_restored_receive_message)(int port);&lt;br /&gt;
	 t_restored_receive_message _restored_receive_message = (t_restored_receive_message)0x3c3a4d40;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_sendControlPacket)(struct am_recovery_device *rdev, unsigned&lt;br /&gt;
	 int msg1, unsigned int msg2, unsigned int unknown0, unsigned int *unknown1,&lt;br /&gt;
	 unsigned char *unknown2) __attribute__ ((regparm(3)));&lt;br /&gt;
	 t_sendControlPacket _sendControlPacket = (t_sendControlPacket)0x3c3a3da3;;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_sendCommandToDevice)(struct am_recovery_device *rdev,&lt;br /&gt;
	 CFStringRef cmd) __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_sendCommandToDevice _sendCommandToDevice = (t_sendCommandToDevice)0x3c3a3e3b;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_AMRUSBInterfaceReadPipe)(unsigned int readwrite_pipe, unsigned&lt;br /&gt;
	 int read_pipe, unsigned char *data, unsigned int *len);&lt;br /&gt;
	 t_AMRUSBInterfaceReadPipe _AMRUSBInterfaceReadPipe = (t_AMRUSBInterfaceReadPipe)0x3c3a27e8;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_AMRUSBInterfaceWritePipe)(unsigned int readwrite_pipe, unsigned&lt;br /&gt;
	 int write_pipe, void *data, unsigned int len);&lt;br /&gt;
	 t_AMRUSBInterfaceWritePipe _AMRUSBInterfaceWritePipe = (t_AMRUSBInterfaceWritePipe)0x3c3a27cb;&lt;br /&gt;
	 */&lt;br /&gt;
	&lt;br /&gt;
	int performOperation(am_restore_device *rdev, CFMutableDictionaryRef message);&lt;br /&gt;
	int socketForPort(am_restore_device *rdev, unsigned int portnum);&lt;br /&gt;
	int sendCommandToDevice(am_recovery_device *rdev, CFStringRef cfs, int block);&lt;br /&gt;
	int sendFileToDevice(am_recovery_device *rdev, CFStringRef filename); &lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
#ifdef __cplusplus&lt;br /&gt;
}&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
/* -*- mode:c; indent-tabs-mode:nil; c-basic-offset:2; tab-width:2; */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AFC Connection===&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
===Locking the Device for Sync===&lt;br /&gt;
When iTunes sends a new song to the device, the device shows a &amp;quot;Sync in progress&amp;quot; screen and when complete, the Music app on the device re-reads the iTunesDB file so it picks up the new song.&lt;br /&gt;
&lt;br /&gt;
To get this behaviour, first start the notification service:&lt;br /&gt;
&amp;lt;pre&amp;gt;SOCKET socket;&lt;br /&gt;
AMDeviceStartService(dev, CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;), &amp;amp;socket, NULL);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we post a notificaton message to signal that we are going to start a sync:&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket, CFSTR(&amp;quot;com.apple.itunes-mobdev.syncWillStart&amp;quot;), NULL);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we open the itunes lock file:&lt;br /&gt;
&amp;lt;pre&amp;gt;afc_file_ref lockref;&lt;br /&gt;
AFCFileRefOpen(conn, &amp;quot;/com.apple.itunes.lock_sync&amp;quot;, 2, &amp;amp;lockref);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now post a notification to say we are going to lock this file, and try and lock it.&lt;br /&gt;
If the AFCFileRefLock call fails, pause and repeat.&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket, CFSTR(&amp;quot;com.apple.itunes-mobdev.syncLockRequest&amp;quot;), NULL);&lt;br /&gt;
mach_error_t error = AFCFileRefLock(conn, lockref);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the file is successfully locked, post another notification, and stop the notification service.&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket,CFSTR(&amp;quot;com.apple.itunes-mobdev.syncDidStart&amp;quot;), NULL);&lt;br /&gt;
AMDShutdownNotificationProxy(socket);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the sync can proceed, so copy your files across and make the changes to the iTunesDB.&lt;br /&gt;
&lt;br /&gt;
To release the lock, start the notification system again, unlock and close the lock file, and send a sync finished notification message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;AFCFileRefUnlock(conn, lockref);&lt;br /&gt;
AFCFileRefClose(conn, lockref);&lt;br /&gt;
AMDeviceStartService(dev, CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;), &amp;amp;socket, NULL);&lt;br /&gt;
AMDPostNotification(socket, &amp;amp;CFSTR(&amp;quot;com.apple.itunes-mobdev.syncDidFinish&amp;quot;), NULL);&lt;br /&gt;
AMDShutdownNotificationProxy(socket);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To handle &amp;quot;Slide to Cancel&amp;quot; and terminate sync when user slides cancel switch, use AMDObserveNotification to subscribe notifications about “com.apple.itunes-client.syncCancelRequest”. Then start listening for notifications (AMDListenForNotifications) until you get “AMDNotificationFaceplant”.&lt;br /&gt;
When notification got, you should unlock and close lock file handle (don’t sure if you need to post “syncDidFinish” to proxy, seems it doesn’t matter) and terminate sync gracefully.&lt;br /&gt;
The same notification is also got when you unplug your device, so you should always be ready for errors.&lt;br /&gt;
&lt;br /&gt;
NOTE: You may find that starting the notification_proxy service once and once only at the start of your app and using the same socket in calls to AMDPostNotification works better. iTunes opens and closes the notification_proxy regularly, but it appears to be a bit flakey when you open/close it all the time.&lt;br /&gt;
&lt;br /&gt;
===Private Functions===&lt;br /&gt;
&lt;br /&gt;
====How to find address of privates functions in iTunesMobileDevice.dll or MobileDevice.framework ?====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Libraries Implementations===&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/p/iphuc/ iPhuc (Command line utility)]&lt;br /&gt;
* [http://code.google.com/p/iphucwin32/ iPhuc Win32 (Command line utility)]&lt;br /&gt;
* [http://code.google.com/p/manzana/ manzana (.Net Library)]&lt;br /&gt;
* [http://code.google.com/p/independence/source/browse/trunk/libPhoneInteraction/ libPhoneInteraction (C Library)]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=MobileDevice_Library&amp;diff=5217</id>
		<title>MobileDevice Library</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=MobileDevice_Library&amp;diff=5217"/>
		<updated>2009-10-18T21:56:12Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* MobileDevice Header (mobiledevice.h) */ New export documented (AFCLinkPath)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MobileDevice Library is used by [[iTunes]] to transfer data between iPhone and computer over the USB connection.&lt;br /&gt;
&lt;br /&gt;
===PC Windows : iTunesMobileDevice.dll===&lt;br /&gt;
&lt;br /&gt;
* Location : Location is stored in '''iTunesMobileDeviceDLL''' registry value under '''HKLM\SOFTWARE\Apple Inc.\Apple Mobile Device Support\Shared''' key. Usually - C:\Program Files\Common Files\Apple\Mobile Device Support\bin\iTunesMobileDevice.dll.&lt;br /&gt;
&lt;br /&gt;
* Supporting CoreFoundation.dll (used for CFStringRef, CFPropertyListRef management) is located in the same dir (when using iTunes prior 9.0). &lt;br /&gt;
&lt;br /&gt;
* For iTunes 9.0 location of CoreFoundation.dll is stored in '''InstallDir''' registry value under '''HKLM\SOFTWARE\Apple Inc.\Apple Application Support''' key, usually C:\Program Files\Common Files\Apple\Apple Application Support\. CoreFoundation.dll from Mobile Device Support\bin should not be used.&lt;br /&gt;
&lt;br /&gt;
===Mac OSX : MobileDevice.framework===&lt;br /&gt;
&lt;br /&gt;
* Location : /System/Library/PrivateFrameworks/MobileDevice.framework&lt;br /&gt;
* Export command : &amp;quot;nm /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===MobileDevice Header (mobiledevice.h)===&lt;br /&gt;
&lt;br /&gt;
Reverse engineered C header for MobileDevice Library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* ----------------------------------------------------------------------------&lt;br /&gt;
 *   MobileDevice.h - interface to MobileDevice.framework &lt;br /&gt;
 * ------------------------------------------------------------------------- */&lt;br /&gt;
#pragma once&lt;br /&gt;
&lt;br /&gt;
#ifndef MOBILEDEVICE_H&lt;br /&gt;
#define MOBILEDEVICE_H&lt;br /&gt;
&lt;br /&gt;
#ifdef __cplusplus&lt;br /&gt;
extern &amp;quot;C&amp;quot; {&lt;br /&gt;
#endif&lt;br /&gt;
	&lt;br /&gt;
#ifndef __GCC__&lt;br /&gt;
#pragma pack&lt;br /&gt;
#define __PACK&lt;br /&gt;
#else&lt;br /&gt;
#define __PACK __attribute__((__packed__))&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#if defined(WIN32)&lt;br /&gt;
#define __DLLIMPORT [DllImport(&amp;quot;iTunesMobileDevice.dll&amp;quot;)]&lt;br /&gt;
	using namespace System::Runtime::InteropServices;&lt;br /&gt;
#include &amp;lt;CoreFoundation.h&amp;gt;&lt;br /&gt;
	typedef unsigned int mach_error_t;&lt;br /&gt;
#elif defined(__APPLE__)&lt;br /&gt;
#define __DLLIMPORT&lt;br /&gt;
#include &amp;lt;CoreFoundation/CoreFoundation.h&amp;gt;&lt;br /&gt;
#include &amp;lt;mach/error.h&amp;gt;&lt;br /&gt;
#endif	&lt;br /&gt;
	&lt;br /&gt;
	/* Error codes */&lt;br /&gt;
#define MDERR_APPLE_MOBILE  (err_system(0x3a))&lt;br /&gt;
#define MDERR_IPHONE        (err_sub(0))&lt;br /&gt;
	&lt;br /&gt;
	/* Apple Mobile (AM*) errors */&lt;br /&gt;
#define MDERR_OK                ERR_SUCCESS&lt;br /&gt;
#define MDERR_SYSCALL           (ERR_MOBILE_DEVICE | 0x01)&lt;br /&gt;
#define MDERR_OUT_OF_MEMORY     (ERR_MOBILE_DEVICE | 0x03)&lt;br /&gt;
#define MDERR_QUERY_FAILED      (ERR_MOBILE_DEVICE | 0x04) &lt;br /&gt;
#define MDERR_INVALID_ARGUMENT  (ERR_MOBILE_DEVICE | 0x0b)&lt;br /&gt;
#define MDERR_DICT_NOT_LOADED   (ERR_MOBILE_DEVICE | 0x25)&lt;br /&gt;
	&lt;br /&gt;
	/* Apple File Connection (AFC*) errors */&lt;br /&gt;
#define MDERR_AFC_OUT_OF_MEMORY 0x03&lt;br /&gt;
	&lt;br /&gt;
	/* USBMux errors */&lt;br /&gt;
#define MDERR_USBMUX_ARG_NULL   0x16&lt;br /&gt;
#define MDERR_USBMUX_FAILED     0xffffffff&lt;br /&gt;
	&lt;br /&gt;
	/* Messages passed to device notification callbacks: passed as part of&lt;br /&gt;
	 * am_device_notification_callback_info. */&lt;br /&gt;
#define ADNCI_MSG_CONNECTED     1&lt;br /&gt;
#define ADNCI_MSG_DISCONNECTED  2&lt;br /&gt;
#define ADNCI_MSG_UNSUBSCRIBED  3&lt;br /&gt;
	&lt;br /&gt;
#define AMD_IPHONE_PRODUCT_ID   0x1290&lt;br /&gt;
	//#define AMD_IPHONE_SERIAL       &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	/* Services, found in /System/Library/Lockdown/Services.plist */&lt;br /&gt;
#define AMSVC_AFC                   CFSTR(&amp;quot;com.apple.afc&amp;quot;)&lt;br /&gt;
#define AMSVC_BACKUP                CFSTR(&amp;quot;com.apple.mobilebackup&amp;quot;)&lt;br /&gt;
#define AMSVC_CRASH_REPORT_COPY     CFSTR(&amp;quot;com.apple.crashreportcopy&amp;quot;)&lt;br /&gt;
#define AMSVC_DEBUG_IMAGE_MOUNT     CFSTR(&amp;quot;com.apple.mobile.debug_image_mount&amp;quot;)&lt;br /&gt;
#define AMSVC_NOTIFICATION_PROXY    CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;)&lt;br /&gt;
#define AMSVC_PURPLE_TEST           CFSTR(&amp;quot;com.apple.purpletestr&amp;quot;)&lt;br /&gt;
#define AMSVC_SOFTWARE_UPDATE       CFSTR(&amp;quot;com.apple.mobile.software_update&amp;quot;)&lt;br /&gt;
#define AMSVC_SYNC                  CFSTR(&amp;quot;com.apple.mobilesync&amp;quot;)&lt;br /&gt;
#define AMSVC_SCREENSHOT            CFSTR(&amp;quot;com.apple.screenshotr&amp;quot;)&lt;br /&gt;
#define AMSVC_SYSLOG_RELAY          CFSTR(&amp;quot;com.apple.syslog_relay&amp;quot;)&lt;br /&gt;
#define AMSVC_SYSTEM_PROFILER       CFSTR(&amp;quot;com.apple.mobile.system_profiler&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	typedef unsigned int afc_error_t;&lt;br /&gt;
	typedef unsigned int usbmux_error_t;&lt;br /&gt;
	&lt;br /&gt;
	struct am_recovery_device;&lt;br /&gt;
	&lt;br /&gt;
	struct am_device_notification_callback_info {&lt;br /&gt;
		struct am_device *dev;  /* 0    device */ &lt;br /&gt;
		unsigned int msg;       /* 4    one of ADNCI_MSG_* */&lt;br /&gt;
                struct am_device_notification* subscription; &lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device restore notification callback functions.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void (*am_restore_device_notification_callback)(struct am_recovery_device *);&lt;br /&gt;
	&lt;br /&gt;
	/* This is a CoreFoundation object of class AMRecoveryModeDevice. */&lt;br /&gt;
	struct am_recovery_device {&lt;br /&gt;
		unsigned char unknown0[8];                          /* 0 */&lt;br /&gt;
		am_restore_device_notification_callback callback;   /* 8 */&lt;br /&gt;
		void *user_info;                                    /* 12 */&lt;br /&gt;
		unsigned char unknown1[12];                         /* 16 */&lt;br /&gt;
		unsigned int readwrite_pipe;                        /* 28 */&lt;br /&gt;
		unsigned char read_pipe;                            /* 32 */&lt;br /&gt;
		unsigned char write_ctrl_pipe;                      /* 33 */&lt;br /&gt;
		unsigned char read_unknown_pipe;                    /* 34 */&lt;br /&gt;
		unsigned char write_file_pipe;                      /* 35 */&lt;br /&gt;
		unsigned char write_input_pipe;                     /* 36 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* A CoreFoundation object of class AMRestoreModeDevice. */&lt;br /&gt;
	struct am_restore_device {&lt;br /&gt;
		unsigned char unknown[32];&lt;br /&gt;
		int port;&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device notification callback function. */&lt;br /&gt;
	typedef void(*am_device_notification_callback)(struct am_device_notification_callback_info *, int cookie);&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the _AMDDeviceAttached function.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void *amd_device_attached_callback;&lt;br /&gt;
	&lt;br /&gt;
	/* The type of the device restore notification callback functions.&lt;br /&gt;
	 * TODO: change to correct type. */&lt;br /&gt;
	typedef void (*am_restore_device_notification_callback)(struct am_recovery_device *);&lt;br /&gt;
&lt;br /&gt;
	/* Structure that contains internal data used by AMDevice... functions. Never try &lt;br /&gt;
         * to access its members directly! Use AMDeviceCopyDeviceIdentifier, &lt;br /&gt;
         * AMDeviceGetConnectionID, AMDeviceRetain, AMDeviceRelease instead. */&lt;br /&gt;
	struct am_device {&lt;br /&gt;
		unsigned char unknown0[16]; /* 0 - zero */&lt;br /&gt;
		unsigned int device_id;     /* 16 */&lt;br /&gt;
		unsigned int product_id;    /* 20 - set to AMD_IPHONE_PRODUCT_ID */&lt;br /&gt;
		char *serial;               /* 24 - set to UDID, Unique Device Identifier */&lt;br /&gt;
		unsigned int unknown1;      /* 28 */&lt;br /&gt;
		unsigned int unknown2;      /* 32 - reference counter, increased by AMDeviceRetain, decreased by AMDeviceRelease*/&lt;br /&gt;
		unsigned int lockdown_conn; /* 36 */&lt;br /&gt;
		unsigned char unknown3[8];  /* 40 */&lt;br /&gt;
#if (__ITUNES_VER &amp;gt; 740)&lt;br /&gt;
		unsigned int unknown4;      /* 48 - used to store CriticalSection Handle*/&lt;br /&gt;
#endif&lt;br /&gt;
#if (__ITUNES_VER &amp;gt;= 800)&lt;br /&gt;
		unsigned char unknown5[24];  /* 52 */&lt;br /&gt;
#endif&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct am_device_notification {&lt;br /&gt;
		unsigned int unknown0;                      /* 0 */&lt;br /&gt;
		unsigned int unknown1;                      /* 4 */&lt;br /&gt;
		unsigned int unknown2;                      /* 8 */&lt;br /&gt;
		am_device_notification_callback callback;   /* 12 */ &lt;br /&gt;
		unsigned int cookie;                      /* 16 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct afc_connection {&lt;br /&gt;
		unsigned int handle;            /* 0 */&lt;br /&gt;
		unsigned int unknown0;          /* 4 */&lt;br /&gt;
		unsigned char unknown1;         /* 8 */&lt;br /&gt;
		unsigned char padding[3];       /* 9 */&lt;br /&gt;
		unsigned int unknown2;          /* 12 */&lt;br /&gt;
		unsigned int unknown3;          /* 16 */&lt;br /&gt;
		unsigned int unknown4;          /* 20 */&lt;br /&gt;
		unsigned int fs_block_size;     /* 24 */&lt;br /&gt;
		unsigned int sock_block_size;   /* 28: always 0x3c */&lt;br /&gt;
		unsigned int io_timeout;        /* 32: from AFCConnectionOpen, usu. 0 */&lt;br /&gt;
		void *afc_lock;                 /* 36 */&lt;br /&gt;
		unsigned int context;           /* 40 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	struct afc_device_info {&lt;br /&gt;
		unsigned char unknown[12];  /* 0 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
&lt;br /&gt;
	struct afc_directory {&lt;br /&gt;
		unsigned char unknown[0];   /* size unknown */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
&lt;br /&gt;
	struct afc_dictionary {&lt;br /&gt;
		unsigned char unknown[0];   /* size unknown */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	typedef unsigned long long afc_file_ref;&lt;br /&gt;
	&lt;br /&gt;
	struct usbmux_listener_1 {                  /* offset   value in iTunes */&lt;br /&gt;
		unsigned int unknown0;                  /* 0        1 */&lt;br /&gt;
		unsigned char *unknown1;                /* 4        ptr, maybe device? */&lt;br /&gt;
		amd_device_attached_callback callback;  /* 8        _AMDDeviceAttached */&lt;br /&gt;
		unsigned int unknown3;                  /* 12 */&lt;br /&gt;
		unsigned int unknown4;                  /* 16 */&lt;br /&gt;
		unsigned int unknown5;                  /* 20 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct usbmux_listener_2 {&lt;br /&gt;
		unsigned char unknown0[4144];&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	struct am_bootloader_control_packet {&lt;br /&gt;
		unsigned char opcode;       /* 0 */&lt;br /&gt;
		unsigned char length;       /* 1 */&lt;br /&gt;
		unsigned char magic[2];     /* 2: 0x34, 0x12 */&lt;br /&gt;
		unsigned char payload[0];   /* 4 */&lt;br /&gt;
	} __PACK;&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Public routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/*  Registers a notification with the current run loop. The callback gets&lt;br /&gt;
	 *  copied into the notification struct, as well as being registered with the&lt;br /&gt;
	 *  current run loop. Cookie gets copied into cookie in the same.&lt;br /&gt;
	 *  (Cookie is a user info parameter that gets passed as an arg to&lt;br /&gt;
	 *  the callback) unused0 and unused1 are both 0 when iTunes calls this.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Never try to acces directly or copy contents of dev and subscription fields &lt;br /&gt;
	 *  in am_device_notification_callback_info. Treat them as abstract handles. &lt;br /&gt;
	 *  When done with connection use AMDeviceRelease to free resources allocated for am_device.&lt;br /&gt;
	 *  &lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK            if successful&lt;br /&gt;
	 *      MDERR_SYSCALL       if CFRunLoopAddSource() failed&lt;br /&gt;
	 *      MDERR_OUT_OF_MEMORY if we ran out of memory&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceNotificationSubscribe(am_device_notification_callback callback, &lt;br /&gt;
								unsigned int unused0, unsigned int unused1, &lt;br /&gt;
								unsigned int cookie, &lt;br /&gt;
								struct am_device_notification **subscription);&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
        /* Unregisters notifications. Buggy (iTunes 8.2): if you subscribe, unsubscribe and subscribe again, arriving &lt;br /&gt;
           notifications will contain cookie and subscription from 1st call to subscribe, not the 2nd one. iTunes &lt;br /&gt;
           calls this function only once on exit.&lt;br /&gt;
        */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceNotificationUnsubscribe(am_device_notification* subscription);&lt;br /&gt;
&lt;br /&gt;
	/*  Returns device_id field of am_device structure&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMDeviceGetConnectionID(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/*  Returns serial field of am_device structure&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT CFStringRef AMDeviceCopyDeviceIdentifier(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/*  Connects to the iPhone. Pass in the am_device structure that the&lt;br /&gt;
	 *  notification callback will give to you.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successfully connected&lt;br /&gt;
	 *      MDERR_SYSCALL           if setsockopt() failed&lt;br /&gt;
	 *      MDERR_QUERY_FAILED      if the daemon query failed&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if USBMuxConnectByPort returned 0xffffffff&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceConnect(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  Calls PairingRecordPath() on the given device, than tests whether the path&lt;br /&gt;
	 *  which that function returns exists. During the initial connect, the path&lt;br /&gt;
	 *  returned by that function is '/', and so this returns 1.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      0   if the path did not exist&lt;br /&gt;
	 *      1   if it did&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceIsPaired(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDevicePair(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  iTunes calls this function immediately after testing whether the device is&lt;br /&gt;
	 *  paired. It creates a pairing file and establishes a Lockdown connection.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the supplied device is null&lt;br /&gt;
	 *      MDERR_DICT_NOT_LOADED   if the load_dict() call failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceValidatePairing(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/*  Creates a Lockdown session and adjusts the device structure appropriately&lt;br /&gt;
	 *  to indicate that the session has been started. iTunes calls this function&lt;br /&gt;
	 *  after validating pairing.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 *      MDERR_DICT_NOT_LOADED   if the load_dict() call failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStartSession(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	/* Reads various device settings. One of domain or cfstring arguments should be NULL.&lt;br /&gt;
         *&lt;br /&gt;
         * Possible values for cfstring:&lt;br /&gt;
	 * ActivationState&lt;br /&gt;
	 * ActivationStateAcknowledged&lt;br /&gt;
	 * BasebandBootloaderVersion&lt;br /&gt;
	 * BasebandVersion&lt;br /&gt;
	 * BluetoothAddress&lt;br /&gt;
	 * BuildVersion&lt;br /&gt;
	 * DeviceCertificate&lt;br /&gt;
	 * DeviceClass&lt;br /&gt;
	 * DeviceName&lt;br /&gt;
	 * DevicePublicKey&lt;br /&gt;
	 * FirmwareVersion&lt;br /&gt;
	 * HostAttached&lt;br /&gt;
	 * IntegratedCircuitCardIdentity&lt;br /&gt;
	 * InternationalMobileEquipmentIdentity&lt;br /&gt;
	 * InternationalMobileSubscriberIdentity&lt;br /&gt;
	 * ModelNumber&lt;br /&gt;
	 * PhoneNumber&lt;br /&gt;
	 * ProductType&lt;br /&gt;
	 * ProductVersion&lt;br /&gt;
	 * ProtocolVersion&lt;br /&gt;
	 * RegionInfo&lt;br /&gt;
	 * SBLockdownEverRegisteredKey&lt;br /&gt;
	 * SIMStatus&lt;br /&gt;
	 * SerialNumber&lt;br /&gt;
	 * SomebodySetTimeZone&lt;br /&gt;
	 * TimeIntervalSince1970&lt;br /&gt;
	 * TimeZone&lt;br /&gt;
	 * TimeZoneOffsetFromUTC&lt;br /&gt;
	 * TrustedHostAttached&lt;br /&gt;
	 * UniqueDeviceID&lt;br /&gt;
	 * Uses24HourClock&lt;br /&gt;
	 * WiFiAddress&lt;br /&gt;
	 * iTunesHasConnected&lt;br /&gt;
         *&lt;br /&gt;
         * Possible values for domain:&lt;br /&gt;
         * com.apple.mobile.battery&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT CFStringRef AMDeviceCopyValue(struct am_device *device, CFStringRef domain, CFStringRef cfstring);&lt;br /&gt;
	&lt;br /&gt;
	/* Starts a service and returns a socket file descriptor that can be used in order to further&lt;br /&gt;
	 * access the service. You should stop the session and disconnect before using&lt;br /&gt;
	 * the service. iTunes calls this function after starting a session. It starts &lt;br /&gt;
	 * the service and the SSL connection. service_name should be one of the AMSVC_*&lt;br /&gt;
	 * constants.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_SYSCALL           if the setsockopt() call failed&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStartService(struct am_device *device, CFStringRef &lt;br /&gt;
									  service_name, int *socket_fd);&lt;br /&gt;
	&lt;br /&gt;
	/* Stops a session. You should do this before accessing services.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_INVALID_ARGUMENT  if the Lockdown conn has not been established&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceStopSession(struct am_device *device);&lt;br /&gt;
	&lt;br /&gt;
	/* Decrements reference counter and, if nothing left, releases resources hold &lt;br /&gt;
	 * by connection, invalidates  pointer to device&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT void AMDeviceRelease(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/* Increments reference counter&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT void AMDeviceRetain(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
	/* Opens an Apple File Connection. You must start the appropriate service&lt;br /&gt;
	 * first with AMDeviceStartService(). In iTunes, io_timeout is 0.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 *      MDERR_AFC_OUT_OF_MEMORY if malloc() failed&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCConnectionOpen(int socket_fd, unsigned int io_timeout,&lt;br /&gt;
								  struct afc_connection **conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Pass in a pointer to an afc_dictionary structure. It will be filled. You can&lt;br /&gt;
	 * iterate it using AFCKeyValueRead. When done use AFCKeyValueClose. Possible keys:&lt;br /&gt;
	 * FSFreeBytes - free bytes on system device for afc2, user device for afc&lt;br /&gt;
	 * FSBlockSize - filesystem block size&lt;br /&gt;
	 * FSTotalBytes - size of device&lt;br /&gt;
	 * Model - iPhone1,1 etc.&lt;br /&gt;
&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDeviceInfoOpen(struct afc_connection *conn, struct&lt;br /&gt;
								  afc_dictionary **info);&lt;br /&gt;
	&lt;br /&gt;
	/* Turns debug mode on if the environment variable AFCDEBUG is set to a numeric&lt;br /&gt;
	 * value, or if the file '/AFCDEBUG' is present and contains a value. */&lt;br /&gt;
#if defined(__APPLE__)&lt;br /&gt;
	void AFCPlatformInit();&lt;br /&gt;
#endif&lt;br /&gt;
	&lt;br /&gt;
	/* Opens a directory on the iPhone. Pass in a pointer in dir to be filled in.&lt;br /&gt;
	 * Note that this normally only accesses the iTunes sandbox/partition as the&lt;br /&gt;
	 * root, which is /var/root/Media. Pathnames are specified with '/' delimiters&lt;br /&gt;
	 * as in Unix style. Use UTF-8 to specify non-ASCII symbols in path.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryOpen(struct afc_connection *conn, char *path, struct&lt;br /&gt;
								 afc_directory **dir);&lt;br /&gt;
	&lt;br /&gt;
	/* Acquires the next entry in a directory previously opened with&lt;br /&gt;
	 * AFCDirectoryOpen(). When dirent is filled with a NULL value, then the end&lt;br /&gt;
	 * of the directory has been reached. '.' and '..' will be returned as the&lt;br /&gt;
	 * first two entries in each directory except the root; you may want to skip&lt;br /&gt;
	 * over them.&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      MDERR_OK                if successful, even if no entries remain&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryRead(struct afc_connection *conn/*unsigned int unused*/, struct afc_directory *dir,&lt;br /&gt;
								 char **dirent);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryClose(afc_connection *conn, struct afc_directory *dir);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCDirectoryCreate(afc_connection *conn, char *dirname);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCRemovePath(afc_connection *conn, char *dirname);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCRenamePath(afc_connection *conn, char *oldpath, char *newpath);&lt;br /&gt;
&lt;br /&gt;
	/* Creates symbolic or hard link&lt;br /&gt;
         * linktype - int64: 1 means hard link, 2 - soft (symbolic) link&lt;br /&gt;
         * target - absolute or relative path to link target&lt;br /&gt;
         * linkname - absolute path where to create new link&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCLinkPath(AppleFCHandle conn, long long int linktype, const char *target, const char *linkname);&lt;br /&gt;
&lt;br /&gt;
	/* Opens file for reading or writing without locking it in any way. afc_file_ref should not be shared between threads - &lt;br /&gt;
         * opening file in one thread and closing it in another will lead to possible crash.&lt;br /&gt;
	 * path - UTF-8 encoded absolute path to file&lt;br /&gt;
	 * mode 2 = read, mode 3 = write; unknown = 0 &lt;br /&gt;
	 * ref - receives file handle&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefOpen(struct afc_connection *conn, char *path, unsigned&lt;br /&gt;
							   long long int mode, afc_file_ref *ref);&lt;br /&gt;
	/* Reads specified amount (len) of bytes from file into buf. Puts actual count of read bytes into len on return&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefRead(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   void *buf, unsigned int *len);&lt;br /&gt;
	/* Writes specified amount (len) of bytes from buf into file.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefWrite(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
								void *buf, unsigned int len);&lt;br /&gt;
	/* Moves the file pointer to a specified location.&lt;br /&gt;
	 * offset - Number of bytes from origin (int64)&lt;br /&gt;
	 * origin - 0 = from beginning, 1 = from current position, 2 = from end&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefSeek(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   unsigned long long offset, int origin, int unused);&lt;br /&gt;
&lt;br /&gt;
	/* Gets the current position of a file pointer into offset argument.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefTell(struct afc_connection *conn, afc_file_ref ref,&lt;br /&gt;
							   unsigned long long* offset);&lt;br /&gt;
&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefLock(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefUnlock(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileRefClose(struct afc_connection *conn, afc_file_ref ref);&lt;br /&gt;
&lt;br /&gt;
	/* Opens dictionary describing specified file or directory (iTunes below 8.2 allowed using AFCGetFileInfo&lt;br /&gt;
	   to get the same information)&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCFileInfoOpen(struct afc_connection *conn, char *path, struct&lt;br /&gt;
								afc_dictionary **info);&lt;br /&gt;
&lt;br /&gt;
	/* Reads next entry from dictionary. When last entry is read, function returns NULL in key argument&lt;br /&gt;
	   Possible keys:&lt;br /&gt;
	     &amp;quot;st_size&amp;quot;:     val - size in bytes&lt;br /&gt;
	     &amp;quot;st_blocks&amp;quot;:   val - size in blocks&lt;br /&gt;
	     &amp;quot;st_nlink&amp;quot;:    val - number of hardlinks&lt;br /&gt;
	     &amp;quot;st_ifmt&amp;quot;:     val - &amp;quot;S_IFDIR&amp;quot; for folders&lt;br /&gt;
	                        &amp;quot;S_IFLNK&amp;quot; for symlinks&lt;br /&gt;
	     &amp;quot;LinkTarget&amp;quot;:  val - path to symlink target&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCKeyValueRead(struct afc_dictionary *dict, char **key, char **&lt;br /&gt;
								val);&lt;br /&gt;
	/* Closes dictionary&lt;br /&gt;
	*/&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCKeyValueClose(struct afc_dictionary *dict);&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the context field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetContext(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the fs_block_size field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetFSBlockSize(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the io_timeout field of the given AFC connection. In iTunes this is&lt;br /&gt;
	 * 0. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetIOTimeout(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Returns the sock_block_size field of the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT unsigned int AFCConnectionGetSocketBlockSize(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Closes the given AFC connection. */&lt;br /&gt;
	__DLLIMPORT afc_error_t AFCConnectionClose(struct afc_connection *conn);&lt;br /&gt;
	&lt;br /&gt;
	/* Registers for device notifications related to the restore process. unknown0&lt;br /&gt;
	 * is zero when iTunes calls this. In iTunes,&lt;br /&gt;
	 * the callbacks are located at:&lt;br /&gt;
	 *      1: $3ac68e-$3ac6b1, calls $3ac542(unknown1, arg, 0)&lt;br /&gt;
	 *      2: $3ac66a-$3ac68d, calls $3ac542(unknown1, 0, arg)&lt;br /&gt;
	 *      3: $3ac762-$3ac785, calls $3ac6b2(unknown1, arg, 0)&lt;br /&gt;
	 *      4: $3ac73e-$3ac761, calls $3ac6b2(unknown1, 0, arg)&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreRegisterForDeviceNotifications(&lt;br /&gt;
				am_restore_device_notification_callback dfu_connect_callback,&lt;br /&gt;
				am_restore_device_notification_callback recovery_connect_callback,&lt;br /&gt;
				am_restore_device_notification_callback dfu_disconnect_callback,&lt;br /&gt;
				am_restore_device_notification_callback recovery_disconnect_callback,&lt;br /&gt;
				unsigned int unknown0,&lt;br /&gt;
				void *user_info);&lt;br /&gt;
	&lt;br /&gt;
	/* Causes the restore functions to spit out (unhelpful) progress messages to&lt;br /&gt;
	 * the file specified by the given path. iTunes always calls this right before&lt;br /&gt;
	 * restoring with a path of&lt;br /&gt;
	 * &amp;quot;$HOME/Library/Logs/iPhone Updater Logs/iPhoneUpdater X.log&amp;quot;, where X is an&lt;br /&gt;
	 * unused number.&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreEnableFileLogging(char *path);&lt;br /&gt;
	&lt;br /&gt;
	/* Initializes a new option dictionary to default values. Pass the constant&lt;br /&gt;
	 * kCFAllocatorDefault as the allocator. The option dictionary looks as&lt;br /&gt;
	 * follows:&lt;br /&gt;
	 * {&lt;br /&gt;
	 *      NORImageType =&amp;gt; 'production',&lt;br /&gt;
	 *      AutoBootDelay =&amp;gt; 0,&lt;br /&gt;
	 *      KernelCacheType =&amp;gt; 'Release',&lt;br /&gt;
	 *      UpdateBaseband =&amp;gt; true,&lt;br /&gt;
	 *      DFUFileType =&amp;gt; 'RELEASE',&lt;br /&gt;
	 *      SystemImageType =&amp;gt; 'User',&lt;br /&gt;
	 *      CreateFilesystemPartitions =&amp;gt; true,&lt;br /&gt;
	 *      FlashNOR =&amp;gt; true,&lt;br /&gt;
	 *      RestoreBootArgs =&amp;gt; 'rd=md0 nand-enable-reformat=1 -progress'&lt;br /&gt;
	 *      BootImageType =&amp;gt; 'User'&lt;br /&gt;
	 *  }&lt;br /&gt;
	 *&lt;br /&gt;
	 * Returns:&lt;br /&gt;
	 *      the option dictionary   if successful&lt;br /&gt;
	 *      NULL                    if out of memory&lt;br /&gt;
	 */ &lt;br /&gt;
	__DLLIMPORT CFMutableDictionaryRef AMRestoreCreateDefaultOptions(CFAllocatorRef allocator);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented public routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestorePerformRecoveryModeRestore(struct am_recovery_device *&lt;br /&gt;
				rdev, CFDictionaryRef opts, void *callback, void *user_info);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestorePerformRestoreModeRestore(struct am_restore_device *&lt;br /&gt;
				rdev, CFDictionaryRef opts, void *callback, void *user_info);&lt;br /&gt;
	__DLLIMPORT struct am_restore_device *AMRestoreModeDeviceCreate(unsigned int unknown0,&lt;br /&gt;
				unsigned int connection_id, unsigned int unknown1);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreCreatePathsForBundle(CFStringRef restore_bundle_path,&lt;br /&gt;
				CFStringRef kernel_cache_type, CFStringRef boot_image_type, unsigned int&lt;br /&gt;
				unknown0, CFStringRef *firmware_dir_path, CFStringRef *&lt;br /&gt;
				kernelcache_restore_path, unsigned int unknown1, CFStringRef *&lt;br /&gt;
				ramdisk_path);&lt;br /&gt;
	__DLLIMPORT unsigned int AMRestoreModeDeviceReboot(struct am_restore_device *rdev);	// Added by JB 30.07.2008&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceEnterRecovery(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceDisconnect(struct am_device *device);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	/* to use this, start the service &amp;quot;com.apple.mobile.notification_proxy&amp;quot;, handle will be the socket to use */&lt;br /&gt;
	typedef void (*NOTIFY_CALLBACK)(CFSTR notification, USERDATA data);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDPostNotification(SOCKET socket, CFStringRef  notification, CFStringRef userinfo);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDObserveNotification(SOCKET socket, CFSTR notification);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDListenForNotifications(SOCKET socket, NOTIFY_CALLBACK cb, USERDATA data);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDShutdownNotificationProxy(SOCKET socket);&lt;br /&gt;
	&lt;br /&gt;
	/*edits by geohot*/&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceDeactivate(struct am_device *device);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceActivate(struct am_device *device, CFDictionaryRef dict);&lt;br /&gt;
	__DLLIMPORT mach_error_t AMDeviceRemoveValue(struct am_device *device, unsigned int, CFStringRef cfstring);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Semi-private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/*  Pass in a usbmux_listener_1 structure and a usbmux_listener_2 structure&lt;br /&gt;
	 *  pointer, which will be filled with the resulting usbmux_listener_2.&lt;br /&gt;
	 *&lt;br /&gt;
	 *  Returns:&lt;br /&gt;
	 *      MDERR_OK                if completed successfully&lt;br /&gt;
	 *      MDERR_USBMUX_ARG_NULL   if one of the arguments was NULL&lt;br /&gt;
	 *      MDERR_USBMUX_FAILED     if the listener was not created successfully&lt;br /&gt;
	 */&lt;br /&gt;
	__DLLIMPORT usbmux_error_t USBMuxListenerCreate(struct usbmux_listener_1 *esi_fp8, struct&lt;br /&gt;
										usbmux_listener_2 **eax_fp12);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented semi-private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	__DLLIMPORT usbmux_error_t USBMuxListenerHandleData(void *);&lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Private routines - here be dragons&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	/* AMRestorePerformRestoreModeRestore() calls this function with a dictionary&lt;br /&gt;
	 * in order to perform certain special restore operations&lt;br /&gt;
	 * (RESTORED_OPERATION_*). It is thought that this function might enable&lt;br /&gt;
	 * significant access to the phone. */&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	 typedef unsigned int (*t_performOperation)(struct am_restore_device *rdev,&lt;br /&gt;
	 CFDictionaryRef op) __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_performOperation _performOperation = (t_performOperation)0x3c39fa4b;&lt;br /&gt;
	 */ &lt;br /&gt;
	&lt;br /&gt;
	/* ----------------------------------------------------------------------------&lt;br /&gt;
	 *   Less-documented private routines&lt;br /&gt;
	 * ------------------------------------------------------------------------- */&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	 typedef int (*t_socketForPort)(struct am_restore_device *rdev, unsigned int port)&lt;br /&gt;
	 __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_socketForPort _socketForPort = (t_socketForPort)(void *)0x3c39f36c;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef void (*t_restored_send_message)(int port, CFDictionaryRef msg);&lt;br /&gt;
	 t_restored_send_message _restored_send_message = (t_restored_send_message)0x3c3a4e40;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef CFDictionaryRef (*t_restored_receive_message)(int port);&lt;br /&gt;
	 t_restored_receive_message _restored_receive_message = (t_restored_receive_message)0x3c3a4d40;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_sendControlPacket)(struct am_recovery_device *rdev, unsigned&lt;br /&gt;
	 int msg1, unsigned int msg2, unsigned int unknown0, unsigned int *unknown1,&lt;br /&gt;
	 unsigned char *unknown2) __attribute__ ((regparm(3)));&lt;br /&gt;
	 t_sendControlPacket _sendControlPacket = (t_sendControlPacket)0x3c3a3da3;;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_sendCommandToDevice)(struct am_recovery_device *rdev,&lt;br /&gt;
	 CFStringRef cmd) __attribute__ ((regparm(2)));&lt;br /&gt;
	 t_sendCommandToDevice _sendCommandToDevice = (t_sendCommandToDevice)0x3c3a3e3b;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_AMRUSBInterfaceReadPipe)(unsigned int readwrite_pipe, unsigned&lt;br /&gt;
	 int read_pipe, unsigned char *data, unsigned int *len);&lt;br /&gt;
	 t_AMRUSBInterfaceReadPipe _AMRUSBInterfaceReadPipe = (t_AMRUSBInterfaceReadPipe)0x3c3a27e8;&lt;br /&gt;
	 &lt;br /&gt;
	 typedef unsigned int (*t_AMRUSBInterfaceWritePipe)(unsigned int readwrite_pipe, unsigned&lt;br /&gt;
	 int write_pipe, void *data, unsigned int len);&lt;br /&gt;
	 t_AMRUSBInterfaceWritePipe _AMRUSBInterfaceWritePipe = (t_AMRUSBInterfaceWritePipe)0x3c3a27cb;&lt;br /&gt;
	 */&lt;br /&gt;
	&lt;br /&gt;
	int performOperation(am_restore_device *rdev, CFMutableDictionaryRef message);&lt;br /&gt;
	int socketForPort(am_restore_device *rdev, unsigned int portnum);&lt;br /&gt;
	int sendCommandToDevice(am_recovery_device *rdev, CFStringRef cfs, int block);&lt;br /&gt;
	int sendFileToDevice(am_recovery_device *rdev, CFStringRef filename); &lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
#ifdef __cplusplus&lt;br /&gt;
}&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
/* -*- mode:c; indent-tabs-mode:nil; c-basic-offset:2; tab-width:2; */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AFC Connection===&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
===Locking the Device for Sync===&lt;br /&gt;
When iTunes sends a new song to the device, the device shows a &amp;quot;Sync in progress&amp;quot; screen and when complete, the Music app on the device re-reads the iTunesDB file so it picks up the new song.&lt;br /&gt;
&lt;br /&gt;
To get this behaviour, first start the notification service:&lt;br /&gt;
&amp;lt;pre&amp;gt;SOCKET socket;&lt;br /&gt;
AMDeviceStartService(dev, CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;), &amp;amp;socket, NULL);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we post a notificaton message to signal that we are going to start a sync:&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket, CFSTR(&amp;quot;com.apple.itunes-mobdev.syncWillStart&amp;quot;), NULL);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we open the itunes lock file:&lt;br /&gt;
&amp;lt;pre&amp;gt;afc_file_ref lockref;&lt;br /&gt;
AFCFileRefOpen(conn, &amp;quot;/com.apple.itunes.lock_sync&amp;quot;, 2, &amp;amp;lockref);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now post a notification to say we are going to lock this file, and try and lock it.&lt;br /&gt;
If the AFCFileRefLock call fails, pause and repeat.&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket, CFSTR(&amp;quot;com.apple.itunes-mobdev.syncLockRequest&amp;quot;), NULL);&lt;br /&gt;
mach_error_t error = AFCFileRefLock(conn, lockref);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the file is successfully locked, post another notification, and stop the notification service.&lt;br /&gt;
&amp;lt;pre&amp;gt;AMDPostNotification(socket,CFSTR(&amp;quot;com.apple.itunes-mobdev.syncDidStart&amp;quot;), NULL);&lt;br /&gt;
AMDShutdownNotificationProxy(socket);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the sync can proceed, so copy your files across and make the changes to the iTunesDB.&lt;br /&gt;
&lt;br /&gt;
To release the lock, start the notification system again, unlock and close the lock file, and send a sync finished notification message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;AFCFileRefUnlock(conn, lockref);&lt;br /&gt;
AFCFileRefClose(conn, lockref);&lt;br /&gt;
AMDeviceStartService(dev, CFSTR(&amp;quot;com.apple.mobile.notification_proxy&amp;quot;), &amp;amp;socket, NULL);&lt;br /&gt;
AMDPostNotification(socket, &amp;amp;CFSTR(&amp;quot;com.apple.itunes-mobdev.syncDidFinish&amp;quot;), NULL);&lt;br /&gt;
AMDShutdownNotificationProxy(socket);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To handle &amp;quot;Slide to Cancel&amp;quot; and terminate sync when user slides cancel switch, use AMDObserveNotification to subscribe notifications about “com.apple.itunes-client.syncCancelRequest”. Then start listening for notifications (AMDListenForNotifications) until you get “AMDNotificationFaceplant”.&lt;br /&gt;
When notification got, you should unlock and close lock file handle (don’t sure if you need to post “syncDidFinish” to proxy, seems it doesn’t matter) and terminate sync gracefully.&lt;br /&gt;
The same notification is also got when you unplug your device, so you should always be ready for errors.&lt;br /&gt;
&lt;br /&gt;
NOTE: You may find that starting the notification_proxy service once and once only at the start of your app and using the same socket in calls to AMDPostNotification works better. iTunes opens and closes the notification_proxy regularly, but it appears to be a bit flakey when you open/close it all the time.&lt;br /&gt;
&lt;br /&gt;
===Private Functions===&lt;br /&gt;
&lt;br /&gt;
====How to find address of privates functions in iTunesMobileDevice.dll or MobileDevice.framework ?====&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Libraries Implementations===&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/p/iphuc/ iPhuc (Command line utility)]&lt;br /&gt;
* [http://code.google.com/p/iphucwin32/ iPhuc Win32 (Command line utility)]&lt;br /&gt;
* [http://code.google.com/p/manzana/ manzana (.Net Library)]&lt;br /&gt;
* [http://code.google.com/p/independence/source/browse/trunk/libPhoneInteraction/ libPhoneInteraction (C Library)]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Jailbreak_(S5L8920%2B)&amp;diff=5123</id>
		<title>Jailbreak (S5L8920+)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Jailbreak_(S5L8920%2B)&amp;diff=5123"/>
		<updated>2009-10-13T09:32:41Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* Firmware 3.1.1/3.1.2 for iPod Touch 3G */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Apple did not have the time to fix the [[0x24000 Segment Overflow]] in the [[S5L8920 (Bootrom)|S5L8920]]. However, in order to flash an exploited [[LLB]] and jailbreak the [[N88ap|iPhone 3GS]], '''one''' of the following needs to be done:&lt;br /&gt;
* Find a new [[iBoot]] exploit every time a new firmware is out.&lt;br /&gt;
* Find a way to bypass the [[ECID]] checks.&lt;br /&gt;
* Find another bootrom exploit that allows unsigned code executing via USB ([[Pwnage 2.0]]-like)&lt;br /&gt;
&lt;br /&gt;
This also applies to the [[N18ap|iPod touch 3G]] and later devices, except a bootrom exploit is needed.&lt;br /&gt;
&lt;br /&gt;
==ECID==&lt;br /&gt;
Apple added a new tag to the [[IMG3 File Format]] called ECID. The ECID is ''unique'' to each phone, and is being sigchecked. So Apple could block downgrades once newer firmware becomes available, unless you have a dump of your unique old firmware's IMG3 or signed certificate. Therefore, iBoot exploits won't be so useful for tethered jailbreaks, because such exploits will be closed in new firmwares. [http://iphonejtag.blogspot.com/2009/06/ecid-field-downgrades-no-dice.html].&lt;br /&gt;
&lt;br /&gt;
The issue with this is that, even with 24kpwn still in bootrom, an [[iBoot]] exploit is still needed to actually flash the exploited [[LLB]]. If Apple uses this ECID stuff to block downgrades, then a new [[iBoot]] exploit will be needed whenever they fix the last, so that [[24kpwn]] can be applied. This is because Apple could choose to not let you upload an older, exploitable [[iBEC]]/iBoot/[[iBSS]] to the device.&lt;br /&gt;
&lt;br /&gt;
There are methods to help keep your downgrading ability, though.&lt;br /&gt;
&lt;br /&gt;
* If it was cached prior to 3.1's release, 3GS owners can save a file which contains the signature of the 3.0 iBSS containing their [[ECID]], using [http://purplera1n.com/|purplera1n.com].&lt;br /&gt;
* Saurik's servers are actively caching the necessary files. [http://www.saurik.com/id/12#howto Instructions] to use the servers are included.&lt;br /&gt;
* The [[SHSH]] associated with an ECID can be also saved by running [http://thefirmwareumbrella.blogspot.com/ Umbrella]. An included application, TinyTSS, would allow the user to restore to whatever version is associated with that SHSH file permanently. This is based on the aforementioned service Saurik provides remotely from his server(s). The only difference is that Umbrella and TinyTSS are local applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Jailbreak tools==&lt;br /&gt;
===Firmware 3.0 for iPhone 3GS===&lt;br /&gt;
There are several possible methods to jailbreak which use the same iBoot exploit discovered independently by [[User:Geohot|Geohot]] and the [[iPhone Dev Team]]:&lt;br /&gt;
&lt;br /&gt;
* [[redsn0w]] 0.8 by the iPhone Dev Team (also works with 3.0.1)&lt;br /&gt;
* [[PwnageTool]] 3.0.1 by the iPhone Dev Team&lt;br /&gt;
* [[purplera1n]] by Geohot.&lt;br /&gt;
&lt;br /&gt;
===Firmware 3.1 for iPhone 3GS===&lt;br /&gt;
Firmware 3.1 can be jailbroken using &lt;br /&gt;
* [[PwnageTool]] 3.1.3 (Mac only), provided that the device was previously jailbroken on 3.0/3.0.1.&lt;br /&gt;
* [[Blackra1n]] by Geohot&lt;br /&gt;
&lt;br /&gt;
===Firmware 3.1.2 for iPhone 3GS===&lt;br /&gt;
Firmware 3.1.2 for iPhone 3GS can be jailbroken using &lt;br /&gt;
* [[PwnageTool]] 3.1.4 (Mac only).&lt;br /&gt;
* [[Blackra1n]] by Geohot&lt;br /&gt;
&lt;br /&gt;
===Firmware 3.1.1/3.1.2 for iPod Touch 3G===&lt;br /&gt;
It is currently possible to jailbreak all devices that ship with 3.1 pre-installed or that have updated to 3.1/3.1.1/3.1.2 using [http://www.blackra1n.com geohot's blackra1n].&lt;br /&gt;
&lt;br /&gt;
NOTE: iPod Touch 3g with Model's starting with MB will jailbreak fully. iPod Touch 3g's with Models starting with MC only get a tethered jailbreak using blackra1n due to a fix of 24kpwn that Apple managed to put in the iPod Touch 3g bootrom.&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Jailbreak_(S5L8920%2B)&amp;diff=5122</id>
		<title>Jailbreak (S5L8920+)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Jailbreak_(S5L8920%2B)&amp;diff=5122"/>
		<updated>2009-10-13T09:31:22Z</updated>

		<summary type="html">&lt;p&gt;Redart: New Pwnage is out&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Apple did not have the time to fix the [[0x24000 Segment Overflow]] in the [[S5L8920 (Bootrom)|S5L8920]]. However, in order to flash an exploited [[LLB]] and jailbreak the [[N88ap|iPhone 3GS]], '''one''' of the following needs to be done:&lt;br /&gt;
* Find a new [[iBoot]] exploit every time a new firmware is out.&lt;br /&gt;
* Find a way to bypass the [[ECID]] checks.&lt;br /&gt;
* Find another bootrom exploit that allows unsigned code executing via USB ([[Pwnage 2.0]]-like)&lt;br /&gt;
&lt;br /&gt;
This also applies to the [[N18ap|iPod touch 3G]] and later devices, except a bootrom exploit is needed.&lt;br /&gt;
&lt;br /&gt;
==ECID==&lt;br /&gt;
Apple added a new tag to the [[IMG3 File Format]] called ECID. The ECID is ''unique'' to each phone, and is being sigchecked. So Apple could block downgrades once newer firmware becomes available, unless you have a dump of your unique old firmware's IMG3 or signed certificate. Therefore, iBoot exploits won't be so useful for tethered jailbreaks, because such exploits will be closed in new firmwares. [http://iphonejtag.blogspot.com/2009/06/ecid-field-downgrades-no-dice.html].&lt;br /&gt;
&lt;br /&gt;
The issue with this is that, even with 24kpwn still in bootrom, an [[iBoot]] exploit is still needed to actually flash the exploited [[LLB]]. If Apple uses this ECID stuff to block downgrades, then a new [[iBoot]] exploit will be needed whenever they fix the last, so that [[24kpwn]] can be applied. This is because Apple could choose to not let you upload an older, exploitable [[iBEC]]/iBoot/[[iBSS]] to the device.&lt;br /&gt;
&lt;br /&gt;
There are methods to help keep your downgrading ability, though.&lt;br /&gt;
&lt;br /&gt;
* If it was cached prior to 3.1's release, 3GS owners can save a file which contains the signature of the 3.0 iBSS containing their [[ECID]], using [http://purplera1n.com/|purplera1n.com].&lt;br /&gt;
* Saurik's servers are actively caching the necessary files. [http://www.saurik.com/id/12#howto Instructions] to use the servers are included.&lt;br /&gt;
* The [[SHSH]] associated with an ECID can be also saved by running [http://thefirmwareumbrella.blogspot.com/ Umbrella]. An included application, TinyTSS, would allow the user to restore to whatever version is associated with that SHSH file permanently. This is based on the aforementioned service Saurik provides remotely from his server(s). The only difference is that Umbrella and TinyTSS are local applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Jailbreak tools==&lt;br /&gt;
===Firmware 3.0 for iPhone 3GS===&lt;br /&gt;
There are several possible methods to jailbreak which use the same iBoot exploit discovered independently by [[User:Geohot|Geohot]] and the [[iPhone Dev Team]]:&lt;br /&gt;
&lt;br /&gt;
* [[redsn0w]] 0.8 by the iPhone Dev Team (also works with 3.0.1)&lt;br /&gt;
* [[PwnageTool]] 3.0.1 by the iPhone Dev Team&lt;br /&gt;
* [[purplera1n]] by Geohot.&lt;br /&gt;
&lt;br /&gt;
===Firmware 3.1 for iPhone 3GS===&lt;br /&gt;
Firmware 3.1 can be jailbroken using &lt;br /&gt;
* [[PwnageTool]] 3.1.3 (Mac only), provided that the device was previously jailbroken on 3.0/3.0.1.&lt;br /&gt;
* [[Blackra1n]] by Geohot&lt;br /&gt;
&lt;br /&gt;
===Firmware 3.1.2 for iPhone 3GS===&lt;br /&gt;
Firmware 3.1.2 for iPhone 3GS can be jailbroken using &lt;br /&gt;
* [[PwnageTool]] 3.1.4 (Mac only).&lt;br /&gt;
* [[Blackra1n]] by Geohot&lt;br /&gt;
&lt;br /&gt;
===Firmware 3.1.1/3.1.2 for iPod Touch 3G===&lt;br /&gt;
It is currently possible to jailbreak all devices that ship with 3.1 pre-installed or that have updated to 3.1/3.1.1/3.1.2 using [http://www.blackra1n.com geohot's blackra1n].&lt;br /&gt;
&lt;br /&gt;
NOTE: iPod Touch 3g with Model's starting with MB will jailbreak fully. iPod Touch 3g's with Models starting with MC only get a tethered jailbreak using blackra1n due to a fix of 24kpwn that Apple managed to put in the iPod Touch 3g bootrom.[http://www.blackra1n.com geohot's blackra1n].&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Northstar_7D11_(iPhone1,2)&amp;diff=5095</id>
		<title>Northstar 7D11 (iPhone1,2)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Northstar_7D11_(iPhone1,2)&amp;diff=5095"/>
		<updated>2009-10-12T18:46:09Z</updated>

		<summary type="html">&lt;p&gt;Redart: Keys added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Decryption Keys ==&lt;br /&gt;
&lt;br /&gt;
=== Root Filesystem ===&lt;br /&gt;
* '''VFDecrypt''': a8a886d56011d2d98b190d0a498f6fcac719467047639cd601fd53a4a1d93c24e1b2ddc6&lt;br /&gt;
&lt;br /&gt;
=== AppleLogo (applelogo.s5l8900x.img3) ===&lt;br /&gt;
* '''Key''': 1fb738d6c091113d7dfdd89864a718d9&lt;br /&gt;
* '''IV''': 677b4c711e3cacb72505feae8e1eae5d&lt;br /&gt;
&lt;br /&gt;
=== KernelCache (kernelcache.release.s5l8900x) ===&lt;br /&gt;
* '''Key''': dd03b5b52a53d3582b18a0052ef84038&lt;br /&gt;
* '''IV''': 25b7f586d184c329d3d05953a6516a36&lt;br /&gt;
&lt;br /&gt;
=== RecoveryMode (recoverymode.s5l8900x.img3) ===&lt;br /&gt;
* '''Key''': 6d7d035c04c60ab2776a5e7c729daf0a&lt;br /&gt;
* '''IV''': dbf44c3cc2944b87bdecdbdcd8e42b82&lt;br /&gt;
&lt;br /&gt;
=== Restore Ramdisk (018-6136-014.dmg) ===&lt;br /&gt;
* '''Key''': 6a4db11073eb748bad1fabafb066fe13&lt;br /&gt;
* '''IV''': 0e128e1f69806afc476b73250908d641&lt;br /&gt;
&lt;br /&gt;
=== iBoot (iBoot.m68ap.RELEASE.img3) ===&lt;br /&gt;
* '''Key''': a4039d79cd6d41ce2b755ed566902103&lt;br /&gt;
* '''IV''': 13e320617bc655211e2b68042d4508f8&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Northstar_7D11_(iPhone1,1)&amp;diff=5094</id>
		<title>Northstar 7D11 (iPhone1,1)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Northstar_7D11_(iPhone1,1)&amp;diff=5094"/>
		<updated>2009-10-12T18:43:35Z</updated>

		<summary type="html">&lt;p&gt;Redart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Decryption Keys ==&lt;br /&gt;
&lt;br /&gt;
=== Root Filesystem ===&lt;br /&gt;
* '''VFDecrypt''': fe431a1e436e5298d3c871359768aab43189fd5e7375a2ced3405dd8a223879a4d64a28e&lt;br /&gt;
&lt;br /&gt;
=== AppleLogo (applelogo.s5l8900x.img3) ===&lt;br /&gt;
* '''Key''': 1fb738d6c091113d7dfdd89864a718d9&lt;br /&gt;
* '''IV''': 677b4c711e3cacb72505feae8e1eae5d&lt;br /&gt;
&lt;br /&gt;
=== KernelCache (kernelcache.release.s5l8900x) ===&lt;br /&gt;
* '''Key''': dd03b5b52a53d3582b18a0052ef84038&lt;br /&gt;
* '''IV''': 25b7f586d184c329d3d05953a6516a36&lt;br /&gt;
&lt;br /&gt;
=== LLB (LLB.m68ap.RELEASE.img3) ===&lt;br /&gt;
* '''Key''': 783970ed70d151e65cdd0f52019f026cbc0ece5c604603117d677b6a85ea4d95&lt;br /&gt;
* '''IV''': fc4efef9fd245dc038ecb26f25f795c7&lt;br /&gt;
&lt;br /&gt;
=== RecoveryMode (recoverymode.s5l8900x.img3) ===&lt;br /&gt;
* '''Key''': 6d7d035c04c60ab2776a5e7c729daf0a&lt;br /&gt;
* '''IV''': dbf44c3cc2944b87bdecdbdcd8e42b82&lt;br /&gt;
&lt;br /&gt;
=== Restore Ramdisk (018-6136-014.dmg) ===&lt;br /&gt;
* '''Key''': 6a4db11073eb748bad1fabafb066fe13&lt;br /&gt;
* '''IV''': 0e128e1f69806afc476b73250908d641&lt;br /&gt;
&lt;br /&gt;
=== iBoot (iBoot.m68ap.RELEASE.img3) ===&lt;br /&gt;
* '''Key''': a0ae133d5de080b4341d3eeb8aff63d4&lt;br /&gt;
* '''IV''': db240b5ba6163898bbbc055be2276ea0&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=5093</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=5093"/>
		<updated>2009-10-12T18:41:33Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* iPhone 3G */ FW Link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the iPhone OS system the iPhone runs. Latest Apple download links can be found [http://www.itunes.com/version here].&lt;br /&gt;
&lt;br /&gt;
==Comparison of firmware versions==&lt;br /&gt;
&lt;br /&gt;
===[[iPhone]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;65&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;295&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;125&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[Alpine 1A420]]&lt;br /&gt;
| [http://img399.imageshack.us/i/iphone2go0.jpg/ 03.06.01_G]&lt;br /&gt;
| iphoneproto.zip&lt;br /&gt;
| &amp;lt;code&amp;gt;6e798e906c6590a7521ef89b731569be6d05b3aa&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prototype; [http://forums.macrumors.com/showthread.php?t=627449 macrumors]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 109,813,128&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0&lt;br /&gt;
| Heavenly 1A543a&lt;br /&gt;
| 03.12.06_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3538.20070629.B7vXa/iPhone1,1_1.0_1A543a_Restore.ipsw iPhone1,1_1.0_1A543a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;fb8bb3ee2e9a997affbb97868599f2995c78209c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial US shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,604,348&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1&lt;br /&gt;
| Heavenly 1C25&lt;br /&gt;
| 03.12.06_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3614.20070731.Nt6Y7/iPhone1,1_1.0.1_1C25_Restore.ipsw iPhone1,1_1.0.1_1C25_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a00b85a7a55d62a94be5fbf5effbc42fd63f3097&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,958&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| Heavenly 1C28&lt;br /&gt;
| 03.14.08_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3823.20070821.vormd/iPhone1,1_1.0.2_1C28_Restore.ipsw iPhone1,1_1.0.2_1C28_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;7f5c0ff1f84a0202b75a55c3fcb362e415334d1e&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,324&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Snowbird 3A109a&lt;br /&gt;
| 04.01.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3883.20070927.In76t/iPhone1,1_1.1.1_3A109a_Restore.ipsw iPhone1,1_1.1.1_3A109a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;d441dd1c71ce18f25d8fc4faa71c1e6eaa02d02c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 159,668,150&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oktoberfest 3B48b&lt;br /&gt;
| 04.02.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4037.20071107.5Bghn/iPhone1,1_1.1.2_3B48b_Restore.ipsw iPhone1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;797c02e7d660940e8d9a16cc7229ccf3f67dd8b1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial Euro shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 167,927,501&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Little Bear 4A93&lt;br /&gt;
| 04.03.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4061.20080115.4Fvn7/iPhone1,1_1.1.3_4A93_Restore.ipsw iPhone1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b3dec7580bd00dc4faf28449d9618ef40aeacc96&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,950,551&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| Little Bear 4A102&lt;br /&gt;
| 04.04.05_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4313.20080226.Sw39i/iPhone1,1_1.1.4_4A102_Restore.ipsw iPhone1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;000811bac096011b50ebf6ec1ec2285b62fda4cb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,946,442&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4956.20080710.V50OI/iPhone1,1_2.0_5A347_Restore.ipsw iPhone1,1_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9c510a3cfce789fa5f92a8f763c231bac82ff6d4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 228,768,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5135.20080729.Vfgtr/iPhone1,1_2.0.1_5B108_Restore.ipsw iPhone1,1_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;61de6a2bd6ceddc9ecabad1671b91a59b3824bc4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 254,048,068&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5246.20080818.2V0hO/iPhone1,1_2.0.2_5C1_Restore.ipsw iPhone1,1_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b84b57bea919bdc720287ec908c1378e7d7b5e1b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 253,589,000&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F136&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5202.20080909.gkbEj/iPhone1,1_2.1_5F136_Restore.ipsw iPhone1,1_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;353b7745767b85932e14e262e69463620939bdf7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,171,241&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5779.20081120.Pt5yH/iPhone1,1_2.2_5G77_Restore.ipsw iPhone1,1_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;cbfc6ff886ce89868a55547b9fb980dbf92e6418&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,576,980&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5830.20090127.Mmni6/iPhone1,1_2.2.1_5H11_Restore.ipsw iPhone1,1_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;43b95ebe1e51f8d30eae916053396595c08440d3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,593,705&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone)|Kirkwood 7A341]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6580.20090617.XsP76/iPhone1,1_3.0_7A341_Restore.ipsw iPhone1,1_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;2afd3f8ede17390737f508473ed205506a0bd23f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,394,111&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| [[Kirkwood 7A400 (iPhone)|Kirkwood 7A400]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6974.20090731.Cf4Tg/iPhone1,1_3.0.1_7A400_Restore.ipsw  iPhone1,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34c391fbbc7b31b159372766de39ce5c9cc26ebb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,439,502&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone)|Northstar 7C144]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6605.20090909.PQ3ws/iPhone1,1_3.1_7C144_Restore.ipsw iPhone1,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b7b5f436f81c6f855410e8b44a3d432ccaacd6fc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,536,460&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone)|Northstar 7D11]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7268.20091008.32pNe/iPhone1,1_3.1.2_7D11_Restore.ipsw iPhone1,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e4a1171542dbbd3093516d9c02047b9f7e143050&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,515,888&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[iPhone 3G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;65&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;295&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;125&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A345&lt;br /&gt;
| 01.45.00&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial iPhone 3G shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| 01.45.00&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4955.20080710.bgt53/iPhone1,2_2.0_5A347_Restore.ipsw iPhone1,2_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;af9506ca0034e462674f9f59c5406f159eaf9fc1&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 235,957,125&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| 01.48.02&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5134.20080729.Q2W3E/iPhone1,2_2.0.1_5B108_Restore.ipsw iPhone1,2_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e81c7ac7e334a3e9d81b3b47894bfaa1ec495482&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 261,224,227&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| 02.08.01&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5241.20080818.t5Fv3/iPhone1,2_2.0.2_5C1_Restore.ipsw iPhone1,2_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;bef7fef954293046420fbcf947379839178a195b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 260,761,030&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F136&lt;br /&gt;
| 02.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5198.20080909.K3294/iPhone1,2_2.1_5F136_Restore.ipsw iPhone1,2_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c6957dcbf2a95ccfd6dce374a727b1b7700a9043&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 249,341,655&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| 02.28.00&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5778.20081120.Aqw4R/iPhone1,2_2.2_5G77_Restore.ipsw iPhone1,2_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f67f8b2b842428bf89456cda0c2d5cf954d111a4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 258,342,348&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| 02.30.03&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5828.20090127.aQLi8/iPhone1,2_2.2.1_5H11_Restore.ipsw iPhone1,2_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e0098e6fab5c90b59e067e03ae3ccd4a7cd0f39c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 258,359,073&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3G)|Kirkwood 7A341]]&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6578.20090617.VfgtU/iPhone1,2_3.0_7A341_Restore.ipsw iPhone1,2_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;94f1fb43de12bff0f168ce690b7e794cc6220ae3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (with [[ultrasn0w]])}}&lt;br /&gt;
| 241,229,233&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| Kirkwood 7A400&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6972.20090731.Zx3Rr/iPhone1,2_3.0.1_7A400_Restore.ipsw  iPhone1,2_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a148ff39fa4dea499e7a9dd007b63e90c4f56666&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 241,274,617&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3G)|Northstar 7C144]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6600.20090909.AwndZ/iPhone1,2_3.1_7C144_Restore.ipsw iPhone1,2_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b3b3c148170b012012278efda9ff5c38282d559&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no|No (Though you can stay at 04.26.08)}}&lt;br /&gt;
| 253,361,339&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone 3G)|Northstar 7D11]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7265.20091008.Xsd32/iPhone1,2_3.1.2_7D11_Restore.ipsw iPhone1,2_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b1a6ab2771bb5da372ba75a8fa3e1d72b71359d0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 253,340,786&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[iPhone2,1|iPhone 3GS]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;65&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;295&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;125&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3GS)|Kirkwood 7A341]]&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6582.20090617.LlI87/iPhone2,1_3.0_7A341_Restore.ipsw iPhone2,1_3.0_7A341_Restore.ipsw] &lt;br /&gt;
| &amp;lt;code&amp;gt;d8534408c8679c830fd0c4e36ef9762c11ef73df&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 312,292,933&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| Kirkwood 7A400&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6976.20090731.Vgbt5/iPhone2,1_3.0.1_7A400_Restore.ipsw  iPhone2,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;30006575af931e3da0521febace005152cdb8853&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 312,330,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3GS)|Northstar 7C144]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6609.20090909.mwws4/iPhone2,1_3.1_7C144_Restore.ipsw  iPhone2,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;527c74f87588afa1d69c1e2c08eedc88f113013a&amp;lt;/code&amp;gt;&lt;br /&gt;
| Installed on phones produced week 37.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no|No (Though you can stay at 04.26.08)}}&lt;br /&gt;
| 321,011,474&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7270.20091008.phn32/iPhone2,1_3.1.2_7D11_Restore.ipsw iPhone2,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6998bb7d9e869b2d89a08853312f9457d070fb1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no|No (Though you can stay at 04.26.08)}}&lt;br /&gt;
| 321,015,700&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N45ap|iPod touch (1st generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;295&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;208&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Snowbird 3A100a&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Snowbird 3A101a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3882.20070910.N8uyT/iPod1,1_1.1_3A101a_Restore.ipsw iPod1,1_1.1_3A101a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b0d83c7f8b4328174a3f31e0e93f60e591ae143&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,890,186&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Snowbird 3A110a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3932.20070927.p23dD/iPod1,1_1.1.1_3A110a_Restore.ipsw iPod1,1_1.1.1_3A110a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;84bbc6ea8bf29745195bc9926c1874f7c2a36f32&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,906,686&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oktoberfest 3B48b&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4036.20071107.9g3DF/iPod1,1_1.1.2_3B48b_Restore.ipsw iPod1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;108d8ffe9ea75e61cd5e57170ad388b7fa00d923&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 165,567,897&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Little Bear 4A93&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-4060.20080115.9Iuh5/iPod1,1_1.1.3_4A93_Restore.ipsw iPod1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8dca23eec69d5ae58fbf3d4a23276e46cbb2e3c6&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,511,411&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| Little Bear 4A102&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4312.20080226.Btu45/iPod1,1_1.1.4_4A102_Restore.ipsw iPod1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c148d1eb1c979bb6434175411d4a372103a4fdd2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,589&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.5&lt;br /&gt;
| Little Bear 4B1&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4841.20080714.bgy8O/iPod1,1_1.1.5_4B1_Restore.ipsw iPod1,1_1.1.5_4B1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;1b818911316e4248ee01d3ec67f9d39afc3db240&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;ae82798e85f9953b0f4798bad36187cb020c9d22&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 233,409,573&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;a81b6e7af4b85ef436d047f9da57c0f694d8964a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,660,321&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c8b6f9fefa3f3777c56285dfe4c735b1e08a81a2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,201,218&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F137&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc7f6d0972927df502ffca47438ca75dcccffaf3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 251,155,156&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;081a7de363230fb38d0ce092cbbe42f2a50c8a5f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,186,851&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc69be9e421bc0630567184506ab771f6b7ef68b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,166,688&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [http://tier.pargon.nl/ipod/iPod1,1_3.0_7A341_Restore.ipsw.html Kirkwood 7A341]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;dff2bd14931225908a360fb8e60a336f17d2dd6d&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,458,552&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [http://tier.pargon.nl/ipod/iPod1,1_3.1.1_7C145_Restore.ipsw.html Northstar 7C145]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c6270780c166db4c9f4f0a7fa945754a1f9fe7e8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 249,755,862&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [http://tier.pargon.nl/ipod/iPod1,1_3.1.2_7D11_Restore.ipsw.html Northstar 7D11]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;7367dd9ba58a3b9777307368a0128e696fdfc9a6&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| 249,780,497&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N72ap|iPod touch (2nd generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;295&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;208&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.1&lt;br /&gt;
| [[Sugar Bowl 5F138]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-5494.20080909.8i9o0/iPod2,1_2.1.1_5F138_Restore.ipsw iPod2,1_2.1.1_5F138_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c3c700be49ad227d1152188e7c1e46b8958fd1e4&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 282,083,944&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-5358.20081120.Gtghy/iPod2,1_2.2_5G77a_Restore.ipsw iPod2,1_2.2_5G77a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34a0a489605f34d6cc6c9954edcaaf9a050deedc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,123,491&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5863.20090127.rt56K/iPod2,1_2.2.1_5H11a_Restore.ipsw iPod2,1_2.2.1_5H11a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9af5625ea34acdd8abeb6fce71a72651d0c815d5&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,140,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPod touch 2G)|Kirkwood 7A341]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;0f7fc76d9b9aa826b5ab14be9821a315d3d9dc42&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 270,315,364&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 2G)|Northstar 7C145]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e0d8800a4fc7cc5be6976ddbceb43c2d2a7120d7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 277,753,989&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e7c83d4a5baec0e81816ae1cd1caf9a4dc38ebf0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| 277,794,671&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N18AP|iPod touch (3rd generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;40&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;295&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;208&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C145]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-7163.20090909.NtstR/iPod3,1_3.1.1_7C145_Restore.ipsw iPod3,1_3.1.1_7C145_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a3eddbe2cf77858bae7087dc8b2035f0d3097e57&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| style=&amp;quot;background:yellow; color:black;&amp;quot; class=&amp;quot;table-yes&amp;quot; | Tethered jailbreak via [[blackra1n]]&lt;br /&gt;
&lt;br /&gt;
| 311,702,789&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C146]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7238.20090918.23GhT/iPod3,1_3.1.1_7C146_Restore.ipsw iPod3,1_3.1.1_7C146_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f66a7286b261137f25ddbbd84047f9a7ea181904&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background:yellow; color:black;&amp;quot; class=&amp;quot;table-yes&amp;quot; | Yes, but not yet released&lt;br /&gt;
| 311,690,768&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7271.20091008.Tch23/iPod3,1_3.1.2_7D11_Restore.ipsw iPod3,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;02dcee28d788d594a2939ab564f4f183af6ccdf2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background:yellow; color:black;&amp;quot; class=&amp;quot;table-yes&amp;quot; | Tethered jailbreak via [[blackra1n]]&lt;br /&gt;
| 311,740,034&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[VFDecrypt Keys]]&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
*[http://www.trejan.com/projects/ipod/ Firmware List]&lt;br /&gt;
*[http://pastebin.ca/1209360 A link of interest...]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Northstar_7D11_(iPhone1,1)&amp;diff=5092</id>
		<title>Northstar 7D11 (iPhone1,1)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Northstar_7D11_(iPhone1,1)&amp;diff=5092"/>
		<updated>2009-10-12T18:40:08Z</updated>

		<summary type="html">&lt;p&gt;Redart: More keys&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Decryption Keys ==&lt;br /&gt;
&lt;br /&gt;
=== Root Filesystem ===&lt;br /&gt;
* '''VFDecrypt''': fe431a1e436e5298d3c871359768aab43189fd5e7375a2ced3405dd8a223879a4d64a28e&lt;br /&gt;
&lt;br /&gt;
=== AppleLogo (applelogo.s5l8900x.img3) ===&lt;br /&gt;
* '''Key''': 1fb738d6c091113d7dfdd89864a718d9&lt;br /&gt;
* '''IV''': 677b4c711e3cacb72505feae8e1eae5d&lt;br /&gt;
&lt;br /&gt;
=== KernelCache (kernelcache.release.s5l8900x) ===&lt;br /&gt;
* '''Key''': dd03b5b52a53d3582b18a0052ef84038&lt;br /&gt;
* '''IV''': 25b7f586d184c329d3d05953a6516a36&lt;br /&gt;
&lt;br /&gt;
=== KernelCache (kernelcache.release.s5l8900x) ===&lt;br /&gt;
* '''Key''': dd03b5b52a53d3582b18a0052ef84038&lt;br /&gt;
* '''IV''': 25b7f586d184c329d3d05953a6516a36&lt;br /&gt;
&lt;br /&gt;
=== LLB (LLB.m68ap.RELEASE.img3) ===&lt;br /&gt;
* '''Key''': 783970ed70d151e65cdd0f52019f026cbc0ece5c604603117d677b6a85ea4d95&lt;br /&gt;
* '''IV''': fc4efef9fd245dc038ecb26f25f795c7&lt;br /&gt;
&lt;br /&gt;
=== RecoveryMode (recoverymode.s5l8900x.img3) ===&lt;br /&gt;
* '''Key''': 6d7d035c04c60ab2776a5e7c729daf0a&lt;br /&gt;
* '''IV''': dbf44c3cc2944b87bdecdbdcd8e42b82&lt;br /&gt;
&lt;br /&gt;
=== Restore Ramdisk (018-6136-014.dmg) ===&lt;br /&gt;
* '''Key''': 6a4db11073eb748bad1fabafb066fe13&lt;br /&gt;
* '''IV''': 0e128e1f69806afc476b73250908d641&lt;br /&gt;
&lt;br /&gt;
=== iBoot (iBoot.m68ap.RELEASE.img3) ===&lt;br /&gt;
* '''Key''': a0ae133d5de080b4341d3eeb8aff63d4&lt;br /&gt;
* '''IV''': db240b5ba6163898bbbc055be2276ea0&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=5070</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=5070"/>
		<updated>2009-10-11T13:27:53Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* iPod touch (1st generation) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the iPhone OS system the iPhone runs. Latest Apple download links can be found [http://www.itunes.com/version here].&lt;br /&gt;
&lt;br /&gt;
==Comparison of firmware versions==&lt;br /&gt;
&lt;br /&gt;
===[[iPhone]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;65&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;125&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[Alpine 1A420]]&lt;br /&gt;
| [http://img399.imageshack.us/i/iphone2go0.jpg/ 03.06.01_G]&lt;br /&gt;
| iphoneproto.zip&lt;br /&gt;
| &amp;lt;code&amp;gt;6e798e906c6590a7521ef89b731569be6d05b3aa&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prototype; [http://forums.macrumors.com/showthread.php?t=627449 macrumors]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 109,813,128&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0&lt;br /&gt;
| Heavenly 1A543a&lt;br /&gt;
| 03.12.06_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3538.20070629.B7vXa/iPhone1,1_1.0_1A543a_Restore.ipsw iPhone1,1_1.0_1A543a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;fb8bb3ee2e9a997affbb97868599f2995c78209c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial US shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,604,348&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1&lt;br /&gt;
| Heavenly 1C25&lt;br /&gt;
| 03.12.06_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3614.20070731.Nt6Y7/iPhone1,1_1.0.1_1C25_Restore.ipsw iPhone1,1_1.0.1_1C25_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a00b85a7a55d62a94be5fbf5effbc42fd63f3097&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,958&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| Heavenly 1C28&lt;br /&gt;
| 03.14.08_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3823.20070821.vormd/iPhone1,1_1.0.2_1C28_Restore.ipsw iPhone1,1_1.0.2_1C28_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;7f5c0ff1f84a0202b75a55c3fcb362e415334d1e&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,324&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Snowbird 3A109a&lt;br /&gt;
| 04.01.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3883.20070927.In76t/iPhone1,1_1.1.1_3A109a_Restore.ipsw iPhone1,1_1.1.1_3A109a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;d441dd1c71ce18f25d8fc4faa71c1e6eaa02d02c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 159,668,150&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oktoberfest 3B48b&lt;br /&gt;
| 04.02.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4037.20071107.5Bghn/iPhone1,1_1.1.2_3B48b_Restore.ipsw iPhone1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;797c02e7d660940e8d9a16cc7229ccf3f67dd8b1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial Euro shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 167,927,501&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Little Bear 4A93&lt;br /&gt;
| 04.03.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4061.20080115.4Fvn7/iPhone1,1_1.1.3_4A93_Restore.ipsw iPhone1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b3dec7580bd00dc4faf28449d9618ef40aeacc96&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,950,551&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| Little Bear 4A102&lt;br /&gt;
| 04.04.05_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4313.20080226.Sw39i/iPhone1,1_1.1.4_4A102_Restore.ipsw iPhone1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;000811bac096011b50ebf6ec1ec2285b62fda4cb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,946,442&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4956.20080710.V50OI/iPhone1,1_2.0_5A347_Restore.ipsw iPhone1,1_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9c510a3cfce789fa5f92a8f763c231bac82ff6d4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 228,768,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5135.20080729.Vfgtr/iPhone1,1_2.0.1_5B108_Restore.ipsw iPhone1,1_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;61de6a2bd6ceddc9ecabad1671b91a59b3824bc4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 254,048,068&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5246.20080818.2V0hO/iPhone1,1_2.0.2_5C1_Restore.ipsw iPhone1,1_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b84b57bea919bdc720287ec908c1378e7d7b5e1b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 253,589,000&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F136&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5202.20080909.gkbEj/iPhone1,1_2.1_5F136_Restore.ipsw iPhone1,1_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;353b7745767b85932e14e262e69463620939bdf7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,171,241&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5779.20081120.Pt5yH/iPhone1,1_2.2_5G77_Restore.ipsw iPhone1,1_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;cbfc6ff886ce89868a55547b9fb980dbf92e6418&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,576,980&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5830.20090127.Mmni6/iPhone1,1_2.2.1_5H11_Restore.ipsw iPhone1,1_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;43b95ebe1e51f8d30eae916053396595c08440d3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,593,705&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone)|Kirkwood 7A341]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6580.20090617.XsP76/iPhone1,1_3.0_7A341_Restore.ipsw iPhone1,1_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;2afd3f8ede17390737f508473ed205506a0bd23f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,394,111&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| [[Kirkwood 7A400 (iPhone)|Kirkwood 7A400]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6974.20090731.Cf4Tg/iPhone1,1_3.0.1_7A400_Restore.ipsw  iPhone1,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34c391fbbc7b31b159372766de39ce5c9cc26ebb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,439,502&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone)|Northstar 7C144]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6605.20090909.PQ3ws/iPhone1,1_3.1_7C144_Restore.ipsw iPhone1,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b7b5f436f81c6f855410e8b44a3d432ccaacd6fc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,536,460&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone)|Northstar 7D11]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7268.20091008.32pNe/iPhone1,1_3.1.2_7D11_Restore.ipsw iPhone1,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e4a1171542dbbd3093516d9c02047b9f7e143050&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,515,888&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[iPhone 3G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;65&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;125&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A345&lt;br /&gt;
| 01.45.00&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial iPhone 3G shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| 01.45.00&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4955.20080710.bgt53/iPhone1,2_2.0_5A347_Restore.ipsw iPhone1,2_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;af9506ca0034e462674f9f59c5406f159eaf9fc1&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 235,957,125&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| 01.48.02&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5134.20080729.Q2W3E/iPhone1,2_2.0.1_5B108_Restore.ipsw iPhone1,2_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e81c7ac7e334a3e9d81b3b47894bfaa1ec495482&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 261,224,227&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| 02.08.01&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5241.20080818.t5Fv3/iPhone1,2_2.0.2_5C1_Restore.ipsw iPhone1,2_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;bef7fef954293046420fbcf947379839178a195b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 260,761,030&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F136&lt;br /&gt;
| 02.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5198.20080909.K3294/iPhone1,2_2.1_5F136_Restore.ipsw iPhone1,2_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c6957dcbf2a95ccfd6dce374a727b1b7700a9043&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 249,341,655&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| 02.28.00&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5778.20081120.Aqw4R/iPhone1,2_2.2_5G77_Restore.ipsw iPhone1,2_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f67f8b2b842428bf89456cda0c2d5cf954d111a4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 258,342,348&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| 02.30.03&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5828.20090127.aQLi8/iPhone1,2_2.2.1_5H11_Restore.ipsw iPhone1,2_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e0098e6fab5c90b59e067e03ae3ccd4a7cd0f39c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 258,359,073&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3G)|Kirkwood 7A341]]&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6578.20090617.VfgtU/iPhone1,2_3.0_7A341_Restore.ipsw iPhone1,2_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;94f1fb43de12bff0f168ce690b7e794cc6220ae3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (with [[ultrasn0w]])}}&lt;br /&gt;
| 241,229,233&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| Kirkwood 7A400&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6972.20090731.Zx3Rr/iPhone1,2_3.0.1_7A400_Restore.ipsw  iPhone1,2_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a148ff39fa4dea499e7a9dd007b63e90c4f56666&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 241,274,617&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3G)|Northstar 7C144]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6600.20090909.AwndZ/iPhone1,2_3.1_7C144_Restore.ipsw iPhone1,2_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b3b3c148170b012012278efda9ff5c38282d559&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no|No (Though you can stay at 04.26.08)}}&lt;br /&gt;
| 253,361,339&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7265.20091008.Xsd32/iPhone1,2_3.1.2_7D11_Restore.ipsw iPhone1,2_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b1a6ab2771bb5da372ba75a8fa3e1d72b71359d0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 253,340,786&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[iPhone2,1|iPhone 3GS]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;65&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;125&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3GS)|Kirkwood 7A341]]&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6582.20090617.LlI87/iPhone2,1_3.0_7A341_Restore.ipsw iPhone2,1_3.0_7A341_Restore.ipsw] &lt;br /&gt;
| &amp;lt;code&amp;gt;d8534408c8679c830fd0c4e36ef9762c11ef73df&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (with [[ultrasn0w]] or [[purplesn0w]])}}&lt;br /&gt;
| 312,292,933&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| Kirkwood 7A400&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6976.20090731.Vgbt5/iPhone2,1_3.0.1_7A400_Restore.ipsw  iPhone2,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;30006575af931e3da0521febace005152cdb8853&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 312,330,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3GS)|Northstar 7C144]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6609.20090909.mwws4/iPhone2,1_3.1_7C144_Restore.ipsw  iPhone2,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;527c74f87588afa1d69c1e2c08eedc88f113013a&amp;lt;/code&amp;gt;&lt;br /&gt;
| Installed on phones produced week 37.&lt;br /&gt;
| {{yes}}, if upgraded from jb 3.0/3.0.1&lt;br /&gt;
| {{no|No (Though you can stay at 04.26.08)}}&lt;br /&gt;
| 321,011,474&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7270.20091008.phn32/iPhone2,1_3.1.2_7D11_Restore.ipsw iPhone2,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6998bb7d9e869b2d89a08853312f9457d070fb1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes|Yes (with [[blackra1n]])}}&lt;br /&gt;
| {{no|No (Though you can stay at 04.26.08)}}&lt;br /&gt;
| 321,015,700&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N45ap|iPod touch (1st generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;208&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Snowbird 3A100a&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Snowbird 3A101a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3882.20070910.N8uyT/iPod1,1_1.1_3A101a_Restore.ipsw iPod1,1_1.1_3A101a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b0d83c7f8b4328174a3f31e0e93f60e591ae143&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,890,186&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Snowbird 3A110a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3932.20070927.p23dD/iPod1,1_1.1.1_3A110a_Restore.ipsw iPod1,1_1.1.1_3A110a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;84bbc6ea8bf29745195bc9926c1874f7c2a36f32&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,906,686&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oktoberfest 3B48b&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4036.20071107.9g3DF/iPod1,1_1.1.2_3B48b_Restore.ipsw iPod1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;108d8ffe9ea75e61cd5e57170ad388b7fa00d923&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 165,567,897&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Little Bear 4A93&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-4060.20080115.9Iuh5/iPod1,1_1.1.3_4A93_Restore.ipsw iPod1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8dca23eec69d5ae58fbf3d4a23276e46cbb2e3c6&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,511,411&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| Little Bear 4A102&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4312.20080226.Btu45/iPod1,1_1.1.4_4A102_Restore.ipsw iPod1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c148d1eb1c979bb6434175411d4a372103a4fdd2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,589&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.5&lt;br /&gt;
| Little Bear 4B1&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4841.20080714.bgy8O/iPod1,1_1.1.5_4B1_Restore.ipsw iPod1,1_1.1.5_4B1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;1b818911316e4248ee01d3ec67f9d39afc3db240&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;ae82798e85f9953b0f4798bad36187cb020c9d22&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 233,409,573&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;a81b6e7af4b85ef436d047f9da57c0f694d8964a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,660,321&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c8b6f9fefa3f3777c56285dfe4c735b1e08a81a2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,201,218&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F137&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc7f6d0972927df502ffca47438ca75dcccffaf3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 251,155,156&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;081a7de363230fb38d0ce092cbbe42f2a50c8a5f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,186,851&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc69be9e421bc0630567184506ab771f6b7ef68b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,166,688&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [http://tier.pargon.nl/ipod/iPod1,1_3.0_7A341_Restore.ipsw.html Kirkwood 7A341]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;dff2bd14931225908a360fb8e60a336f17d2dd6d&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,458,552&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [http://tier.pargon.nl/ipod/iPod1,1_3.1.1_7C145_Restore.ipsw.html Northstar 7C145]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c6270780c166db4c9f4f0a7fa945754a1f9fe7e8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 249,755,862&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [http://tier.pargon.nl/ipod/iPod1,1_3.1.2_7D11_Restore.ipsw.html Northstar 7D11]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;7367dd9ba58a3b9777307368a0128e696fdfc9a6&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| 249,780,497&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N72ap|iPod touch (2nd generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;208&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.1&lt;br /&gt;
| [[Sugar Bowl 5F138]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-5494.20080909.8i9o0/iPod2,1_2.1.1_5F138_Restore.ipsw iPod2,1_2.1.1_5F138_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c3c700be49ad227d1152188e7c1e46b8958fd1e4&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 282,083,944&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-5358.20081120.Gtghy/iPod2,1_2.2_5G77a_Restore.ipsw iPod2,1_2.2_5G77a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34a0a489605f34d6cc6c9954edcaaf9a050deedc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,123,491&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5863.20090127.rt56K/iPod2,1_2.2.1_5H11a_Restore.ipsw iPod2,1_2.2.1_5H11a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9af5625ea34acdd8abeb6fce71a72651d0c815d5&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,140,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPod touch 2G)|Kirkwood 7A341]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;0f7fc76d9b9aa826b5ab14be9821a315d3d9dc42&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 270,315,364&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 2G)|Northstar 7C145]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e0d8800a4fc7cc5be6976ddbceb43c2d2a7120d7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}, if upgraded from 3.0&lt;br /&gt;
| 277,753,989&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e7c83d4a5baec0e81816ae1cd1caf9a4dc38ebf0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| 277,794,671&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N18AP|iPod touch (3rd generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;208&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C145]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-7163.20090909.NtstR/iPod3,1_3.1.1_7C145_Restore.ipsw iPod3,1_3.1.1_7C145_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a3eddbe2cf77858bae7087dc8b2035f0d3097e57&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| style=&amp;quot;background:yellow; color:black;&amp;quot; class=&amp;quot;table-yes&amp;quot; | Yes, but not yet released&lt;br /&gt;
| 311,702,789&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C146]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7238.20090918.23GhT/iPod3,1_3.1.1_7C146_Restore.ipsw iPod3,1_3.1.1_7C146_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f66a7286b261137f25ddbbd84047f9a7ea181904&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background:yellow; color:black;&amp;quot; class=&amp;quot;table-yes&amp;quot; | Yes, but not yet released&lt;br /&gt;
| 311,690,768&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7271.20091008.Tch23/iPod3,1_3.1.2_7D11_Restore.ipsw iPod3,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;02dcee28d788d594a2939ab564f4f183af6ccdf2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}, but only tethered one&lt;br /&gt;
| 311,740,034&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[VFDecrypt Keys]]&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
*[http://www.trejan.com/projects/ipod/ Firmware List]&lt;br /&gt;
*[http://pastebin.ca/1209360 A link of interest...]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=5069</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=5069"/>
		<updated>2009-10-11T13:26:17Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* iPhone 3GS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the iPhone OS system the iPhone runs. Latest Apple download links can be found [http://www.itunes.com/version here].&lt;br /&gt;
&lt;br /&gt;
==Comparison of firmware versions==&lt;br /&gt;
&lt;br /&gt;
===[[iPhone]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;65&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;125&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[Alpine 1A420]]&lt;br /&gt;
| [http://img399.imageshack.us/i/iphone2go0.jpg/ 03.06.01_G]&lt;br /&gt;
| iphoneproto.zip&lt;br /&gt;
| &amp;lt;code&amp;gt;6e798e906c6590a7521ef89b731569be6d05b3aa&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prototype; [http://forums.macrumors.com/showthread.php?t=627449 macrumors]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 109,813,128&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0&lt;br /&gt;
| Heavenly 1A543a&lt;br /&gt;
| 03.12.06_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3538.20070629.B7vXa/iPhone1,1_1.0_1A543a_Restore.ipsw iPhone1,1_1.0_1A543a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;fb8bb3ee2e9a997affbb97868599f2995c78209c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial US shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,604,348&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1&lt;br /&gt;
| Heavenly 1C25&lt;br /&gt;
| 03.12.06_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3614.20070731.Nt6Y7/iPhone1,1_1.0.1_1C25_Restore.ipsw iPhone1,1_1.0.1_1C25_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a00b85a7a55d62a94be5fbf5effbc42fd63f3097&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,958&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| Heavenly 1C28&lt;br /&gt;
| 03.14.08_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3823.20070821.vormd/iPhone1,1_1.0.2_1C28_Restore.ipsw iPhone1,1_1.0.2_1C28_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;7f5c0ff1f84a0202b75a55c3fcb362e415334d1e&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,324&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Snowbird 3A109a&lt;br /&gt;
| 04.01.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3883.20070927.In76t/iPhone1,1_1.1.1_3A109a_Restore.ipsw iPhone1,1_1.1.1_3A109a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;d441dd1c71ce18f25d8fc4faa71c1e6eaa02d02c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 159,668,150&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oktoberfest 3B48b&lt;br /&gt;
| 04.02.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4037.20071107.5Bghn/iPhone1,1_1.1.2_3B48b_Restore.ipsw iPhone1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;797c02e7d660940e8d9a16cc7229ccf3f67dd8b1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial Euro shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 167,927,501&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Little Bear 4A93&lt;br /&gt;
| 04.03.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4061.20080115.4Fvn7/iPhone1,1_1.1.3_4A93_Restore.ipsw iPhone1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b3dec7580bd00dc4faf28449d9618ef40aeacc96&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,950,551&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| Little Bear 4A102&lt;br /&gt;
| 04.04.05_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4313.20080226.Sw39i/iPhone1,1_1.1.4_4A102_Restore.ipsw iPhone1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;000811bac096011b50ebf6ec1ec2285b62fda4cb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,946,442&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4956.20080710.V50OI/iPhone1,1_2.0_5A347_Restore.ipsw iPhone1,1_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9c510a3cfce789fa5f92a8f763c231bac82ff6d4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 228,768,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5135.20080729.Vfgtr/iPhone1,1_2.0.1_5B108_Restore.ipsw iPhone1,1_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;61de6a2bd6ceddc9ecabad1671b91a59b3824bc4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 254,048,068&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5246.20080818.2V0hO/iPhone1,1_2.0.2_5C1_Restore.ipsw iPhone1,1_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b84b57bea919bdc720287ec908c1378e7d7b5e1b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 253,589,000&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F136&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5202.20080909.gkbEj/iPhone1,1_2.1_5F136_Restore.ipsw iPhone1,1_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;353b7745767b85932e14e262e69463620939bdf7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,171,241&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5779.20081120.Pt5yH/iPhone1,1_2.2_5G77_Restore.ipsw iPhone1,1_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;cbfc6ff886ce89868a55547b9fb980dbf92e6418&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,576,980&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5830.20090127.Mmni6/iPhone1,1_2.2.1_5H11_Restore.ipsw iPhone1,1_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;43b95ebe1e51f8d30eae916053396595c08440d3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,593,705&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone)|Kirkwood 7A341]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6580.20090617.XsP76/iPhone1,1_3.0_7A341_Restore.ipsw iPhone1,1_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;2afd3f8ede17390737f508473ed205506a0bd23f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,394,111&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| [[Kirkwood 7A400 (iPhone)|Kirkwood 7A400]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6974.20090731.Cf4Tg/iPhone1,1_3.0.1_7A400_Restore.ipsw  iPhone1,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34c391fbbc7b31b159372766de39ce5c9cc26ebb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,439,502&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone)|Northstar 7C144]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6605.20090909.PQ3ws/iPhone1,1_3.1_7C144_Restore.ipsw iPhone1,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b7b5f436f81c6f855410e8b44a3d432ccaacd6fc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,536,460&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone)|Northstar 7D11]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7268.20091008.32pNe/iPhone1,1_3.1.2_7D11_Restore.ipsw iPhone1,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e4a1171542dbbd3093516d9c02047b9f7e143050&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,515,888&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[iPhone 3G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;65&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;125&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A345&lt;br /&gt;
| 01.45.00&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial iPhone 3G shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| 01.45.00&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4955.20080710.bgt53/iPhone1,2_2.0_5A347_Restore.ipsw iPhone1,2_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;af9506ca0034e462674f9f59c5406f159eaf9fc1&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 235,957,125&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| 01.48.02&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5134.20080729.Q2W3E/iPhone1,2_2.0.1_5B108_Restore.ipsw iPhone1,2_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e81c7ac7e334a3e9d81b3b47894bfaa1ec495482&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 261,224,227&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| 02.08.01&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5241.20080818.t5Fv3/iPhone1,2_2.0.2_5C1_Restore.ipsw iPhone1,2_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;bef7fef954293046420fbcf947379839178a195b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 260,761,030&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F136&lt;br /&gt;
| 02.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5198.20080909.K3294/iPhone1,2_2.1_5F136_Restore.ipsw iPhone1,2_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c6957dcbf2a95ccfd6dce374a727b1b7700a9043&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 249,341,655&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| 02.28.00&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5778.20081120.Aqw4R/iPhone1,2_2.2_5G77_Restore.ipsw iPhone1,2_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f67f8b2b842428bf89456cda0c2d5cf954d111a4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 258,342,348&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| 02.30.03&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5828.20090127.aQLi8/iPhone1,2_2.2.1_5H11_Restore.ipsw iPhone1,2_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e0098e6fab5c90b59e067e03ae3ccd4a7cd0f39c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 258,359,073&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3G)|Kirkwood 7A341]]&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6578.20090617.VfgtU/iPhone1,2_3.0_7A341_Restore.ipsw iPhone1,2_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;94f1fb43de12bff0f168ce690b7e794cc6220ae3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (with [[ultrasn0w]])}}&lt;br /&gt;
| 241,229,233&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| Kirkwood 7A400&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6972.20090731.Zx3Rr/iPhone1,2_3.0.1_7A400_Restore.ipsw  iPhone1,2_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a148ff39fa4dea499e7a9dd007b63e90c4f56666&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 241,274,617&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3G)|Northstar 7C144]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6600.20090909.AwndZ/iPhone1,2_3.1_7C144_Restore.ipsw iPhone1,2_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b3b3c148170b012012278efda9ff5c38282d559&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no|No (Though you can stay at 04.26.08)}}&lt;br /&gt;
| 253,361,339&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7265.20091008.Xsd32/iPhone1,2_3.1.2_7D11_Restore.ipsw iPhone1,2_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b1a6ab2771bb5da372ba75a8fa3e1d72b71359d0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 253,340,786&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[iPhone2,1|iPhone 3GS]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;65&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;125&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3GS)|Kirkwood 7A341]]&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6582.20090617.LlI87/iPhone2,1_3.0_7A341_Restore.ipsw iPhone2,1_3.0_7A341_Restore.ipsw] &lt;br /&gt;
| &amp;lt;code&amp;gt;d8534408c8679c830fd0c4e36ef9762c11ef73df&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (with [[ultrasn0w]] or [[purplesn0w]])}}&lt;br /&gt;
| 312,292,933&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| Kirkwood 7A400&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6976.20090731.Vgbt5/iPhone2,1_3.0.1_7A400_Restore.ipsw  iPhone2,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;30006575af931e3da0521febace005152cdb8853&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 312,330,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3GS)|Northstar 7C144]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6609.20090909.mwws4/iPhone2,1_3.1_7C144_Restore.ipsw  iPhone2,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;527c74f87588afa1d69c1e2c08eedc88f113013a&amp;lt;/code&amp;gt;&lt;br /&gt;
| Installed on phones produced week 37.&lt;br /&gt;
| {{yes}}, if upgraded from jb 3.0/3.0.1&lt;br /&gt;
| {{no|No (Though you can stay at 04.26.08)}}&lt;br /&gt;
| 321,011,474&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7270.20091008.phn32/iPhone2,1_3.1.2_7D11_Restore.ipsw iPhone2,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6998bb7d9e869b2d89a08853312f9457d070fb1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes|Yes (with [[blackra1n]])}}&lt;br /&gt;
| {{no|No (Though you can stay at 04.26.08)}}&lt;br /&gt;
| 321,015,700&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N45ap|iPod touch (1st generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;208&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Snowbird 3A100a&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Snowbird 3A101a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3882.20070910.N8uyT/iPod1,1_1.1_3A101a_Restore.ipsw iPod1,1_1.1_3A101a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b0d83c7f8b4328174a3f31e0e93f60e591ae143&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,890,186&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Snowbird 3A110a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3932.20070927.p23dD/iPod1,1_1.1.1_3A110a_Restore.ipsw iPod1,1_1.1.1_3A110a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;84bbc6ea8bf29745195bc9926c1874f7c2a36f32&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,906,686&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oktoberfest 3B48b&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4036.20071107.9g3DF/iPod1,1_1.1.2_3B48b_Restore.ipsw iPod1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;108d8ffe9ea75e61cd5e57170ad388b7fa00d923&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 165,567,897&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Little Bear 4A93&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-4060.20080115.9Iuh5/iPod1,1_1.1.3_4A93_Restore.ipsw iPod1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8dca23eec69d5ae58fbf3d4a23276e46cbb2e3c6&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,511,411&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| Little Bear 4A102&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4312.20080226.Btu45/iPod1,1_1.1.4_4A102_Restore.ipsw iPod1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c148d1eb1c979bb6434175411d4a372103a4fdd2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,589&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.5&lt;br /&gt;
| Little Bear 4B1&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4841.20080714.bgy8O/iPod1,1_1.1.5_4B1_Restore.ipsw iPod1,1_1.1.5_4B1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;1b818911316e4248ee01d3ec67f9d39afc3db240&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;ae82798e85f9953b0f4798bad36187cb020c9d22&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 233,409,573&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;a81b6e7af4b85ef436d047f9da57c0f694d8964a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,660,321&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c8b6f9fefa3f3777c56285dfe4c735b1e08a81a2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,201,218&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F137&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc7f6d0972927df502ffca47438ca75dcccffaf3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 251,155,156&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;081a7de363230fb38d0ce092cbbe42f2a50c8a5f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,186,851&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc69be9e421bc0630567184506ab771f6b7ef68b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,166,688&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [http://tier.pargon.nl/ipod/iPod1,1_3.0_7A341_Restore.ipsw.html Kirkwood 7A341]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;dff2bd14931225908a360fb8e60a336f17d2dd6d&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,458,552&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [http://tier.pargon.nl/ipod/iPod1,1_3.1.1_7C145_Restore.ipsw.html Northstar 7C145]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c6270780c166db4c9f4f0a7fa945754a1f9fe7e8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 249,755,862&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [http://tier.pargon.nl/ipod/iPod1,1_3.1.2_7D11_Restore.ipsw.html Northstar 7D11]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;7367dd9ba58a3b9777307368a0128e696fdfc9a6&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| Yes, but not yet released&lt;br /&gt;
| 249,780,497&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N72ap|iPod touch (2nd generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;208&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.1&lt;br /&gt;
| [[Sugar Bowl 5F138]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-5494.20080909.8i9o0/iPod2,1_2.1.1_5F138_Restore.ipsw iPod2,1_2.1.1_5F138_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c3c700be49ad227d1152188e7c1e46b8958fd1e4&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 282,083,944&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-5358.20081120.Gtghy/iPod2,1_2.2_5G77a_Restore.ipsw iPod2,1_2.2_5G77a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34a0a489605f34d6cc6c9954edcaaf9a050deedc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,123,491&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5863.20090127.rt56K/iPod2,1_2.2.1_5H11a_Restore.ipsw iPod2,1_2.2.1_5H11a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9af5625ea34acdd8abeb6fce71a72651d0c815d5&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,140,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPod touch 2G)|Kirkwood 7A341]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;0f7fc76d9b9aa826b5ab14be9821a315d3d9dc42&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 270,315,364&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 2G)|Northstar 7C145]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e0d8800a4fc7cc5be6976ddbceb43c2d2a7120d7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}, if upgraded from 3.0&lt;br /&gt;
| 277,753,989&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e7c83d4a5baec0e81816ae1cd1caf9a4dc38ebf0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| 277,794,671&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N18AP|iPod touch (3rd generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;208&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C145]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-7163.20090909.NtstR/iPod3,1_3.1.1_7C145_Restore.ipsw iPod3,1_3.1.1_7C145_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a3eddbe2cf77858bae7087dc8b2035f0d3097e57&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| style=&amp;quot;background:yellow; color:black;&amp;quot; class=&amp;quot;table-yes&amp;quot; | Yes, but not yet released&lt;br /&gt;
| 311,702,789&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C146]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7238.20090918.23GhT/iPod3,1_3.1.1_7C146_Restore.ipsw iPod3,1_3.1.1_7C146_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f66a7286b261137f25ddbbd84047f9a7ea181904&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background:yellow; color:black;&amp;quot; class=&amp;quot;table-yes&amp;quot; | Yes, but not yet released&lt;br /&gt;
| 311,690,768&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7271.20091008.Tch23/iPod3,1_3.1.2_7D11_Restore.ipsw iPod3,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;02dcee28d788d594a2939ab564f4f183af6ccdf2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}, but only tethered one&lt;br /&gt;
| 311,740,034&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[VFDecrypt Keys]]&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
*[http://www.trejan.com/projects/ipod/ Firmware List]&lt;br /&gt;
*[http://pastebin.ca/1209360 A link of interest...]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=5068</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Firmware&amp;diff=5068"/>
		<updated>2009-10-11T13:24:50Z</updated>

		<summary type="html">&lt;p&gt;Redart: /* Comparison of firmware versions */ And other too&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the iPhone OS system the iPhone runs. Latest Apple download links can be found [http://www.itunes.com/version here].&lt;br /&gt;
&lt;br /&gt;
==Comparison of firmware versions==&lt;br /&gt;
&lt;br /&gt;
===[[iPhone]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;65&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;125&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[Alpine 1A420]]&lt;br /&gt;
| [http://img399.imageshack.us/i/iphone2go0.jpg/ 03.06.01_G]&lt;br /&gt;
| iphoneproto.zip&lt;br /&gt;
| &amp;lt;code&amp;gt;6e798e906c6590a7521ef89b731569be6d05b3aa&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prototype; [http://forums.macrumors.com/showthread.php?t=627449 macrumors]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 109,813,128&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0&lt;br /&gt;
| Heavenly 1A543a&lt;br /&gt;
| 03.12.06_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3538.20070629.B7vXa/iPhone1,1_1.0_1A543a_Restore.ipsw iPhone1,1_1.0_1A543a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;fb8bb3ee2e9a997affbb97868599f2995c78209c&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial US shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,604,348&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1&lt;br /&gt;
| Heavenly 1C25&lt;br /&gt;
| 03.12.06_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3614.20070731.Nt6Y7/iPhone1,1_1.0.1_1C25_Restore.ipsw iPhone1,1_1.0.1_1C25_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a00b85a7a55d62a94be5fbf5effbc42fd63f3097&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,958&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| Heavenly 1C28&lt;br /&gt;
| 03.14.08_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3823.20070821.vormd/iPhone1,1_1.0.2_1C28_Restore.ipsw iPhone1,1_1.0.2_1C28_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;7f5c0ff1f84a0202b75a55c3fcb362e415334d1e&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 95,627,324&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Snowbird 3A109a&lt;br /&gt;
| 04.01.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3883.20070927.In76t/iPhone1,1_1.1.1_3A109a_Restore.ipsw iPhone1,1_1.1.1_3A109a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;d441dd1c71ce18f25d8fc4faa71c1e6eaa02d02c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 159,668,150&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oktoberfest 3B48b&lt;br /&gt;
| 04.02.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4037.20071107.5Bghn/iPhone1,1_1.1.2_3B48b_Restore.ipsw iPhone1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;797c02e7d660940e8d9a16cc7229ccf3f67dd8b1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial Euro shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 167,927,501&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Little Bear 4A93&lt;br /&gt;
| 04.03.13_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4061.20080115.4Fvn7/iPhone1,1_1.1.3_4A93_Restore.ipsw iPhone1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b3dec7580bd00dc4faf28449d9618ef40aeacc96&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,950,551&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| Little Bear 4A102&lt;br /&gt;
| 04.04.05_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4313.20080226.Sw39i/iPhone1,1_1.1.4_4A102_Restore.ipsw iPhone1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;000811bac096011b50ebf6ec1ec2285b62fda4cb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 169,946,442&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4956.20080710.V50OI/iPhone1,1_2.0_5A347_Restore.ipsw iPhone1,1_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9c510a3cfce789fa5f92a8f763c231bac82ff6d4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 228,768,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5135.20080729.Vfgtr/iPhone1,1_2.0.1_5B108_Restore.ipsw iPhone1,1_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;61de6a2bd6ceddc9ecabad1671b91a59b3824bc4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 254,048,068&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5246.20080818.2V0hO/iPhone1,1_2.0.2_5C1_Restore.ipsw iPhone1,1_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b84b57bea919bdc720287ec908c1378e7d7b5e1b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 253,589,000&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F136&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5202.20080909.gkbEj/iPhone1,1_2.1_5F136_Restore.ipsw iPhone1,1_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;353b7745767b85932e14e262e69463620939bdf7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,171,241&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5779.20081120.Pt5yH/iPhone1,1_2.2_5G77_Restore.ipsw iPhone1,1_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;cbfc6ff886ce89868a55547b9fb980dbf92e6418&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,576,980&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5830.20090127.Mmni6/iPhone1,1_2.2.1_5H11_Restore.ipsw iPhone1,1_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;43b95ebe1e51f8d30eae916053396595c08440d3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 257,593,705&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone)|Kirkwood 7A341]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6580.20090617.XsP76/iPhone1,1_3.0_7A341_Restore.ipsw iPhone1,1_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;2afd3f8ede17390737f508473ed205506a0bd23f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,394,111&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| [[Kirkwood 7A400 (iPhone)|Kirkwood 7A400]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6974.20090731.Cf4Tg/iPhone1,1_3.0.1_7A400_Restore.ipsw  iPhone1,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34c391fbbc7b31b159372766de39ce5c9cc26ebb&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 240,439,502&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone)|Northstar 7C144]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6605.20090909.PQ3ws/iPhone1,1_3.1_7C144_Restore.ipsw iPhone1,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b7b5f436f81c6f855410e8b44a3d432ccaacd6fc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,536,460&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [[Northstar 7D11 (iPhone)|Northstar 7D11]]&lt;br /&gt;
| 04.05.04_G&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7268.20091008.32pNe/iPhone1,1_3.1.2_7D11_Restore.ipsw iPhone1,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e4a1171542dbbd3093516d9c02047b9f7e143050&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 252,515,888&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[iPhone 3G]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;65&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;125&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A345&lt;br /&gt;
| 01.45.00&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial iPhone 3G shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| 01.45.00&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4955.20080710.bgt53/iPhone1,2_2.0_5A347_Restore.ipsw iPhone1,2_2.0_5A347_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;af9506ca0034e462674f9f59c5406f159eaf9fc1&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 235,957,125&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| 01.48.02&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5134.20080729.Q2W3E/iPhone1,2_2.0.1_5B108_Restore.ipsw iPhone1,2_2.0.1_5B108_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e81c7ac7e334a3e9d81b3b47894bfaa1ec495482&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 261,224,227&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| 02.08.01&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5241.20080818.t5Fv3/iPhone1,2_2.0.2_5C1_Restore.ipsw iPhone1,2_2.0.2_5C1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;bef7fef954293046420fbcf947379839178a195b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 260,761,030&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F136&lt;br /&gt;
| 02.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5198.20080909.K3294/iPhone1,2_2.1_5F136_Restore.ipsw iPhone1,2_2.1_5F136_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c6957dcbf2a95ccfd6dce374a727b1b7700a9043&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 249,341,655&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| 02.28.00&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5778.20081120.Aqw4R/iPhone1,2_2.2_5G77_Restore.ipsw iPhone1,2_2.2_5G77_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f67f8b2b842428bf89456cda0c2d5cf954d111a4&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 258,342,348&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| 02.30.03&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5828.20090127.aQLi8/iPhone1,2_2.2.1_5H11_Restore.ipsw iPhone1,2_2.2.1_5H11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;e0098e6fab5c90b59e067e03ae3ccd4a7cd0f39c&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (Upgrade to 04.26.08)}}&lt;br /&gt;
| 258,359,073&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3G)|Kirkwood 7A341]]&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6578.20090617.VfgtU/iPhone1,2_3.0_7A341_Restore.ipsw iPhone1,2_3.0_7A341_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;94f1fb43de12bff0f168ce690b7e794cc6220ae3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (with [[ultrasn0w]])}}&lt;br /&gt;
| 241,229,233&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| Kirkwood 7A400&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6972.20090731.Zx3Rr/iPhone1,2_3.0.1_7A400_Restore.ipsw  iPhone1,2_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a148ff39fa4dea499e7a9dd007b63e90c4f56666&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 241,274,617&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3G)|Northstar 7C144]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6600.20090909.AwndZ/iPhone1,2_3.1_7C144_Restore.ipsw iPhone1,2_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b3b3c148170b012012278efda9ff5c38282d559&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no|No (Though you can stay at 04.26.08)}}&lt;br /&gt;
| 253,361,339&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7265.20091008.Xsd32/iPhone1,2_3.1.2_7D11_Restore.ipsw iPhone1,2_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;b1a6ab2771bb5da372ba75a8fa3e1d72b71359d0&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 253,340,786&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[iPhone2,1|iPhone 3GS]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;65&amp;quot;| [[Baseband]]&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;80&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;125&amp;quot;| Can be [[unlock|unlocked]] OTB?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPhone 3GS)|Kirkwood 7A341]]&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6582.20090617.LlI87/iPhone2,1_3.0_7A341_Restore.ipsw iPhone2,1_3.0_7A341_Restore.ipsw] &lt;br /&gt;
| &amp;lt;code&amp;gt;d8534408c8679c830fd0c4e36ef9762c11ef73df&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Yes (with [[ultrasn0w]] or [[purplesn0w]])}}&lt;br /&gt;
| 312,292,933&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| Kirkwood 7A400&lt;br /&gt;
| 04.26.08&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6976.20090731.Vgbt5/iPhone2,1_3.0.1_7A400_Restore.ipsw  iPhone2,1_3.0.1_7A400_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;30006575af931e3da0521febace005152cdb8853&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 312,330,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| [[Northstar 7C144 (iPhone 3GS)|Northstar 7C144]]&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-6609.20090909.mwws4/iPhone2,1_3.1_7C144_Restore.ipsw  iPhone2,1_3.1_7C144_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;527c74f87588afa1d69c1e2c08eedc88f113013a&amp;lt;/code&amp;gt;&lt;br /&gt;
| Installed on phones produced week 37.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no|No (Though you can stay at 04.26.08)}}&lt;br /&gt;
| 321,011,474&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| 05.11.07&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7270.20091008.phn32/iPhone2,1_3.1.2_7D11_Restore.ipsw iPhone2,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;6998bb7d9e869b2d89a08853312f9457d070fb1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes|Yes (with [[blackra1n]])}}&lt;br /&gt;
| {{no|No (Though you can stay at 04.26.08)}}&lt;br /&gt;
| 321,015,700&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N45ap|iPod touch (1st generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;208&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Snowbird 3A100a&lt;br /&gt;
| No download available&lt;br /&gt;
|&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Snowbird 3A101a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3882.20070910.N8uyT/iPod1,1_1.1_3A101a_Restore.ipsw iPod1,1_1.1_3A101a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9b0d83c7f8b4328174a3f31e0e93f60e591ae143&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,890,186&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Snowbird 3A110a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3932.20070927.p23dD/iPod1,1_1.1.1_3A110a_Restore.ipsw iPod1,1_1.1.1_3A110a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;84bbc6ea8bf29745195bc9926c1874f7c2a36f32&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 157,906,686&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oktoberfest 3B48b&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4036.20071107.9g3DF/iPod1,1_1.1.2_3B48b_Restore.ipsw iPod1,1_1.1.2_3B48b_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;108d8ffe9ea75e61cd5e57170ad388b7fa00d923&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 165,567,897&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Little Bear 4A93&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-4060.20080115.9Iuh5/iPod1,1_1.1.3_4A93_Restore.ipsw iPod1,1_1.1.3_4A93_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;8dca23eec69d5ae58fbf3d4a23276e46cbb2e3c6&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,511,411&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.4&lt;br /&gt;
| Little Bear 4A102&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4312.20080226.Btu45/iPod1,1_1.1.4_4A102_Restore.ipsw iPod1,1_1.1.4_4A102_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c148d1eb1c979bb6434175411d4a372103a4fdd2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,589&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.5&lt;br /&gt;
| Little Bear 4B1&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4841.20080714.bgy8O/iPod1,1_1.1.5_4B1_Restore.ipsw iPod1,1_1.1.5_4B1_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;1b818911316e4248ee01d3ec67f9d39afc3db240&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 173,519,637&lt;br /&gt;
|-&lt;br /&gt;
| 2.0&lt;br /&gt;
| Big Bear 5A347&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;ae82798e85f9953b0f4798bad36187cb020c9d22&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 233,409,573&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| Big Bear 5B108&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;a81b6e7af4b85ef436d047f9da57c0f694d8964a&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,660,321&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| Big Bear 5C1&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c8b6f9fefa3f3777c56285dfe4c735b1e08a81a2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 258,201,218&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Sugar Bowl 5F137&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc7f6d0972927df502ffca47438ca75dcccffaf3&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 251,155,156&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;081a7de363230fb38d0ce092cbbe42f2a50c8a5f&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,186,851&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;fc69be9e421bc0630567184506ab771f6b7ef68b&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 260,166,688&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [http://tier.pargon.nl/ipod/iPod1,1_3.0_7A341_Restore.ipsw.html Kirkwood 7A341]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;dff2bd14931225908a360fb8e60a336f17d2dd6d&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 242,458,552&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [http://tier.pargon.nl/ipod/iPod1,1_3.1.1_7C145_Restore.ipsw.html Northstar 7C145]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;c6270780c166db4c9f4f0a7fa945754a1f9fe7e8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 249,755,862&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| [http://tier.pargon.nl/ipod/iPod1,1_3.1.2_7D11_Restore.ipsw.html Northstar 7D11]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;7367dd9ba58a3b9777307368a0128e696fdfc9a6&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| Yes, but not yet released&lt;br /&gt;
| 249,780,497&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N72ap|iPod touch (2nd generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;208&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.1&lt;br /&gt;
| [[Sugar Bowl 5F138]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-5494.20080909.8i9o0/iPod2,1_2.1.1_5F138_Restore.ipsw iPod2,1_2.1.1_5F138_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;c3c700be49ad227d1152188e7c1e46b8958fd1e4&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 282,083,944&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Timberline 5G77a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-5358.20081120.Gtghy/iPod2,1_2.2_5G77a_Restore.ipsw iPod2,1_2.2_5G77a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;34a0a489605f34d6cc6c9954edcaaf9a050deedc&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,123,491&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.1&lt;br /&gt;
| SUTimberline 5H11a&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5863.20090127.rt56K/iPod2,1_2.2.1_5H11a_Restore.ipsw iPod2,1_2.2.1_5H11a_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;9af5625ea34acdd8abeb6fce71a72651d0c815d5&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 291,140,244&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| [[Kirkwood 7A341 (iPod touch 2G)|Kirkwood 7A341]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;0f7fc76d9b9aa826b5ab14be9821a315d3d9dc42&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3.0+ is a paid upgrade series&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 270,315,364&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 2G)|Northstar 7C145]]&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e0d8800a4fc7cc5be6976ddbceb43c2d2a7120d7&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}, if upgraded from 3.0&lt;br /&gt;
| 277,753,989&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| Download Link Prohibited&lt;br /&gt;
| &amp;lt;code&amp;gt;e7c83d4a5baec0e81816ae1cd1caf9a4dc38ebf0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}} &lt;br /&gt;
| 277,794,671&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===[[N18AP|iPod touch (3rd generation)]]===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: smaller; text-align: center; width: auto; table-layout: fixed; border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;50&amp;quot;| Version&lt;br /&gt;
!width=&amp;quot;168&amp;quot;| Build&lt;br /&gt;
!width=&amp;quot;200&amp;quot;| IPSW Download URL&lt;br /&gt;
!width=&amp;quot;235&amp;quot;| SHA1 Hash&lt;br /&gt;
!width=&amp;quot;150&amp;quot;| Comments&lt;br /&gt;
!width=&amp;quot;208&amp;quot;| Can be [[jailbreak|jailbroken]]?&lt;br /&gt;
!width=&amp;quot;70&amp;quot;| File Size&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C145]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-7163.20090909.NtstR/iPod3,1_3.1.1_7C145_Restore.ipsw iPod3,1_3.1.1_7C145_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;a3eddbe2cf77858bae7087dc8b2035f0d3097e57&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initial shipment.&lt;br /&gt;
| style=&amp;quot;background:yellow; color:black;&amp;quot; class=&amp;quot;table-yes&amp;quot; | Yes, but not yet released&lt;br /&gt;
| 311,702,789&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| [[Northstar 7C145 (iPod touch 3G)|Northstar 7C146]]&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7238.20090918.23GhT/iPod3,1_3.1.1_7C146_Restore.ipsw iPod3,1_3.1.1_7C146_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;f66a7286b261137f25ddbbd84047f9a7ea181904&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background:yellow; color:black;&amp;quot; class=&amp;quot;table-yes&amp;quot; | Yes, but not yet released&lt;br /&gt;
| 311,690,768&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.2&lt;br /&gt;
| Northstar 7D11&lt;br /&gt;
| [http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7271.20091008.Tch23/iPod3,1_3.1.2_7D11_Restore.ipsw iPod3,1_3.1.2_7D11_Restore.ipsw]&lt;br /&gt;
| &amp;lt;code&amp;gt;02dcee28d788d594a2939ab564f4f183af6ccdf2&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| {{yes}}, but only tethered one&lt;br /&gt;
| 311,740,034&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[VFDecrypt Keys]]&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
*[http://www.trejan.com/projects/ipod/ Firmware List]&lt;br /&gt;
*[http://pastebin.ca/1209360 A link of interest...]&lt;/div&gt;</summary>
		<author><name>Redart</name></author>
		
	</entry>
</feed>