Difference between revisions of "DFU 0x1227"

From The iPhone Wiki
Jump to: navigation, search
(reverting vandalism)
Line 1: Line 1:
  +
This is the protocol used to talk to [[DFU]] and [[WTF]] version 2.
Hacked by Chroniccommand
 
  +
Hacked by Chroniccommand
 
  +
==Protocol==
Hacked by Chroniccommand
 
  +
Same as sending a file to the 2.x [[Recovery Mode (Protocols)|Recovery Mode]]
Hacked by Chroniccommand
 
  +
Hacked by Chroniccommand
 
  +
==Code==
Hacked by Chroniccommand
 
  +
hexdump(fbuf, usb_control_msg(idev, 0x80, 6, 0x200, 0, fbuf, 0x100, 1000));
Hacked by Chroniccommand
 
  +
printf("WTF: "); fgets(buf,100,stdin); buf[strlen(buf)-1]=0;
  +
FILE *f=fopen(buf, "rb"); int s,c=0;
  +
if(f>0) {
  +
do{s=fread(fbuf, 1, 0x800, f);
  +
if(usb_control_msg(idev, 0x21, 1, c, 0, fbuf, s, 1000)==s) printf(".");
  +
else printf("x");
  +
if(usb_control_msg(idev, 0xA1, 3, 0, 0, fbuf, 6, 1000)!=6||fbuf[4]!=5) printf("%d",fbuf[4]);
  +
c++;
  +
}while(s>0);
  +
printf("\n");
  +
usb_control_msg(idev, 0xA1, 3, 0, 0, buf, 6, 1000);
  +
hexdump(buf,6);
  +
usb_control_msg(idev, 0xA1, 3, 0, 0, buf, 6, 1000);
  +
hexdump(buf,6);
  +
usb_reset(idev);
  +
fclose(f); } else printf("file not found\n");
  +
system("PAUSE");
  +
return 0;

Revision as of 20:20, 6 November 2009

This is the protocol used to talk to DFU and WTF version 2.

Protocol

Same as sending a file to the 2.x Recovery Mode

Code

hexdump(fbuf, usb_control_msg(idev, 0x80, 6, 0x200, 0, fbuf, 0x100, 1000));
printf("WTF: "); fgets(buf,100,stdin); buf[strlen(buf)-1]=0;  
FILE *f=fopen(buf, "rb"); int s,c=0;
if(f>0) {
  do{s=fread(fbuf, 1, 0x800, f);
    if(usb_control_msg(idev, 0x21, 1, c, 0, fbuf, s, 1000)==s) printf(".");
    else printf("x");               
    if(usb_control_msg(idev, 0xA1, 3, 0, 0, fbuf, 6, 1000)!=6||fbuf[4]!=5) printf("%d",fbuf[4]);
    c++;
  }while(s>0);
  printf("\n");
  usb_control_msg(idev, 0xA1, 3, 0, 0, buf, 6, 1000);
  hexdump(buf,6);
  usb_control_msg(idev, 0xA1, 3, 0, 0, buf, 6, 1000);
  hexdump(buf,6);
  usb_reset(idev);
  fclose(f); } else printf("file not found\n");
system("PAUSE");
return 0;