<?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=Gizmoloon</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=Gizmoloon"/>
	<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/wiki/Special:Contributions/Gizmoloon"/>
	<updated>2026-05-25T11:40:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Gizmoloon&amp;diff=33112</id>
		<title>User:Gizmoloon</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Gizmoloon&amp;diff=33112"/>
		<updated>2013-07-25T15:14:28Z</updated>

		<summary type="html">&lt;p&gt;Gizmoloon: Created page with &amp;quot;I'll write something here when I both have the time, and can format it correctly.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'll write something here when I both have the time, and can format it correctly.&lt;/div&gt;</summary>
		<author><name>Gizmoloon</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=PurpleRestore&amp;diff=32931</id>
		<title>PurpleRestore</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=PurpleRestore&amp;diff=32931"/>
		<updated>2013-07-19T20:37:14Z</updated>

		<summary type="html">&lt;p&gt;Gizmoloon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| name                   = PurpleRestore&lt;br /&gt;
| title                  = &lt;br /&gt;
| logo                   = [[File:PurpleRestore logo.png]]&lt;br /&gt;
| screenshot             = [[File:PurpleRestore106.png|300px]]&lt;br /&gt;
| caption                = PurpleRestore 106.00 (10B141)&lt;br /&gt;
| collapsible            = &lt;br /&gt;
| author                 = Apple Inc.&lt;br /&gt;
| developer              = Apple Inc.&lt;br /&gt;
| released               = &lt;br /&gt;
| discontinued           = &lt;br /&gt;
| latest release version = 106.00&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(latest ''known'' version)&amp;lt;/small&amp;gt;&lt;br /&gt;
| latest release date    = &lt;br /&gt;
| latest preview version = &lt;br /&gt;
| latest preview date    = &lt;br /&gt;
| programming language   = &lt;br /&gt;
| operating system       = [[wikipedia:OS X|OS X]]&lt;br /&gt;
| platform               = &lt;br /&gt;
| size                   = 4,096,348 bytes [APP] &amp;lt;small&amp;gt;(106.00)&amp;lt;/small&amp;gt; &lt;br /&gt;
| language               = [[wikipedia:English language|English]]&lt;br /&gt;
| status                 = &lt;br /&gt;
| genre                  = ?&lt;br /&gt;
| license                = [[wikipedia:Proprietary software|Closed source]]&lt;br /&gt;
| website                = &lt;br /&gt;
}}&lt;br /&gt;
{{float toc|left}}&lt;br /&gt;
'''PurpleRestore''' is a tool made by Apple and is used for flashing [[iDevices]]. Barely anything is known about it except that it provides far more customization than [[iTunes]]. PurpleRestore-106.00 (build 11A437) is the latest known version which is capable of detecting devices running the latest iOS 7 beta. Little is currently known about which versions it &amp;quot;supports&amp;quot; for restoring as such.&lt;br /&gt;
&lt;br /&gt;
Like [[iTunes]], [[PurpleRestore]] communicates with iDevices using a [[usbmux]] connection.&lt;br /&gt;
&lt;br /&gt;
== Restore Bundles==&lt;br /&gt;
Unlike iTunes, PurpleRestore doesn't use [[IPSW File Format|IPSW]] files to restore devices. It uses &amp;quot;Restore Bundles&amp;quot; which can be obtained from &amp;lt;code&amp;gt;afp://fieldgoal.apple.com/RestoreImages/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;afp://endzone.apple.com/OldRestoreImages/&amp;lt;/code&amp;gt;. Unfortunately, the &amp;lt;code&amp;gt;afp&amp;lt;/code&amp;gt; protocol can only be accessed through Apple's internal VPN.&lt;br /&gt;
&lt;br /&gt;
However, you can create your own bundles by extracting an IPSW into a folder. The downside is that you don't get access to any internal/debugging stuff since it is a public firmware.&lt;br /&gt;
&lt;br /&gt;
== Restore Components ==&lt;br /&gt;
Restore Components has several options:&lt;br /&gt;
* '''Restore Bundle''': Specify the bundle to use in restoring&lt;br /&gt;
* '''Firmware Directory''': Specify the folder where the [[LLB]], [[iBoot]], etc. [[IMG3 File Format|IMG3]] files are located.&lt;br /&gt;
* '''Ramdisk Image''': Specify a [[ramdisk]] to be used (i.e. [[Restore Ramdisk|restore]] or [[Update Ramdisk|update]] ramdisk)&lt;br /&gt;
* '''DFU''': Specify what tools to upload based on a selection of &amp;quot;Debug&amp;quot;, &amp;quot;Development&amp;quot;, or &amp;quot;Release&amp;quot;. A specific file can also be selected.&lt;br /&gt;
&lt;br /&gt;
== Restore Operations ==&lt;br /&gt;
Restore Operations contains the most options to configure. These may also be the most useful ones.&lt;br /&gt;
&lt;br /&gt;
* '''Hardware Readiness'''&lt;br /&gt;
** '''Minimum Battery Charge (mV)''': This value controls the minimum charge level at which the restore will be allowed to continue. Below this threshold, we either wait to charge (if we're charging) or fail (if we're not charging).  If this option is not specified, a default value is used (currently 3.8V). Setting this option to 0 bypasses all battery level checks.&lt;br /&gt;
** '''Wait for Minimum Charge''': If the current voltage is below the minimum level, then the default behavior is to let the device charge and then continue. This option overrides that behavior when false.&lt;br /&gt;
** '''Wait for Storage Device''': Controls whether the restore waits for the storage device /dev/disk0 to be available before the restore is initiated.&lt;br /&gt;
** '''Allow Untethered Restore''': Permit the restore to run untethered (not connected to a host).  The result of specifying this option when the restore needs data from the host (for instance, when flashing NOR) is undefined (but probably bad). If this option is specified and the device remains tethered, things should proceed as usual.&lt;br /&gt;
* '''Storage Media'''&lt;br /&gt;
** '''Use LwVM''': Controls whether the device is formatted for LwVM (if supported).&lt;br /&gt;
** '''Repartition''': Controls whether a new partition map is created on the device.&lt;br /&gt;
** '''System Partition Size (MiB)''': Specifies the size (in mebibytes) that is desired for the system partition. Because the partition size can only be changed when creating a new partition map, this option is only relevant when used in conjunction with repartition. A size of 0 indicates that the restore library should choose a suitable size for you, based on the specific restore bundle and image being used if possible.&lt;br /&gt;
** '''Content Protection Type''': Controls the type of data protection used on the device.&lt;br /&gt;
** '''Low-Level Erase''': Do a low level erase (wipe with null or random data) of the entire storage device prior to restoring.&lt;br /&gt;
* '''Restore System Partition'''&lt;br /&gt;
** '''System Image''': Determines which type of system image to restore, or which file to use for the system image.&lt;br /&gt;
** '''Kernel Cache Type''': This option controls the kernel cache that gets installed on the device.&lt;br /&gt;
* '''Baseband'''&lt;br /&gt;
** '''Update Baseband''': Controls whether the [[baseband]] and baseband bootloader are updated as part of the restore.&lt;br /&gt;
** '''Force Update''': The baseband update is skipped when the existing firmware matches the available firmware. In some cases, it is desirable to force the firmware update to occur, regardless of what is currently on there. This option, when set to true, forces the update to be attempted.&lt;br /&gt;
&lt;br /&gt;
== Restore OS ==&lt;br /&gt;
Restore OS options allow you to specify the following:&lt;br /&gt;
* '''Restore Boot-Args''':  Boot-Args used when the Restore OS is loaded. By default those arguments are used: &amp;quot;debug=0x14e serial=3 rd=md0 nand-enable-reformat=1 -progress&amp;quot;&lt;br /&gt;
* '''Firmware Type:''' Specify the firmware which should be flashed when restoring. This can either be &amp;quot;Debug&amp;quot;, &amp;quot;Factory FA&amp;quot;, &amp;quot;Factory SA&amp;quot;, &amp;quot;Firmware Development&amp;quot; or &amp;quot;Production&amp;quot;.&lt;br /&gt;
* '''Boot Image Type:''' Can be &amp;quot;Internal&amp;quot;, &amp;quot;User or Internal&amp;quot;, &amp;quot;User&amp;quot; or &amp;quot;Update&amp;quot;.&lt;br /&gt;
* '''Boot Kernel Cache:''' Specify whether the &amp;quot;Production&amp;quot; or &amp;quot;Development&amp;quot; kernel cache should be used.&lt;br /&gt;
&lt;br /&gt;
== Restore Settings ==&lt;br /&gt;
By default, PurpleRestore comes with two pre-made restore settings. &amp;quot;Erase Install&amp;quot; and &amp;quot;Update Install&amp;quot;. Those restore settings are [[PLIST File Format|plist]] files that define the options PurpleRestore will use when restoring a device.&lt;br /&gt;
* '''Erase Install''': Repartition the media and erase all data before restoring. Includes all internal development tools and updates flash and the baseband by default.&lt;br /&gt;
* '''Update Install''': Includes all internal development tools and updates flash and the baseband by default.&lt;br /&gt;
&lt;br /&gt;
== Reverse Engineering ==&lt;br /&gt;
This specific code is from [[iTunes]] for OS X. It detects if PurpleRestore is running so that it does not interfere with any operations that PurpleRestore is performing.&lt;br /&gt;
&lt;br /&gt;
 Off  Virt Adr Instruction    AT&amp;amp;T Syntax               Intel Syntax          Comment&lt;br /&gt;
 &lt;br /&gt;
 +354 003d7808 c70424bc01d700 movl  $0x00d701bc, (%esp) mov [esp], 0x00d701bc ; CFSTR(&amp;quot;com.apple.PurpleRestore&amp;quot;)&lt;br /&gt;
 +361 003d780f e80c65c3ff     calll 0x10000dd20         call 0x10000dd20      ; is specified bundle running&lt;br /&gt;
 +366 003d7814 84c0           testb %al,%al             test al, al&lt;br /&gt;
 +368 003d7816 7409           jz    0x003d7821          jz short 0x003d7821   ; if so, PurpleRestore is running&lt;br /&gt;
 +370 003d7818 c704246c8ba400 movl  $0x00a48b6c, (%esp) mov [esp], 0x00a48b6c ; so ignore device,&lt;br /&gt;
 +377 003d781f ebd3           jmp   0x003d77f4          jmp short 0x003d77f4  ; and jump back above loop for next device&lt;br /&gt;
 +379 003d7821 8d5de0         leal  0xe0(%ebp), %ebx    lea ebx, [ebp + 0xe0]&lt;br /&gt;
 +382 003d7824 895c2404       movl  %ebx, 0x04(%esp)    mov [esp + 4], ebx&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[iTunes]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Gizmoloon</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=PurpleRestore&amp;diff=32887</id>
		<title>PurpleRestore</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=PurpleRestore&amp;diff=32887"/>
		<updated>2013-07-12T18:50:02Z</updated>

		<summary type="html">&lt;p&gt;Gizmoloon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| name                   = PurpleRestore&lt;br /&gt;
