The iPhone Wiki is no longer updated. Visit this article on The Apple Wiki for current information. |
Difference between revisions of "DFU 0x1227"
Caique2001 (talk | contribs) m |
|||
Line 3: | Line 3: | ||
==Protocol== |
==Protocol== |
||
Same as sending a file to [[Recovery Mode 0x1281]] |
Same as sending a file to [[Recovery Mode 0x1281]] |
||
+ | |||
+ | ==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; |
Revision as of 19:01, 18 September 2008
This is the protocol used by the WTF version 2.
Protocol
Same as sending a file to Recovery Mode 0x1281
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;