summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/ideviceprovision.c26
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);