diff options
| author | 2025-06-07 12:33:21 +0200 | |
|---|---|---|
| committer | 2025-06-07 12:33:21 +0200 | |
| commit | e3f35586c2a97f5b7479e57884be1f2f4723b4d1 (patch) | |
| tree | 36a0e2f68ead05a271d619ef9bc1381402f98c3d | |
| parent | 5af887d085155c1e75de924a4729010a52e17feb (diff) | |
| download | libimobiledevice-e3f35586c2a97f5b7479e57884be1f2f4723b4d1.tar.gz libimobiledevice-e3f35586c2a97f5b7479e57884be1f2f4723b4d1.tar.bz2 | |
ideviceprovision: Use new idevice_get_device_version and helper macro for version checks
| -rw-r--r-- | tools/ideviceprovision.c | 26 |
1 files changed, 3 insertions, 23 deletions
diff --git a/tools/ideviceprovision.c b/tools/ideviceprovision.c index 97417eb..a8df02b 100644 --- a/tools/ideviceprovision.c +++ b/tools/ideviceprovision.c | |||
| @@ -475,27 +475,7 @@ int main(int argc, char *argv[]) | |||
| 475 | return -1; | 475 | return -1; |
| 476 | } | 476 | } |
| 477 | 477 | ||
| 478 | plist_t pver = NULL; | 478 | unsigned int device_version = idevice_get_device_version(device); |
| 479 | char *pver_s = NULL; | ||
| 480 | lockdownd_get_value(client, NULL, "ProductVersion", &pver); | ||
| 481 | if (pver && plist_get_node_type(pver) == PLIST_STRING) { | ||
| 482 | plist_get_string_val(pver, &pver_s); | ||
| 483 | } | ||
| 484 | plist_free(pver); | ||
| 485 | int product_version_major = 0; | ||
| 486 | int product_version_minor = 0; | ||
| 487 | int product_version_patch = 0; | ||
| 488 | if (pver_s) { | ||
| 489 | sscanf(pver_s, "%d.%d.%d", &product_version_major, &product_version_minor, &product_version_patch); | ||
| 490 | free(pver_s); | ||
| 491 | } | ||
| 492 | if (product_version_major == 0) { | ||
| 493 | fprintf(stderr, "ERROR: Could not determine the device's ProductVersion\n"); | ||
| 494 | lockdownd_client_free(client); | ||
| 495 | idevice_free(device); | ||
| 496 | return -1; | ||
| 497 | } | ||
| 498 | int product_version = ((product_version_major & 0xFF) << 16) | ((product_version_minor & 0xFF) << 8) | (product_version_patch & 0xFF); | ||
| 499 | 479 | ||
| 500 | lockdownd_error_t lerr = lockdownd_start_service(client, MISAGENT_SERVICE_NAME, &service); | 480 | lockdownd_error_t lerr = lockdownd_start_service(client, MISAGENT_SERVICE_NAME, &service); |
| 501 | if (lerr != LOCKDOWN_E_SUCCESS) { | 481 | if (lerr != LOCKDOWN_E_SUCCESS) { |
| @@ -546,7 +526,7 @@ int main(int argc, char *argv[]) | |||
| 546 | { | 526 | { |
| 547 | plist_t profiles = NULL; | 527 | plist_t profiles = NULL; |
| 548 | misagent_error_t merr; | 528 | misagent_error_t merr; |
| 549 | if (product_version < 0x090300) { | 529 | if (device_version < IDEVICE_DEVICE_VERSION(9,3,0)) { |
| 550 | merr = misagent_copy(mis, &profiles); | 530 | merr = misagent_copy(mis, &profiles); |
| 551 | } else { | 531 | } else { |
| 552 | merr = misagent_copy_all(mis, &profiles); | 532 | merr = misagent_copy_all(mis, &profiles); |
| @@ -631,7 +611,7 @@ int main(int argc, char *argv[]) | |||
| 631 | /* remove all provisioning profiles */ | 611 | /* remove all provisioning profiles */ |
| 632 | plist_t profiles = NULL; | 612 | plist_t profiles = NULL; |
| 633 | misagent_error_t merr; | 613 | misagent_error_t merr; |
| 634 | if (product_version < 0x090300) { | 614 | if (device_version < IDEVICE_DEVICE_VERSION(9,3,0)) { |
| 635 | merr = misagent_copy(mis, &profiles); | 615 | merr = misagent_copy(mis, &profiles); |
| 636 | } else { | 616 | } else { |
| 637 | merr = misagent_copy_all(mis, &profiles); | 617 | merr = misagent_copy_all(mis, &profiles); |
