diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/idevicerestore.c | 9 | ||||
| -rw-r--r-- | src/idevicerestore.h | 7 | ||||
| -rw-r--r-- | src/restore.h | 1 | 
3 files changed, 13 insertions, 4 deletions
diff --git a/src/idevicerestore.c b/src/idevicerestore.c index a1faeac..cc97e2c 100644 --- a/src/idevicerestore.c +++ b/src/idevicerestore.c @@ -144,6 +144,13 @@ int main(int argc, char* argv[]) {  	}  	idevicerestore_device = &idevicerestore_devices[id]; +	if (idevicerestore_mode == MODE_RESTORE) { +		if (restore_reboot(uuid) < 0) { +			error("ERROR: Unable to exit restore mode\n"); +			return -1; +		} +	} +  	// extract buildmanifest  	plist_t buildmanifest = NULL;  	info("Extracting BuildManifest from IPSW\n"); @@ -590,7 +597,7 @@ int extract_filesystem(const char* ipsw, plist_t build_identity, char** filesyst  	return 0;  } -int get_signed_component(char* ipsw, plist_t tss, const char* path, char** data, uint32_t* size) { +int get_signed_component(const char* ipsw, plist_t tss, const char* path, char** data, uint32_t* size) {  	img3_file* img3 = NULL;  	uint32_t component_size = 0;  	char* component_data = NULL; diff --git a/src/idevicerestore.h b/src/idevicerestore.h index f92aad2..e4186c9 100644 --- a/src/idevicerestore.h +++ b/src/idevicerestore.h @@ -1,5 +1,5 @@  /* - * idevicerestore.g + * idevicerestore.h   * Restore device firmware and filesystem   *   * Copyright (c) 2010 Joshua Hill. All Rights Reserved. @@ -22,7 +22,8 @@  #ifndef IDEVICERESTORE_H  #define IDEVICERESTORE_H -#include <stdint.h> +#include <stdio.h> +#include <stdlib.h>  #include <plist/plist.h>  #define info(...) printf(__VA_ARGS__) @@ -101,7 +102,7 @@ plist_t get_build_identity(plist_t buildmanifest, uint32_t identity);  int write_file(const char* filename, const void* data, size_t size);  int get_shsh_blobs(uint64_t ecid, plist_t build_identity, plist_t* tss);  int extract_filesystem(const char* ipsw, plist_t buildmanifest, char** filesystem); -int get_signed_component(char* ipsw, plist_t tss, const char* path, char** data, uint32_t* size); +int get_signed_component(const char* ipsw, plist_t tss, const char* path, char** data, uint32_t* size);  inline static void debug_plist(plist_t plist) {  	int size = 0; diff --git a/src/restore.h b/src/restore.h index 6614355..7a2e27e 100644 --- a/src/restore.h +++ b/src/restore.h @@ -26,6 +26,7 @@  #include <libimobiledevice/restore.h>  #include <libimobiledevice/libimobiledevice.h> +int restore_reboot(const char* uuid);  int restore_check_mode(const char* uuid);  int restore_check_device(const char* uuid);  const char* restore_progress_string(unsigned int operation);  | 
