DFU 0x1227

From The iPhone Wiki
Revision as of 10:17, 11 February 2012 by Http (talk | contribs) (adding goto (return inbetween) didn't look like an improvement to me, also removed unnecessarily added init of s and removed empty lines)
Jump to: navigation, search

This is the protocol used to talk to DFU Mode 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;
  int 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;
}