diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/idevicerestore.c | 2 | ||||
| -rw-r--r-- | src/limera1n.c | 7 | ||||
| -rw-r--r-- | src/limera1n.h | 1 | 
3 files changed, 9 insertions, 1 deletions
| 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 <libirecovery.h> +int limera1n_is_supported(struct irecv_device *device);  int limera1n_exploit(struct irecv_device *device, irecv_client_t *client);  #endif /* __LIMERA1N_H */ | 
