summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Martin Szulecki2012-02-05 18:36:52 +0100
committerGravatar Martin Szulecki2012-02-05 18:36:52 +0100
commit1f08d426ac7c845c58d65d45e03bcae9b6dd63bf (patch)
tree1f230727ebfa1afbfef1b575e64a11cca2c84d14 /src
parentb6f8f0324e3bec1e0dd959a2c41b6a3386aa7d3c (diff)
downloadidevicerestore-1f08d426ac7c845c58d65d45e03bcae9b6dd63bf.tar.gz
idevicerestore-1f08d426ac7c845c58d65d45e03bcae9b6dd63bf.tar.bz2
libirecovery: Add detection for A5 devices and remove obsolete firmware urls
Diffstat (limited to 'src')
-rw-r--r--src/libirecovery.c29
-rw-r--r--src/libirecovery.h44
2 files changed, 48 insertions, 25 deletions
diff --git a/src/libirecovery.c b/src/libirecovery.c
index d5f3767..45efa85 100644
--- a/src/libirecovery.c
+++ b/src/libirecovery.c
@@ -1289,6 +1289,35 @@ irecv_error_t irecv_get_device(irecv_client_t client, irecv_device_t* device) {
}
break;
+ case CPID_IPAD21:
+ // All the A5 devices are the same too...
+ if (irecv_get_bdid(client, &bdid) < 0) {
+ break;
+ }
+
+ switch (bdid) {
+ case BDID_IPAD21:
+ device_id = DEVICE_IPAD21;
+ break;
+
+ case BDID_IPAD22:
+ device_id = DEVICE_IPAD22;
+ break;
+
+ case BDID_IPAD23:
+ device_id = DEVICE_IPAD23;
+ break;
+
+ case BDID_IPHONE4S:
+ device_id = DEVICE_IPHONE4S;
+ break;
+
+ default:
+ device_id = DEVICE_UNKNOWN;
+ break;
+ }
+ break;
+
default:
device_id = DEVICE_UNKNOWN;
break;
diff --git a/src/libirecovery.h b/src/libirecovery.h
index b59a592..a4e3aa1 100644
--- a/src/libirecovery.h
+++ b/src/libirecovery.h
@@ -49,6 +49,7 @@ extern "C" {
#define CPID_IPAD21 8940
#define CPID_IPAD22 8940
#define CPID_IPAD23 8940
+#define CPID_IPHONE4S 8940
#define BDID_UNKNOWN -1
#define BDID_IPHONE2G 0
@@ -65,6 +66,7 @@ extern "C" {
#define BDID_IPAD21 4
#define BDID_IPAD22 6
#define BDID_IPAD23 2
+#define BDID_IPHONE4S 8
#define DEVICE_UNKNOWN -1
#define DEVICE_IPHONE2G 0
@@ -81,6 +83,7 @@ extern "C" {
#define DEVICE_IPAD21 11
#define DEVICE_IPAD22 12
#define DEVICE_IPAD23 13
+#define DEVICE_IPHONE4S 14
enum {
kRecoveryMode1 = 0x1280,
@@ -159,34 +162,25 @@ struct irecv_device {
const char* model;
unsigned int board_id;
unsigned int chip_id;
- const char* url;
};
static struct irecv_device irecv_devices[] = {
- { 0, "iPhone1,1", "m68ap", 0, 8900,
- "http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7481.20100202.4orot/iPhone1,1_3.1.3_7E18_Restore.ipsw" },
- { 1, "iPod1,1", "n45ap", 2, 8900,
- NULL },
- { 2, "iPhone1,2", "n82ap", 4, 8900,
- "http://appldnld.apple.com/iPhone4/061-7932.20100908.3fgt5/iPhone1,2_4.1_8B117_Restore.ipsw" },
- { 3, "iPod2,1", "n72ap", 0, 8720,
- "http://appldnld.apple.com/iPhone4/061-7937.20100908.ghj4f/iPod2,1_4.1_8B117_Restore.ipsw" },
- { 4, "iPhone2,1", "n88ap", 0, 8920,
- "http://appldnld.apple.com/iPhone4/061-7938.20100908.F3rCk/iPhone2,1_4.1_8B117_Restore.ipsw" },
- { 5, "iPod3,1", "n18ap", 2, 8922,
- "http://appldnld.apple.com/iPhone4/061-7941.20100908.sV9KE/iPod3,1_4.1_8B117_Restore.ipsw" },
- { 6, "iPad1,1", "k48ap", 2, 8930,
- "http://appldnld.apple.com/iPad/061-8801.20100811.CvfR5/iPad1,1_3.2.2_7B500_Restore.ipsw" },
- { 7, "iPhone3,1", "n90ap", 0, 8930,
- "http://appldnld.apple.com/iPhone4/061-7939.20100908.Lcyg3/iPhone3,1_4.1_8B117_Restore.ipsw" },
- { 8, "iPod4,1", "n81ap", 8, 8930,
- "http://appldnld.apple.com/iPhone4/061-8490.20100901.hyjtR/iPod4,1_4.1_8B117_Restore.ipsw" },
- { 9, "AppleTV2,1", "k66ap", 10, 8930,
- "http://appldnld.apple.com/AppleTV/061-8940.20100926.Tvtnz/AppleTV2,1_4.1_8M89_Restore.ipsw" },
- { 10, "iPhone3,3", "n92ap", 6, 8930,
- "http://appldnld.apple.com/iPhone4/041-0177.20110131.Pyvrz/iPhone3,3_4.2.6_8E200_Restore.ipsw" },
- { -1, NULL, NULL, -1, -1,
- NULL }
+ { 0, "iPhone1,1", "m68ap", 0, 8900 },
+ { 1, "iPod1,1", "n45ap", 2, 8900 },
+ { 2, "iPhone1,2", "n82ap", 4, 8900 },
+ { 3, "iPod2,1", "n72ap", 0, 8720 },
+ { 4, "iPhone2,1", "n88ap", 0, 8920 },
+ { 5, "iPod3,1", "n18ap", 2, 8922 },
+ { 6, "iPad1,1", "k48ap", 2, 8930 },
+ { 7, "iPhone3,1", "n90ap", 0, 8930 },
+ { 8, "iPod4,1", "n81ap", 8, 8930 },
+ { 9, "AppleTV2,1", "k66ap", 10, 8930 },
+ { 10, "iPhone3,3", "n92ap", 6, 8930 },
+ { 11, "iPad2,1", "k93ap", 4, 8940 },
+ { 12, "iPad2,2", "k94ap", 6, 8940 },
+ { 13, "iPad2,3", "k95ap", 2, 8940 },
+ { 14, "iPhone4,1", "n94ap", 8, 8940 },
+ { -1, NULL, NULL, -1, -1 }
};
void irecv_set_debug_level(int level);