summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2019-10-03 19:58:26 +0200
committerGravatar Nikias Bassen2019-10-03 19:58:26 +0200
commit50f5b05ac2ce98e9d834fd9cce5453a1cf985ab7 (patch)
tree8665720b6b2b5a7dfb7ab5920b695c759a3ee442
parent93111c07a877a47ded6e05b567aa393bec4cbd7d (diff)
downloadlibirecovery-50f5b05ac2ce98e9d834fd9cce5453a1cf985ab7.tar.gz
libirecovery-50f5b05ac2ce98e9d834fd9cce5453a1cf985ab7.tar.bz2
Expose entire usb serial number string in struct irecv_device_info
-rw-r--r--include/libirecovery.h1
-rw-r--r--src/libirecovery.c7
2 files changed, 8 insertions, 0 deletions
diff --git a/include/libirecovery.h b/include/libirecovery.h
index e7be89b..63b659d 100644
--- a/include/libirecovery.h
+++ b/include/libirecovery.h
@@ -88,6 +88,7 @@ struct irecv_device_info {
88 unsigned int ibfl; 88 unsigned int ibfl;
89 char* srnm; 89 char* srnm;
90 char* imei; 90 char* imei;
91 char* serial_string;
91 unsigned char* ap_nonce; 92 unsigned char* ap_nonce;
92 unsigned int ap_nonce_size; 93 unsigned int ap_nonce_size;
93 unsigned char* sep_nonce; 94 unsigned char* sep_nonce;
diff --git a/src/libirecovery.c b/src/libirecovery.c
index 66d76c3..eec0f9a 100644
--- a/src/libirecovery.c
+++ b/src/libirecovery.c
@@ -467,6 +467,8 @@ static void irecv_load_device_info_from_iboot_string(irecv_client_t client, cons
467 467
468 memset(&client->device_info, '\0', sizeof(struct irecv_device_info)); 468 memset(&client->device_info, '\0', sizeof(struct irecv_device_info));
469 469
470 client->device_info.serial_string = strdup(iboot_string);
471
470 char* ptr; 472 char* ptr;
471 473
472 ptr = strstr(iboot_string, "CPID:"); 474 ptr = strstr(iboot_string, "CPID:");
@@ -1919,8 +1921,10 @@ static void _irecv_handle_device_remove(struct irecv_usb_device_info *devinfo)
1919 mutex_unlock(&listener_mutex); 1921 mutex_unlock(&listener_mutex);
1920 free(devinfo->device_info.srnm); 1922 free(devinfo->device_info.srnm);
1921 free(devinfo->device_info.imei); 1923 free(devinfo->device_info.imei);
1924 free(devinfo->device_info.serial_string);
1922 devinfo->device_info.srnm = NULL; 1925 devinfo->device_info.srnm = NULL;
1923 devinfo->device_info.imei = NULL; 1926 devinfo->device_info.imei = NULL;
1927 devinfo->device_info.serial_string = NULL;
1924 devinfo->alive = 0; 1928 devinfo->alive = 0;
1925 collection_remove(&devices, devinfo); 1929 collection_remove(&devices, devinfo);
1926 free(devinfo); 1930 free(devinfo);
@@ -2286,8 +2290,10 @@ IRECV_API irecv_error_t irecv_device_event_unsubscribe(irecv_device_event_contex
2286 FOREACH(struct irecv_usb_device_info *devinfo, &devices) { 2290 FOREACH(struct irecv_usb_device_info *devinfo, &devices) {
2287 free(devinfo->device_info.srnm); 2291 free(devinfo->device_info.srnm);
2288 free(devinfo->device_info.imei); 2292 free(devinfo->device_info.imei);
2293 free(devinfo->device_info.serial_string);
2289 devinfo->device_info.srnm = NULL; 2294 devinfo->device_info.srnm = NULL;
2290 devinfo->device_info.imei = NULL; 2295 devinfo->device_info.imei = NULL;
2296 devinfo->device_info.serial_string = NULL;
2291 free(devinfo); 2297 free(devinfo);
2292 } ENDFOREACH 2298 } ENDFOREACH
2293 collection_free(&devices); 2299 collection_free(&devices);
@@ -2350,6 +2356,7 @@ IRECV_API irecv_error_t irecv_close(irecv_client_t client) {
2350#endif 2356#endif
2351 free(client->device_info.srnm); 2357 free(client->device_info.srnm);
2352 free(client->device_info.imei); 2358 free(client->device_info.imei);
2359 free(client->device_info.serial_string);
2353 free(client->device_info.ap_nonce); 2360 free(client->device_info.ap_nonce);
2354 free(client->device_info.sep_nonce); 2361 free(client->device_info.sep_nonce);
2355 2362