diff options
| author | 2019-10-03 20:04:06 +0200 | |
|---|---|---|
| committer | 2019-10-03 20:04:43 +0200 | |
| commit | eae71e0647635fc00769764ec998e3136c5f0baa (patch) | |
| tree | 37e56686d9e1066cf829258c0b7041d3b5627956 /src/libirecovery.c | |
| parent | 50f5b05ac2ce98e9d834fd9cce5453a1cf985ab7 (diff) | |
| download | libirecovery-eae71e0647635fc00769764ec998e3136c5f0baa.tar.gz libirecovery-eae71e0647635fc00769764ec998e3136c5f0baa.tar.bz2 | |
Parse SRTG (build tag string) from usb serial number if available
Diffstat (limited to 'src/libirecovery.c')
| -rw-r--r-- | src/libirecovery.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/libirecovery.c b/src/libirecovery.c index eec0f9a..377f571 100644 --- a/src/libirecovery.c +++ b/src/libirecovery.c | |||
| @@ -528,6 +528,17 @@ static void irecv_load_device_info_from_iboot_string(irecv_client_t client, cons | |||
| 528 | } | 528 | } |
| 529 | client->device_info.imei = strdup(tmp); | 529 | client->device_info.imei = strdup(tmp); |
| 530 | } | 530 | } |
| 531 | |||
| 532 | tmp[0] = '\0'; | ||
| 533 | ptr = strstr(iboot_string, "SRTG:["); | ||
| 534 | if(ptr != NULL) { | ||
| 535 | sscanf(ptr, "SRTG:[%s]", tmp); | ||
| 536 | ptr = strrchr(tmp, ']'); | ||
| 537 | if(ptr != NULL) { | ||
| 538 | *ptr = '\0'; | ||
| 539 | } | ||
| 540 | client->device_info.srtg = strdup(tmp); | ||
| 541 | } | ||
| 531 | } | 542 | } |
| 532 | 543 | ||
| 533 | static void irecv_copy_nonce_with_tag(irecv_client_t client, const char* tag, unsigned char** nonce, unsigned int* nonce_size) | 544 | static void irecv_copy_nonce_with_tag(irecv_client_t client, const char* tag, unsigned char** nonce, unsigned int* nonce_size) |
| @@ -1920,10 +1931,12 @@ static void _irecv_handle_device_remove(struct irecv_usb_device_info *devinfo) | |||
| 1920 | } ENDFOREACH | 1931 | } ENDFOREACH |
| 1921 | mutex_unlock(&listener_mutex); | 1932 | mutex_unlock(&listener_mutex); |
| 1922 | free(devinfo->device_info.srnm); | 1933 | free(devinfo->device_info.srnm); |
| 1923 | free(devinfo->device_info.imei); | ||
| 1924 | free(devinfo->device_info.serial_string); | ||
| 1925 | devinfo->device_info.srnm = NULL; | 1934 | devinfo->device_info.srnm = NULL; |
| 1935 | free(devinfo->device_info.imei); | ||
| 1926 | devinfo->device_info.imei = NULL; | 1936 | devinfo->device_info.imei = NULL; |
| 1937 | free(devinfo->device_info.srtg); | ||
| 1938 | devinfo->device_info.srtg = NULL; | ||
| 1939 | free(devinfo->device_info.serial_string); | ||
| 1927 | devinfo->device_info.serial_string = NULL; | 1940 | devinfo->device_info.serial_string = NULL; |
| 1928 | devinfo->alive = 0; | 1941 | devinfo->alive = 0; |
| 1929 | collection_remove(&devices, devinfo); | 1942 | collection_remove(&devices, devinfo); |
| @@ -2289,10 +2302,12 @@ IRECV_API irecv_error_t irecv_device_event_unsubscribe(irecv_device_event_contex | |||
| 2289 | mutex_lock(&device_mutex); | 2302 | mutex_lock(&device_mutex); |
| 2290 | FOREACH(struct irecv_usb_device_info *devinfo, &devices) { | 2303 | FOREACH(struct irecv_usb_device_info *devinfo, &devices) { |
| 2291 | free(devinfo->device_info.srnm); | 2304 | free(devinfo->device_info.srnm); |
| 2292 | free(devinfo->device_info.imei); | ||
| 2293 | free(devinfo->device_info.serial_string); | ||
| 2294 | devinfo->device_info.srnm = NULL; | 2305 | devinfo->device_info.srnm = NULL; |
| 2306 | free(devinfo->device_info.imei); | ||
| 2295 | devinfo->device_info.imei = NULL; | 2307 | devinfo->device_info.imei = NULL; |
| 2308 | free(devinfo->device_info.srtg); | ||
| 2309 | devinfo->device_info.srtg = NULL; | ||
| 2310 | free(devinfo->device_info.serial_string); | ||
| 2296 | devinfo->device_info.serial_string = NULL; | 2311 | devinfo->device_info.serial_string = NULL; |
| 2297 | free(devinfo); | 2312 | free(devinfo); |
| 2298 | } ENDFOREACH | 2313 | } ENDFOREACH |
| @@ -2356,6 +2371,7 @@ IRECV_API irecv_error_t irecv_close(irecv_client_t client) { | |||
| 2356 | #endif | 2371 | #endif |
| 2357 | free(client->device_info.srnm); | 2372 | free(client->device_info.srnm); |
| 2358 | free(client->device_info.imei); | 2373 | free(client->device_info.imei); |
| 2374 | free(client->device_info.srtg); | ||
| 2359 | free(client->device_info.serial_string); | 2375 | free(client->device_info.serial_string); |
| 2360 | free(client->device_info.ap_nonce); | 2376 | free(client->device_info.ap_nonce); |
| 2361 | free(client->device_info.sep_nonce); | 2377 | free(client->device_info.sep_nonce); |
