summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2011-11-03 22:41:52 +0100
committerGravatar Nikias Bassen2011-11-03 22:41:52 +0100
commit15e2b3c5e6f7daf55da66756f9529bdeeb454197 (patch)
treeed9ee1312a8bc26e8c80481d5e1dbf83dbeaf91c
parentbd7728153d4606c8271d152c6f08143bdd1c505e (diff)
downloadlibirecovery-15e2b3c5e6f7daf55da66756f9529bdeeb454197.tar.gz
libirecovery-15e2b3c5e6f7daf55da66756f9529bdeeb454197.tar.bz2
add new device models
-rw-r--r--include/libirecovery.h12
-rw-r--r--libirecovery.c29
2 files changed, 41 insertions, 0 deletions
diff --git a/include/libirecovery.h b/include/libirecovery.h
index 8f3208a..f62d599 100644
--- a/include/libirecovery.h
+++ b/include/libirecovery.h
@@ -46,6 +46,10 @@ extern "C" {
46#define CPID_IPOD4G 8930 46#define CPID_IPOD4G 8930
47#define CPID_APPLETV2 8930 47#define CPID_APPLETV2 8930
48#define CPID_IPHONE42 8930 48#define CPID_IPHONE42 8930
49#define CPID_IPAD21 8940
50#define CPID_IPAD22 8940
51#define CPID_IPAD23 8940
52#define CPID_IPHONE4S 8940
49 53
50#define BDID_UNKNOWN -1 54#define BDID_UNKNOWN -1
51#define BDID_IPHONE2G 0 55#define BDID_IPHONE2G 0
@@ -59,6 +63,10 @@ extern "C" {
59#define BDID_IPOD4G 8 63#define BDID_IPOD4G 8
60#define BDID_APPLETV2 10 64#define BDID_APPLETV2 10
61#define BDID_IPHONE42 6 65#define BDID_IPHONE42 6
66#define BDID_IPAD21 4
67#define BDID_IPAD22 6
68#define BDID_IPAD23 2
69#define BDID_IPHONE4S 8
62 70
63#define DEVICE_UNKNOWN -1 71#define DEVICE_UNKNOWN -1
64#define DEVICE_IPHONE2G 0 72#define DEVICE_IPHONE2G 0
@@ -72,6 +80,10 @@ extern "C" {
72#define DEVICE_IPOD4G 8 80#define DEVICE_IPOD4G 8
73#define DEVICE_APPLETV2 9 81#define DEVICE_APPLETV2 9
74#define DEVICE_IPHONE42 10 82#define DEVICE_IPHONE42 10
83#define DEVICE_IPAD21 11
84#define DEVICE_IPAD22 12
85#define DEVICE_IPAD23 13
86#define DEVICE_IPHONE4S 14
75 87
76enum { 88enum {
77 kRecoveryMode1 = 0x1280, 89 kRecoveryMode1 = 0x1280,
diff --git a/libirecovery.c b/libirecovery.c
index 614b81d..278a529 100644
--- a/libirecovery.c
+++ b/libirecovery.c
@@ -1224,6 +1224,35 @@ irecv_error_t irecv_get_device(irecv_client_t client, irecv_device_t* device) {
1224 } 1224 }
1225 break; 1225 break;
1226 1226
1227 case CPID_IPAD21:
1228 // iPad2,1 iPad2,2 iPad2,3 and iPhone4,1 share the same ChipID, so we need to check the BoardID
1229 if (irecv_get_bdid(client, &bdid) < 0) {
1230 break;
1231 }
1232
1233 switch (bdid) {
1234 case BDID_IPAD21
1235 device_id = DEVICE_IPAD21;
1236 break;
1237
1238 case BDID_IPAD22
1239 device_id = DEVICE_IPAD22;
1240 break;
1241
1242 case BDID_IPAD23
1243 device_id = DEVICE_IPAD23;
1244 break;
1245
1246 case BDID_IPHONE4S
1247 device_id = DEVICE_IPHONE4S;
1248 break;
1249
1250 default:
1251 device_id = DEVICE_UNKNOWN;
1252 break;
1253 }
1254 break;
1255
1227 default: 1256 default:
1228 device_id = DEVICE_UNKNOWN; 1257 device_id = DEVICE_UNKNOWN;
1229 break; 1258 break;