| title                  = &lt;br /&gt;
| logo                   = [[File:PurpleRestore logo.png]]&lt;br /&gt;
| screenshot             = [[File:PurpleRestore10A523.png|300px]]&lt;br /&gt;
| caption                = PurpleRestore 850.44&lt;br /&gt;
| collapsible            = &lt;br /&gt;
| author                 = Apple Inc.&lt;br /&gt;
| developer              = Apple Inc.&lt;br /&gt;
| released               = &lt;br /&gt;
| discontinued           = &lt;br /&gt;
| latest release version = 850.44&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(latest ''known'' version)&amp;lt;/small&amp;gt;&lt;br /&gt;
| latest release date    = &lt;br /&gt;
| latest preview version = &lt;br /&gt;
| latest preview date    = &lt;br /&gt;
| programming language   = &lt;br /&gt;
| operating system       = [[wikipedia:OS X|OS X]]&lt;br /&gt;
| platform               = &lt;br /&gt;
| size                   = 3,737,449 bytes [APP] &amp;lt;small&amp;gt;(850.44)&amp;lt;/small&amp;gt; &lt;br /&gt;
| language               = [[wikipedia:English language|English]]&lt;br /&gt;
| status                 = &lt;br /&gt;
| genre                  = ?&lt;br /&gt;
| license                = [[wikipedia:Proprietary software|Closed source]]&lt;br /&gt;
| website                = &lt;br /&gt;
}}&lt;br /&gt;
{{float toc|left}}&lt;br /&gt;
'''PurpleRestore''' is a tool made by Apple and is used for flashing [[iDevices]]. Barely anything is known about it except that it provides far more customization than [[iTunes]]. PurpleRestore-850.44 is the latest known version which is capable of detecting devices running the latest iOS 7 beta. Little is currently known about which versions it &amp;quot;supports&amp;quot; for restoring as such.&lt;br /&gt;
&lt;br /&gt;
Like [[iTunes]], [[PurpleRestore]] communicates with iDevices using a [[usbmux]] connection.&lt;br /&gt;
&lt;br /&gt;
== Restore Bundles==&lt;br /&gt;
Unlike iTunes, PurpleRestore doesn't use [[IPSW File Format|IPSW]] files to restore devices. It uses &amp;quot;Restore Bundles&amp;quot; which can be obtained from &amp;lt;code&amp;gt;afp://fieldgoal.apple.com/RestoreImages/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;afp://endzone.apple.com/OldRestoreImages/&amp;lt;/code&amp;gt;. Unfortunately, the &amp;lt;code&amp;gt;afp&amp;lt;/code&amp;gt; protocol can only be accessed through Apple's internal VPN.&lt;br /&gt;
&lt;br /&gt;
However, you can create your own bundles by extracting an IPSW into a folder. The downside is that you don't get access to any internal/debugging stuff since it is a public firmware.&lt;br /&gt;
&lt;br /&gt;
== Restore Components ==&lt;br /&gt;
Restore Components has several options:&lt;br /&gt;
* '''Restore Bundle''': Specify the bundle to use in restoring&lt;br /&gt;
* '''Firmware Directory''': Specify the folder where the [[LLB]], [[iBoot]], etc. [[IMG3 File Format|IMG3]] files are located.&lt;br /&gt;
* '''Ramdisk Image''': Specify a [[ramdisk]] to be used (i.e. [[Restore Ramdisk|restore]] or [[Update Ramdisk|update]] ramdisk)&lt;br /&gt;
* '''DFU''': Specify what tools to upload based on a selection of &amp;quot;Debug&amp;quot;, &amp;quot;Development&amp;quot;, or &amp;quot;Release&amp;quot;. A specific file can also be selected.&lt;br /&gt;
&lt;br /&gt;
== Restore Operations ==&lt;br /&gt;
Restore Operations contains the most options to configure. These may also be the most useful ones.&lt;br /&gt;
&lt;br /&gt;
* '''Hardware Readiness'''&lt;br /&gt;
** '''Minimum Battery Charge (mV)''': This value controls the minimum charge level at which the restore will be allowed to continue. Below this threshold, we either wait to charge (if we're charging) or fail (if we're not charging).  If this option is not specified, a default value is used (currently 3.8V). Setting this option to 0 bypasses all battery level checks.&lt;br /&gt;
** '''Wait for Minimum Charge''': If the current voltage is below the minimum level, then the default behavior is to let the device charge and then continue. This option overrides that behavior when false.&lt;br /&gt;
** '''Wait for Storage Device''': Controls whether the restore waits for the storage device /dev/disk0 to be available before the restore is initiated.&lt;br /&gt;
** '''Allow Untethered Restore''': Permit the restore to run untethered (not connected to a host).  The result of specifying this option when the restore needs data from the host (for instance, when flashing NOR) is undefined (but probably bad). If this option is specified and the device remains tethered, things should proceed as usual.&lt;br /&gt;
* '''Storage Media'''&lt;br /&gt;
** '''Use LwVM''': Controls whether the device is formatted for LwVM (if supported).&lt;br /&gt;
** '''Repartition''': Controls whether a new partition map is created on the device.&lt;br /&gt;
** '''System Partition Size (MiB)''': Specifies the size (in mebibytes) that is desired for the system partition. Because the partition size can only be changed when creating a new partition map, this option is only relevant when used in conjunction with repartition. A size of 0 indicates that the restore library should choose a suitable size for you, based on the specific restore bundle and image being used if possible.&lt;br /&gt;
** '''Content Protection Type''': Controls the type of data protection used on the device.&lt;br /&gt;
** '''Low-Level Erase''': Do a low level erase (wipe with null or random data) of the entire storage device prior to restoring.&lt;br /&gt;
* '''Restore System Partition'''&lt;br /&gt;
** '''System Image''': Determines which type of system image to restore, or which file to use for the system image.&lt;br /&gt;
** '''Kernel Cache Type''': This option controls the kernel cache that gets installed on the device.&lt;br /&gt;
* '''Baseband'''&lt;br /&gt;
** '''Update Baseband''': Controls whether the [[baseband]] and baseband bootloader are updated as part of the restore.&lt;br /&gt;
** '''Force Update''': The baseband update is skipped when the existing firmware matches the available firmware. In some cases, it is desirable to force the firmware update to occur, regardless of what is currently on there. This option, when set to true, forces the update to be attempted.&lt;br /&gt;
&lt;br /&gt;
== Restore OS ==&lt;br /&gt;
Restore OS options allow you to specify the following:&lt;br /&gt;
* '''Restore Boot-Args''':  Boot-Args used when the Restore OS is loaded. By default those arguments are used: &amp;quot;debug=0x14e serial=3 rd=md0 nand-enable-reformat=1 -progress&amp;quot;&lt;br /&gt;
* '''Firmware Type:''' Specify the firmware which should be flashed when restoring. This can either be &amp;quot;Debug&amp;quot;, &amp;quot;Factory FA&amp;quot;, &amp;quot;Factory SA&amp;quot;, &amp;quot;Firmware Development&amp;quot; or &amp;quot;Production&amp;quot;.&lt;br /&gt;
* '''Boot Image Type:''' Can be &amp;quot;Internal&amp;quot;, &amp;quot;User or Internal&amp;quot;, &amp;quot;User&amp;quot; or &amp;quot;Update&amp;quot;.&lt;br /&gt;
* '''Boot Kernel Cache:''' Specify whether the &amp;quot;Production&amp;quot; or &amp;quot;Development&amp;quot; kernel cache should be used.&lt;br /&gt;
&lt;br /&gt;
== Restore Settings ==&lt;br /&gt;
By default, PurpleRestore comes with two pre-made restore settings. &amp;quot;Erase Install&amp;quot; and &amp;quot;Update Install&amp;quot;. Those restore settings are [[PLIST File Format|plist]] files that define the options PurpleRestore will use when restoring a device.&lt;br /&gt;
* '''Erase Install''': Repartition the media and erase all data before restoring. Includes all internal development tools and updates flash and the baseband by default.&lt;br /&gt;
* '''Update Install''': Includes all internal development tools and updates flash and the baseband by default.&lt;br /&gt;
&lt;br /&gt;
== Reverse Engineering ==&lt;br /&gt;
This specific code is from [[iTunes]] for OS X. It detects if PurpleRestore is running so that it does not interfere with any operations that PurpleRestore is performing.&lt;br /&gt;
&lt;br /&gt;
 Off  Virt Adr Instruction    AT&amp;amp;T Syntax               Intel Syntax          Comment&lt;br /&gt;
 &lt;br /&gt;
 +354 003d7808 c70424bc01d700 movl  $0x00d701bc, (%esp) mov [esp], 0x00d701bc ; CFSTR(&amp;quot;com.apple.PurpleRestore&amp;quot;)&lt;br /&gt;
 +361 003d780f e80c65c3ff     calll 0x10000dd20         call 0x10000dd20      ; is specified bundle running&lt;br /&gt;
 +366 003d7814 84c0           testb %al,%al             test al, al&lt;br /&gt;
 +368 003d7816 7409           jz    0x003d7821          jz short 0x003d7821   ; if so, PurpleRestore is running&lt;br /&gt;
 +370 003d7818 c704246c8ba400 movl  $0x00a48b6c, (%esp) mov [esp], 0x00a48b6c ; so ignore device,&lt;br /&gt;
 +377 003d781f ebd3           jmp   0x003d77f4          jmp short 0x003d77f4  ; and jump back above loop for next device&lt;br /&gt;
 +379 003d7821 8d5de0         leal  0xe0(%ebp), %ebx    lea ebx, [ebp + 0xe0]&lt;br /&gt;
 +382 003d7824 895c2404       movl  %ebx, 0x04(%esp)    mov [esp + 4], ebx&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[iTunes]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Gizmoloon</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=PurpleRestore&amp;diff=32886</id>
		<title>PurpleRestore</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=PurpleRestore&amp;diff=32886"/>
		<updated>2013-07-12T18:49:19Z</updated>

		<summary type="html">&lt;p&gt;Gizmoloon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| name                   = PurpleRestore&lt;br /&gt;
