summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Joshua Hill2010-06-07 05:17:30 -0400
committerGravatar Joshua Hill2010-06-07 05:17:30 -0400
commit5346ce8f7cefe7b33dd8abc44e27cb0e0816f78b (patch)
tree61a4884132293f27e48eab6b468131ad158be7fe /src
parenta91e336c24a0d741e47be7adf0cd0b2beb20e5ab (diff)
downloadidevicerestore-5346ce8f7cefe7b33dd8abc44e27cb0e0816f78b.tar.gz
idevicerestore-5346ce8f7cefe7b33dd8abc44e27cb0e0816f78b.tar.bz2
More small fixes and updated the TODO list
Diffstat (limited to 'src')
-rw-r--r--src/idevicerestore.c9
-rw-r--r--src/idevicerestore.h7
-rw-r--r--src/restore.h1
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);