From 926b77a9fbb58f3020cf5c67921d727f5ff51266 Mon Sep 17 00:00:00 2001 From: Aaron Burghardt Date: Wed, 25 Sep 2013 21:24:29 -0400 Subject: Added test for limera1n compatibility before attempting to inject it. Signed-off-by: Martin Szulecki --- src/idevicerestore.c | 2 +- src/limera1n.c | 7 +++++++ src/limera1n.h | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/idevicerestore.c b/src/idevicerestore.c index 5e9b700..c32db88 100644 --- a/src/idevicerestore.c +++ b/src/idevicerestore.c @@ -743,7 +743,7 @@ int idevicerestore_start(struct idevicerestore_client_t* client) // if the device is in DFU mode, place device into recovery mode if (client->mode->index == MODE_DFU) { recovery_client_free(client); - if (client->flags & FLAG_CUSTOM) { + if ((client->flags & FLAG_CUSTOM) && limera1n_is_supported(client->device)) { info("connecting to DFU\n"); if (dfu_client_new(client) < 0) { if (delete_fs && filesystem) diff --git a/src/limera1n.c b/src/limera1n.c index 6ceb65a..25d9e40 100644 --- a/src/limera1n.c +++ b/src/limera1n.c @@ -30,6 +30,13 @@ #include "limera1n.h" #include "limera1n_payload.h" +int limera1n_is_supported(struct irecv_device *device) +{ + return ((device->chip_id == irecv_devices[DEVICE_IPHONE4].chip_id) || + (device->chip_id == irecv_devices[DEVICE_IPHONE3GS].chip_id) || + (device->chip_id == irecv_devices[DEVICE_IPOD3G].chip_id)); +} + int limera1n_exploit(struct irecv_device *device, irecv_client_t *pclient) { irecv_error_t err = IRECV_E_SUCCESS; diff --git a/src/limera1n.h b/src/limera1n.h index c417170..2c92001 100644 --- a/src/limera1n.h +++ b/src/limera1n.h @@ -23,6 +23,7 @@ #define __LIMERA1N_H #include +int limera1n_is_supported(struct irecv_device *device); int limera1n_exploit(struct irecv_device *device, irecv_client_t *client); #endif /* __LIMERA1N_H */ -- cgit v1.1-32-gdbae