diff options
-rw-r--r-- | src/common.h | 3 | ||||
-rw-r--r-- | src/idevicerestore.c | 7 | ||||
-rw-r--r-- | src/restore.c | 2 | ||||
-rw-r--r-- | src/tss.c | 6 | ||||
-rw-r--r-- | src/tss.h | 2 |
5 files changed, 8 insertions, 12 deletions
diff --git a/src/common.h b/src/common.h index e52c902..0188cdc 100644 --- a/src/common.h +++ b/src/common.h @@ -48,8 +48,6 @@ extern "C" { #define FLAG_PWN 32 #define FLAG_NOACTION 64 -extern int use_apple_server; - struct dfu_client_t; struct normal_client_t; struct restore_client_t; @@ -73,6 +71,7 @@ struct idevicerestore_entry_t { struct idevicerestore_client_t { int flags; plist_t tss; + char* tss_url; plist_t version_data; uint64_t ecid; unsigned char* nonce; diff --git a/src/idevicerestore.c b/src/idevicerestore.c index f33df1d..d38e672 100644 --- a/src/idevicerestore.c +++ b/src/idevicerestore.c @@ -45,8 +45,6 @@ #define VERSION_XML "version.xml" -int use_apple_server; - static struct option longopts[] = { { "ecid", required_argument, NULL, 'i' }, { "udid", required_argument, NULL, 'u' }, @@ -164,7 +162,6 @@ int main(int argc, char* argv[]) { int shsh_only = 0; int latest = 0; char* shsh_dir = NULL; - use_apple_server=1; int result = 0; // create an instance of our context @@ -195,7 +192,7 @@ int main(int argc, char* argv[]) { break; case 's': - use_apple_server=0; + client->tss_url = strdup("http://cydia.saurik.com/TSS/controller?action=2"); break; case 'x': @@ -1302,7 +1299,7 @@ int get_shsh_blobs(struct idevicerestore_client_t* client, uint64_t ecid, unsign return -1; } - response = tss_send_request(request); + response = tss_send_request(request, client->tss_url); if (response == NULL) { info("ERROR: Unable to send TSS request\n"); plist_free(request); diff --git a/src/restore.c b/src/restore.c index 11b3a8c..bc9a7d3 100644 --- a/src/restore.c +++ b/src/restore.c @@ -1299,7 +1299,7 @@ int restore_send_baseband_data(restored_client_t restore, struct idevicerestore_ debug_plist(request); info("Sending Baseband TSS request...\n"); - response = tss_send_request(request); + response = tss_send_request(request, client->tss_url); plist_free(request); if (response == NULL) { error("ERROR: Unable to fetch Baseband TSS\n"); @@ -313,7 +313,7 @@ size_t tss_write_callback(char* data, size_t size, size_t nmemb, tss_response* r return total; } -plist_t tss_send_request(plist_t tss_request) { +plist_t tss_send_request(plist_t tss_request, const char* server_url_string) { curl_global_init(CURL_GLOBAL_ALL); char* request = NULL; @@ -366,8 +366,8 @@ plist_t tss_send_request(plist_t tss_request) { curl_easy_setopt(handle, CURLOPT_POSTFIELDS, request); curl_easy_setopt(handle, CURLOPT_USERAGENT, "InetURL/1.0"); curl_easy_setopt(handle, CURLOPT_POSTFIELDSIZE, strlen(request)); - if (use_apple_server==0) { - curl_easy_setopt(handle, CURLOPT_URL, "http://cydia.saurik.com/TSS/controller?action=2"); + if (server_url_string) { + curl_easy_setopt(handle, CURLOPT_URL, server_url_string); } else { int url_index = (retry - 1) % 6; curl_easy_setopt(handle, CURLOPT_URL, urls[url_index]); @@ -28,7 +28,7 @@ extern "C" { #include <plist/plist.h> -plist_t tss_send_request(plist_t request); +plist_t tss_send_request(plist_t request, const char* server_url_string); plist_t tss_create_request(plist_t build_identity, uint64_t ecid, unsigned char* nonce, int nonce_size); plist_t tss_create_baseband_request(plist_t build_identity, uint64_t ecid, uint64_t bb_cert_id, unsigned char* bb_snum, uint64_t bb_snum_size, unsigned char* bb_nonce, int bb_nonce_size); int tss_get_ticket(plist_t tss, unsigned char** ticket, uint32_t* tlen); |