From fbaafdaf87cc01197ad86812a46cf17b7b392b8e Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Wed, 13 Feb 2019 23:57:57 +0100 Subject: dfu/recovery: Don't select first DFU/Recovery mode device found when --udid was given --- src/dfu.c | 7 ++++++- src/recovery.c | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/dfu.c b/src/dfu.c index 11aa843..8c65b93 100644 --- a/src/dfu.c +++ b/src/dfu.c @@ -2,8 +2,8 @@ * dfu.c * Functions for handling idevices in DFU mode * + * Copyright (c) 2012-2019 Nikias Bassen. All Rights Reserved. * Copyright (c) 2010-2013 Martin Szulecki. All Rights Reserved. - * Copyright (c) 2012-2015 Nikias Bassen. All Rights Reserved. * Copyright (c) 2010 Joshua Hill. All Rights Reserved. * * This library is free software; you can redistribute it and/or @@ -90,6 +90,11 @@ int dfu_check_mode(struct idevicerestore_client_t* client, int* mode) { irecv_client_t dfu = NULL; int probe_mode = -1; + if (client->udid && client->ecid == 0) { + /* if we have a UDID but no ECID we can't make sure this is the correct device */ + return -1; + } + irecv_init(); if (irecv_open_with_ecid(&dfu, client->ecid) != IRECV_E_SUCCESS) { return -1; diff --git a/src/recovery.c b/src/recovery.c index b54a8b2..436261f 100644 --- a/src/recovery.c +++ b/src/recovery.c @@ -2,8 +2,8 @@ * recovery.c * Functions for handling idevices in recovery mode * + * Copyright (c) 2012-2019 Nikias Bassen. All Rights Reserved. * Copyright (c) 2010-2012 Martin Szulecki. All Rights Reserved. - * Copyright (c) 2012 Nikias Bassen. All Rights Reserved. * Copyright (c) 2010 Joshua Hill. All Rights Reserved. * * This library is free software; you can redistribute it and/or @@ -103,6 +103,11 @@ int recovery_check_mode(struct idevicerestore_client_t* client) { irecv_error_t recovery_error = IRECV_E_SUCCESS; int mode = 0; + if (client->udid && client->ecid == 0) { + /* if we have a UDID but no ECID we can't make sure this is the correct device */ + return -1; + } + irecv_init(); recovery_error=irecv_open_with_ecid(&recovery, client->ecid); -- cgit v1.1-32-gdbae