| title                  = &lt;br /&gt;
| logo                   = [[File:PurpleRestore logo.png]]&lt;br /&gt;
| screenshot             = [[File:PurpleRestore10A523.png|300px]]&lt;br /&gt;
| caption                = PurpleRestore 850.44&lt;br /&gt;
| collapsible            = &lt;br /&gt;
| author                 = Apple Inc.&lt;br /&gt;
| developer              = Apple Inc.&lt;br /&gt;
| released               = &lt;br /&gt;
| discontinued           = &lt;br /&gt;
| latest release version = 850.44&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(latest ''known'' version)&amp;lt;/small&amp;gt;&lt;br /&gt;
| latest release date    = &lt;br /&gt;
| latest preview version = &lt;br /&gt;
| latest preview date    = &lt;br /&gt;
| programming language   = &lt;br /&gt;
| operating system       = [[wikipedia:OS X|OS X]]&lt;br /&gt;
| platform               = &lt;br /&gt;
| size                   = 3,397,535 bytes [APP] &amp;lt;small&amp;gt;(783.12)&amp;lt;/small&amp;gt; &lt;br /&gt;
| language               = [[wikipedia:English language|English]]&lt;br /&gt;
| status                 = &lt;br /&gt;
| genre                  = ?&lt;br /&gt;
| license                = [[wikipedia:Proprietary software|Closed source]]&lt;br /&gt;
| website                = &lt;br /&gt;
}}&lt;br /&gt;
{{float toc|left}}&lt;br /&gt;
'''PurpleRestore''' is a tool made by Apple and is used for flashing [[iDevices]]. Barely anything is known about it except that it provides far more customization than [[iTunes]]. PurpleRestore-850.44 is the latest known version which is capable of detecting devices running the latest iOS 7 beta. Little is currently known about which versions it &amp;quot;supports&amp;quot; for restoring as such.&lt;br /&gt;
&lt;br /&gt;
Like [[iTunes]], [[PurpleRestore]] communicates with iDevices using a [[usbmux]] connection.&lt;br /&gt;
&lt;br /&gt;
== Restore Bundles==&lt;br /&gt;
Unlike iTunes, PurpleRestore doesn't use [[IPSW File Format|IPSW]] files to restore devices. It uses &amp;quot;Restore Bundles&amp;quot; which can be obtained from &amp;lt;code&amp;gt;afp://fieldgoal.apple.com/RestoreImages/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;afp://endzone.apple.com/OldRestoreImages/&amp;lt;/code&amp;gt;. Unfortunately, the &amp;lt;code&amp;gt;afp&amp;lt;/code&amp;gt; protocol can only be accessed through Apple's internal VPN.&lt;br /&gt;
&lt;br /&gt;
However, you can create your own bundles by extracting an IPSW into a folder. The downside is that you don't get access to any internal/debugging stuff since it is a public firmware.&lt;br /&gt;
&lt;br /&gt;
== Restore Components ==&lt;br /&gt;
Restore Components has several options:&lt;br /&gt;
* '''Restore Bundle''': Specify the bundle to use in restoring&lt;br /&gt;
* '''Firmware Directory''': Specify the folder where the [[LLB]], [[iBoot]], etc. [[IMG3 File Format|IMG3]] files are located.&lt;br /&gt;
* '''Ramdisk Image''': Specify a [[ramdisk]] to be used (i.e. [[Restore Ramdisk|restore]] or [[Update Ramdisk|update]] ramdisk)&lt;br /&gt;
* '''DFU''': Specify what tools to upload based on a selection of &amp;quot;Debug&amp;quot;, &amp;quot;Development&amp;quot;, or &amp;quot;Release&amp;quot;. A specific file can also be selected.&lt;br /&gt;
&lt;br /&gt;
== Restore Operations ==&lt;br /&gt;
Restore Operations contains the most options to configure. These may also be the most useful ones.&lt;br /&gt;
&lt;br /&gt;
* '''Hardware Readiness'''&lt;br /&gt;
** '''Minimum Battery Charge (mV)''': This value controls the minimum charge level at which the restore will be allowed to continue. Below this threshold, we either wait to charge (if we're charging) or fail (if we're not charging).  If this option is not specified, a default value is used (currently 3.8V). Setting this option to 0 bypasses all battery level checks.&lt;br /&gt;
** '''Wait for Minimum Charge''': If the current voltage is below the minimum level, then the default behavior is to let the device charge and then continue. This option overrides that behavior when false.&lt;br /&gt;
** '''Wait for Storage Device''': Controls whether the restore waits for the storage device /dev/disk0 to be available before the restore is initiated.&lt;br /&gt;
** '''Allow Untethered Restore''': Permit the restore to run untethered (not connected to a host).  The result of specifying this option when the restore needs data from the host (for instance, when flashing NOR) is undefined (but probably bad). If this option is specified and the device remains tethered, things should proceed as usual.&lt;br /&gt;
* '''Storage Media'''&lt;br /&gt;
** '''Use LwVM''': Controls whether the device is formatted for LwVM (if supported).&lt;br /&gt;
** '''Repartition''': Controls whether a new partition map is created on the device.&lt;br /&gt;
** '''System Partition Size (MiB)''': Specifies the size (in mebibytes) that is desired for the system partition. Because the partition size can only be changed when creating a new partition map, this option is only relevant when used in conjunction with repartition. A size of 0 indicates that the restore library should choose a suitable size for you, based on the specific restore bundle and image being used if possible.&lt;br /&gt;
** '''Content Protection Type''': Controls the type of data protection used on the device.&lt;br /&gt;
** '''Low-Level Erase''': Do a low level erase (wipe with null or random data) of the entire storage device prior to restoring.&lt;br /&gt;
* '''Restore System Partition'''&lt;br /&gt;
** '''System Image''': Determines which type of system image to restore, or which file to use for the system image.&lt;br /&gt;
** '''Kernel Cache Type''': This option controls the kernel cache that gets installed on the device.&lt;br /&gt;
* '''Baseband'''&lt;br /&gt;
** '''Update Baseband''': Controls whether the [[baseband]] and baseband bootloader are updated as part of the restore.&lt;br /&gt;
** '''Force Update''': The baseband update is skipped when the existing firmware matches the available firmware. In some cases, it is desirable to force the firmware update to occur, regardless of what is currently on there. This option, when set to true, forces the update to be attempted.&lt;br /&gt;
&lt;br /&gt;
== Restore OS ==&lt;br /&gt;
Restore OS options allow you to specify the following:&lt;br /&gt;
* '''Restore Boot-Args''':  Boot-Args used when the Restore OS is loaded. By default those arguments are used: &amp;quot;debug=0x14e serial=3 rd=md0 nand-enable-reformat=1 -progress&amp;quot;&lt;br /&gt;
* '''Firmware Type:''' Specify the firmware which should be flashed when restoring. This can either be &amp;quot;Debug&amp;quot;, &amp;quot;Factory FA&amp;quot;, &amp;quot;Factory SA&amp;quot;, &amp;quot;Firmware Development&amp;quot; or &amp;quot;Production&amp;quot;.&lt;br /&gt;
* '''Boot Image Type:''' Can be &amp;quot;Internal&amp;quot;, &amp;quot;User or Internal&amp;quot;, &amp;quot;User&amp;quot; or &amp;quot;Update&amp;quot;.&lt;br /&gt;
* '''Boot Kernel Cache:''' Specify whether the &amp;quot;Production&amp;quot; or &amp;quot;Development&amp;quot; kernel cache should be used.&lt;br /&gt;
&lt;br /&gt;
== Restore Settings ==&lt;br /&gt;
By default, PurpleRestore comes with two pre-made restore settings. &amp;quot;Erase Install&amp;quot; and &amp;quot;Update Install&amp;quot;. Those restore settings are [[PLIST File Format|plist]] files that define the options PurpleRestore will use when restoring a device.&lt;br /&gt;
* '''Erase Install''': Repartition the media and erase all data before restoring. Includes all internal development tools and updates flash and the baseband by default.&lt;br /&gt;
* '''Update Install''': Includes all internal development tools and updates flash and the baseband by default.&lt;br /&gt;
&lt;br /&gt;
== Reverse Engineering ==&lt;br /&gt;
This specific code is from [[iTunes]] for OS X. It detects if PurpleRestore is running so that it does not interfere with any operations that PurpleRestore is performing.&lt;br /&gt;
&lt;br /&gt;
 Off  Virt Adr Instruction    AT&amp;amp;T Syntax               Intel Syntax          Comment&lt;br /&gt;
 &lt;br /&gt;
 +354 003d7808 c70424bc01d700 movl  $0x00d701bc, (%esp) mov [esp], 0x00d701bc ; CFSTR(&amp;quot;com.apple.PurpleRestore&amp;quot;)&lt;br /&gt;
 +361 003d780f e80c65c3ff     calll 0x10000dd20         call 0x10000dd20      ; is specified bundle running&lt;br /&gt;
 +366 003d7814 84c0           testb %al,%al             test al, al&lt;br /&gt;
 +368 003d7816 7409           jz    0x003d7821          jz short 0x003d7821   ; if so, PurpleRestore is running&lt;br /&gt;
 +370 003d7818 c704246c8ba400 movl  $0x00a48b6c, (%esp) mov [esp], 0x00a48b6c ; so ignore device,&lt;br /&gt;
 +377 003d781f ebd3           jmp   0x003d77f4          jmp short 0x003d77f4  ; and jump back above loop for next device&lt;br /&gt;
 +379 003d7821 8d5de0         leal  0xe0(%ebp), %ebx    lea ebx, [ebp + 0xe0]&lt;br /&gt;
 +382 003d7824 895c2404       movl  %ebx, 0x04(%esp)    mov [esp + 4], ebx&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[iTunes]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Gizmoloon</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=PurpleRestore&amp;diff=32885</id>
		<title>PurpleRestore</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=PurpleRestore&amp;diff=32885"/>
		<updated>2013-07-12T18:49:01Z</updated>

		<summary type="html">&lt;p&gt;Gizmoloon: Added a new screenshot and updated information on the known latest version of PurpleRestore.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| name                   = PurpleRestore&lt;br /&gt;
