Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Log in or create an account to edit The Apple Wiki.

DFU 0x1227

From The Apple Wiki
(Redirected from DFU (S5L8720))

DFU 0x1227 is the protocol used to talk to a device in DFU Mode or WTF v2.

Protocol

The protocol is the same as sending a file to a device in Recovery Mode on 2.x.

Code

  uint8_t fbuf[FBUF_LENGTH];
  uint8_t buf[100];
  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;
}