summaryrefslogtreecommitdiffstats
path: root/src/idevicerestore.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/idevicerestore.c')
-rw-r--r--src/idevicerestore.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/idevicerestore.c b/src/idevicerestore.c
index ef547eb..a08d319 100644
--- a/src/idevicerestore.c
+++ b/src/idevicerestore.c
@@ -647,18 +647,6 @@ int idevicerestore_start(struct idevicerestore_client_t* client)
}
idevicerestore_progress(client, RESTORE_STEP_PREPARE, 0.1);
- // if the device is in normal mode, place device into recovery mode
- if (client->mode->index == MODE_NORMAL) {
- info("Entering recovery mode...\n");
- if (normal_enter_recovery(client) < 0) {
- error("ERROR: Unable to place device into recovery mode from %s mode\n", client->mode->string);
- if (client->tss)
- plist_free(client->tss);
- plist_free(buildmanifest);
- return -5;
- }
- }
-
// Get filesystem name from build identity
char* fsname = NULL;
if (build_identity_get_component_path(build_identity, "OS", &fsname) < 0) {
@@ -753,6 +741,18 @@ int idevicerestore_start(struct idevicerestore_client_t* client)
}
}
+ // if the device is in normal mode, place device into recovery mode
+ if (client->mode->index == MODE_NORMAL) {
+ info("Entering recovery mode...\n");
+ if (normal_enter_recovery(client) < 0) {
+ error("ERROR: Unable to place device into recovery mode from %s mode\n", client->mode->string);
+ if (client->tss)
+ plist_free(client->tss);
+ plist_free(buildmanifest);
+ return -5;
+ }
+ }
+
idevicerestore_progress(client, RESTORE_STEP_PREPARE, 0.3);
// if the device is in DFU mode, place device into recovery mode