summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/dfu.c4
-rw-r--r--src/recovery.c3
2 files changed, 7 insertions, 0 deletions
diff --git a/src/dfu.c b/src/dfu.c
index a016c9d..d692608 100644
--- a/src/dfu.c
+++ b/src/dfu.c
@@ -250,6 +250,8 @@ int dfu_enter_recovery(struct idevicerestore_client_t* client, plist_t build_ide
return -1;
}
+ irecv_control_transfer(client->dfu->client, 0x21, 1, 0, 0, 0, 0, 5000);
+
dfu_error = irecv_reset(client->dfu->client);
if (dfu_error != IRECV_E_SUCCESS) {
error("ERROR: Unable to reset device\n");
@@ -315,6 +317,8 @@ int dfu_enter_recovery(struct idevicerestore_client_t* client, plist_t build_ide
return -1;
}
+ irecv_control_transfer(client->dfu->client, 0x21, 1, 0, 0, 0, 0, 5000);
+
dfu_error = irecv_reset(client->dfu->client);
if (dfu_error != IRECV_E_SUCCESS) {
error("ERROR: Unable to reset device\n");
diff --git a/src/recovery.c b/src/recovery.c
index 5b24e31..fc04b1a 100644
--- a/src/recovery.c
+++ b/src/recovery.c
@@ -298,6 +298,7 @@ int recovery_send_ibec(struct idevicerestore_client_t* client, plist_t build_ide
error("ERROR: Unable to execute %s\n", component);
return -1;
}
+ irecv_control_transfer(client->recovery->client, 0x21, 1, 0, 0, 0, 0, 5000);
return 0;
}
@@ -413,6 +414,8 @@ int recovery_send_kernelcache(struct idevicerestore_client_t* client, plist_t bu
return -1;
}
+ irecv_control_transfer(client->recovery->client, 0x21, 1, 0, 0, 0, 0, 5000);
+
return 0;
}