| title                  = &lt;br /&gt;
| logo                   = [[File:PurpleRestore logo.png]]&lt;br /&gt;
| screenshot             = [[File:PurpleRestore10A523.png|300px]]&lt;br /&gt;
| caption                = PurpleRestore 850.44&lt;br /&gt;
| collapsible            = &lt;br /&gt;
| author                 = Apple Inc.&lt;br /&gt;
| developer              = Apple Inc.&lt;br /&gt;
| released               = &lt;br /&gt;
| discontinued           = &lt;br /&gt;
| latest release version = 850.44&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(latest ''known'' version)&amp;lt;/small&amp;gt;&lt;br /&gt;
| latest release date    = &lt;br /&gt;
| latest preview version = &lt;br /&gt;
| latest preview date    = &lt;br /&gt;
| programming language   = &lt;br /&gt;
| operating system       = [[wikipedia:OS X|OS X]]&lt;br /&gt;
| platform               = &lt;br /&gt;
| size                   = 3,397,535 bytes [APP] &amp;lt;small&amp;gt;(783.12)&amp;lt;/small&amp;gt; &lt;br /&gt;
| language               = [[wikipedia:English language|English]]&lt;br /&gt;
| status                 = &lt;br /&gt;
| genre                  = ?&lt;br /&gt;
| license                = [[wikipedia:Proprietary software|Closed source]]&lt;br /&gt;
| website                = &lt;br /&gt;
}}&lt;br /&gt;
{{float toc|left}}&lt;br /&gt;
'''PurpleRestore''' is a tool made by Apple and is used for flashing [[iDevices]]. Barely anything is known about it except that it provides far more customization than [[iTunes]]. PurpleRestore-850.44 is the latest known version which is capable of detecting devices running the latest iOS 7 beta. Little is currently known about which versions is &amp;quot;supports&amp;quot; for restoring as such.&lt;br /&gt;
&lt;br /&gt;
Like [[iTunes]], [[PurpleRestore]] communicates with iDevices using a [[usbmux]] connection.&lt;br /&gt;
&lt;br /&gt;
== Restore Bundles==&lt;br /&gt;
Unlike iTunes, PurpleRestore doesn't use [[IPSW File Format|IPSW]] files to restore devices. It uses &amp;quot;Restore Bundles&amp;quot; which can be obtained from &amp;lt;code&amp;gt;afp://fieldgoal.apple.com/RestoreImages/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;afp://endzone.apple.com/OldRestoreImages/&amp;lt;/code&amp;gt;. Unfortunately, the &amp;lt;code&amp;gt;afp&amp;lt;/code&amp;gt; protocol can only be accessed through Apple's internal VPN.&lt;br /&gt;
&lt;br /&gt;
However, you can create your own bundles by extracting an IPSW into a folder. The downside is that you don't get access to any internal/debugging stuff since it is a public firmware.&lt;br /&gt;
&lt;br /&gt;
== Restore Components ==&lt;br /&gt;
Restore Components has several options:&lt;br /&gt;
* '''Restore Bundle''': Specify the bundle to use in restoring&lt;br /&gt;
* '''Firmware Directory''': Specify the folder where the [[LLB]], [[iBoot]], etc. [[IMG3 File Format|IMG3]] files are located.&lt;br /&gt;
* '''Ramdisk Image''': Specify a [[ramdisk]] to be used (i.e. [[Restore Ramdisk|restore]] or [[Update Ramdisk|update]] ramdisk)&lt;br /&gt;
* '''DFU''': Specify what tools to upload based on a selection of &amp;quot;Debug&amp;quot;, &amp;quot;Development&amp;quot;, or &amp;quot;Release&amp;quot;. A specific file can also be selected.&lt;br /&gt;
&lt;br /&gt;
== Restore Operations ==&lt;br /&gt;
Restore Operations contains the most options to configure. These may also be the most useful ones.&lt;br /&gt;
&lt;br /&gt;
* '''Hardware Readiness'''&lt;br /&gt;
** '''Minimum Battery Charge (mV)''': This value controls the minimum charge level at which the restore will be allowed to continue. Below this threshold, we either wait to charge (if we're charging) or fail (if we're not charging).  If this option is not specified, a default value is used (currently 3.8V). Setting this option to 0 bypasses all battery level checks.&lt;br /&gt;
** '''Wait for Minimum Charge''': If the current voltage is below the minimum level, then the default behavior is to let the device charge and then continue. This option overrides that behavior when false.&lt;br /&gt;
** '''Wait for Storage Device''': Controls whether the restore waits for the storage device /dev/disk0 to be available before the restore is initiated.&lt;br /&gt;
** '''Allow Untethered Restore''': Permit the restore to run untethered (not connected to a host).  The result of specifying this option when the restore needs data from the host (for instance, when flashing NOR) is undefined (but probably bad). If this option is specified and the device remains tethered, things should proceed as usual.&lt;br /&gt;
* '''Storage Media'''&lt;br /&gt;
** '''Use LwVM''': Controls whether the device is formatted for LwVM (if supported).&lt;br /&gt;
** '''Repartition''': Controls whether a new partition map is created on the device.&lt;br /&gt;
** '''System Partition Size (MiB)''': Specifies the size (in mebibytes) that is desired for the system partition. Because the partition size can only be changed when creating a new partition map, this option is only relevant when used in conjunction with repartition. A size of 0 indicates that the restore library should choose a suitable size for you, based on the specific restore bundle and image being used if possible.&lt;br /&gt;
** '''Content Protection Type''': Controls the type of data protection used on the device.&lt;br /&gt;
** '''Low-Level Erase''': Do a low level erase (wipe with null or random data) of the entire storage device prior to restoring.&lt;br /&gt;
* '''Restore System Partition'''&lt;br /&gt;
** '''System Image''': Determines which type of system image to restore, or which file to use for the system image.&lt;br /&gt;
** '''Kernel Cache Type''': This option controls the kernel cache that gets installed on the device.&lt;br /&gt;
* '''Baseband'''&lt;br /&gt;
** '''Update Baseband''': Controls whether the [[baseband]] and baseband bootloader are updated as part of the restore.&lt;br /&gt;
** '''Force Update''': The baseband update is skipped when the existing firmware matches the available firmware. In some cases, it is desirable to force the firmware update to occur, regardless of what is currently on there. This option, when set to true, forces the update to be attempted.&lt;br /&gt;
&lt;br /&gt;
== Restore OS ==&lt;br /&gt;
Restore OS options allow you to specify the following:&lt;br /&gt;
* '''Restore Boot-Args''':  Boot-Args used when the Restore OS is loaded. By default those arguments are used: &amp;quot;debug=0x14e serial=3 rd=md0 nand-enable-reformat=1 -progress&amp;quot;&lt;br /&gt;
* '''Firmware Type:''' Specify the firmware which should be flashed when restoring. This can either be &amp;quot;Debug&amp;quot;, &amp;quot;Factory FA&amp;quot;, &amp;quot;Factory SA&amp;quot;, &amp;quot;Firmware Development&amp;quot; or &amp;quot;Production&amp;quot;.&lt;br /&gt;
* '''Boot Image Type:''' Can be &amp;quot;Internal&amp;quot;, &amp;quot;User or Internal&amp;quot;, &amp;quot;User&amp;quot; or &amp;quot;Update&amp;quot;.&lt;br /&gt;
* '''Boot Kernel Cache:''' Specify whether the &amp;quot;Production&amp;quot; or &amp;quot;Development&amp;quot; kernel cache should be used.&lt;br /&gt;
&lt;br /&gt;
== Restore Settings ==&lt;br /&gt;
By default, PurpleRestore comes with two pre-made restore settings. &amp;quot;Erase Install&amp;quot; and &amp;quot;Update Install&amp;quot;. Those restore settings are [[PLIST File Format|plist]] files that define the options PurpleRestore will use when restoring a device.&lt;br /&gt;
* '''Erase Install''': Repartition the media and erase all data before restoring. Includes all internal development tools and updates flash and the baseband by default.&lt;br /&gt;
* '''Update Install''': Includes all internal development tools and updates flash and the baseband by default.&lt;br /&gt;
&lt;br /&gt;
== Reverse Engineering ==&lt;br /&gt;
This specific code is from [[iTunes]] for OS X. It detects if PurpleRestore is running so that it does not interfere with any operations that PurpleRestore is performing.&lt;br /&gt;
&lt;br /&gt;
 Off  Virt Adr Instruction    AT&amp;amp;T Syntax               Intel Syntax          Comment&lt;br /&gt;
 &lt;br /&gt;
 +354 003d7808 c70424bc01d700 movl  $0x00d701bc, (%esp) mov [esp], 0x00d701bc ; CFSTR(&amp;quot;com.apple.PurpleRestore&amp;quot;)&lt;br /&gt;
 +361 003d780f e80c65c3ff     calll 0x10000dd20         call 0x10000dd20      ; is specified bundle running&lt;br /&gt;
 +366 003d7814 84c0           testb %al,%al             test al, al&lt;br /&gt;
 +368 003d7816 7409           jz    0x003d7821          jz short 0x003d7821   ; if so, PurpleRestore is running&lt;br /&gt;
 +370 003d7818 c704246c8ba400 movl  $0x00a48b6c, (%esp) mov [esp], 0x00a48b6c ; so ignore device,&lt;br /&gt;
 +377 003d781f ebd3           jmp   0x003d77f4          jmp short 0x003d77f4  ; and jump back above loop for next device&lt;br /&gt;
 +379 003d7821 8d5de0         leal  0xe0(%ebp), %ebx    lea ebx, [ebp + 0xe0]&lt;br /&gt;
 +382 003d7824 895c2404       movl  %ebx, 0x04(%esp)    mov [esp + 4], ebx&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[iTunes]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Gizmoloon</name></author>
		
	</entry>
</feed>