Difference between revisions of "Recovery Mode (Protocols)"

From The iPhone Wiki
Jump to: navigation, search
m (Updated examples for newer devices.)
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
  +
[[Image:Iphone14promaxinrecm.png |thumb|right|An iPhone 14 Pro Max running in Recovery Mode, recreated using an extracted graphic.]]
  +
 
==Recovery Mode 1.x (DevID=0x1280)==
 
==Recovery Mode 1.x (DevID=0x1280)==
 
This is the old [[Recovery Mode]] protocol.
 
This is the old [[Recovery Mode]] protocol.
Line 9: Line 11:
 
This is the new [[Recovery Mode]] protocol used in 2.0 iBoots.
 
This is the new [[Recovery Mode]] protocol used in 2.0 iBoots.
   
==Recovery Mode 2.x (DevID=0x1282)==
+
==Recovery Mode 3.x (DevID=0x1282)==
This is the new [[Recovery Mode]] protocol used in unknown iBoots.
+
This is the new [[Recovery Mode]] protocol used in 3.0 iBoots.
   
==Recovery Mode 2.x (DevID=0x1283)==
+
==Recovery Mode 4.x (DevID=0x1283)==
This is the new [[Recovery Mode]] protocol used in unknown iBoots.
+
This is the new [[Recovery Mode]] protocol used in 4.1 iBoots.
   
 
===Commands===
 
===Commands===
Line 26: Line 28:
 
===Implementations===
 
===Implementations===
 
* [http://chronicdev.googlecode.com/svn/trunk/iRecovery/ iRecovery]
 
* [http://chronicdev.googlecode.com/svn/trunk/iRecovery/ iRecovery]
  +
* [https://github.com/cal0x/OpeniSend_rec OpeniSend_rec]
   
 
[[Category:Protocols (S5L)]]
 
[[Category:Protocols (S5L)]]

Latest revision as of 20:24, 16 September 2022

An iPhone 14 Pro Max running in Recovery Mode, recreated using an extracted graphic.

Recovery Mode 1.x (DevID=0x1280)

This is the old Recovery Mode protocol.

Implementions

Recovery Mode 2.x (DevID=0x1281)

This is the new Recovery Mode protocol used in 2.0 iBoots.

Recovery Mode 3.x (DevID=0x1282)

This is the new Recovery Mode protocol used in 3.0 iBoots.

Recovery Mode 4.x (DevID=0x1283)

This is the new Recovery Mode protocol used in 4.1 iBoots.

Commands

usb_control_msg(idev, 0xA1, 3, 0, 0, buf, 6, 1000); //get status
usb_control_msg(idev, 0x40, 0, 0, 0, buf, strlen(buf), 1000); //send command
usb_control_msg(idev, 0x21, 1, x, 0, fbuf, s, 1000); //send file

After sending a file, request the status several times. Also increment x as you send.

It also has another interface which appears like a USB to serial converter.

Implementations