Revert "Add support for listing, downloading, installing, and uninstalling provisioning profiles." This reverts commit fd096ddd933a612dc2521495a7c5b2d8343927b9.
diff --git a/src/ios-deploy/ios-deploy.m b/src/ios-deploy/ios-deploy.m index af74ca8..06eb792 100644 --- a/src/ios-deploy/ios-deploy.m +++ b/src/ios-deploy/ios-deploy.m
@@ -96,13 +96,6 @@ int AMDServiceConnectionReceive(ServiceConnRef con, void * data, size_t size); uint64_t AMDServiceConnectionReceiveMessage(ServiceConnRef con, CFPropertyListRef message, CFPropertyListFormat *format); uint64_t AMDServiceConnectionSendMessage(ServiceConnRef con, CFPropertyListRef message, CFPropertyListFormat format); -CFArrayRef AMDeviceCopyProvisioningProfiles(AMDeviceRef device); -int AMDeviceInstallProvisioningProfile(AMDeviceRef device, void *profile); -int AMDeviceRemoveProvisioningProfile(AMDeviceRef device, CFStringRef uuid); -CFStringRef MISProvisioningProfileGetValue(void *profile, CFStringRef key); -CFDictionaryRef MISProfileCopyPayload(void *profile); -void *MISProfileCreateWithData(int zero, CFDataRef data); -int MISProfileWriteToFile(void *profile, CFStringRef dest_path); bool found_device = false, debug = false, verbose = false, unbuffered = false, nostart = false, debugserver_only = false, detect_only = false, install = true, uninstall = false, no_wifi = false; bool faster_path_search = false; @@ -124,8 +117,6 @@ char *list_root = NULL; const char * custom_script_path = NULL; char *symbols_download_directory = NULL; -char *profile_uuid = NULL; -char *profile_path = NULL; int _timeout = 0; int _detectDeadlockTimeout = 0; bool _json_output = false; @@ -1853,146 +1844,6 @@ check_error(AMDeviceDisconnect(device)); } -void replace_dict_date_with_absolute_time(CFMutableDictionaryRef dict, CFStringRef key) { - CFDateRef date = CFDictionaryGetValue(dict, key); - CFAbsoluteTime absolute_date = CFDateGetAbsoluteTime(date); - CFNumberRef absolute_date_ref = CFNumberCreate(NULL, kCFNumberDoubleType, &absolute_date); - CFDictionaryReplaceValue(dict, key, absolute_date_ref); - CFRelease(absolute_date_ref); -} - -void list_provisioning_profiles(AMDeviceRef device) { - connect_and_start_session(device); - CFArrayRef device_provisioning_profiles = AMDeviceCopyProvisioningProfiles(device); - - CFIndex provisioning_profiles_count = CFArrayGetCount(device_provisioning_profiles); - CFMutableArrayRef serializable_provisioning_profiles = - CFArrayCreateMutable(NULL, provisioning_profiles_count, &kCFTypeArrayCallBacks); - - for (CFIndex i = 0; i < provisioning_profiles_count; i++) { - void *device_provisioning_profile = - (void *)CFArrayGetValueAtIndex(device_provisioning_profiles, i); - CFDictionaryRef serializable_provisioning_profile; - - if (verbose) { - // Fetch the entire provisioning profile and copy it into a mutable dictionary so we can - // process it as needed. - CFDictionaryRef immutable_profile_dict = - MISProfileCopyPayload(device_provisioning_profile); - CFMutableDictionaryRef mutable_profile_dict = - CFDictionaryCreateMutableCopy(kCFAllocatorDefault, 0, immutable_profile_dict); - CFRelease(immutable_profile_dict); - - // Remove binary values from the output since they aren't readable and add a whole lot - // of noise to the output. - CFDictionaryRemoveValue(mutable_profile_dict, CFSTR("DER-Encoded-Profile")); - CFDictionaryRemoveValue(mutable_profile_dict, CFSTR("DeveloperCertificates")); - if (_json_output) { - // JSON output can't have certain CFDate objects so convert dates into stringified - // CFAbsoluteTime's respectively. - replace_dict_date_with_absolute_time(mutable_profile_dict, CFSTR("ExpirationDate")); - replace_dict_date_with_absolute_time(mutable_profile_dict, CFSTR("CreationDate")); - } - serializable_provisioning_profile = mutable_profile_dict; - } else { - // We're not in verbose mode so pluck out only particularly interesting keys. - CFStringRef uuid = MISProvisioningProfileGetValue(device_provisioning_profile, "UUID"); - CFStringRef name = MISProvisioningProfileGetValue(device_provisioning_profile, "Name"); - CFDateRef date = - MISProvisioningProfileGetValue(device_provisioning_profile, "ExpirationDate"); - CFAbsoluteTime absolute_date = CFDateGetAbsoluteTime(date); - CFNumberRef absolute_date_ref = - CFNumberCreate(NULL, kCFNumberDoubleType, &absolute_date); - - CFStringRef keys[] = {CFSTR("Name"), CFSTR("UUID"), CFSTR("ExpirationDate")}; - CFTypeRef values[] = {name, uuid, absolute_date_ref}; - CFIndex size = sizeof(keys) / sizeof(CFStringRef); - serializable_provisioning_profile = CFDictionaryCreate( - NULL, (const void **)&keys, (const void **)&values, size, - &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - CFRelease(absolute_date_ref); - } - - CFArrayAppendValue(serializable_provisioning_profiles, serializable_provisioning_profile); - CFRelease(serializable_provisioning_profile); - } - CFRelease(device_provisioning_profiles); - - if (_json_output) { - NSLogJSON(@{ - @"Event" : @"ListProvisioningProfiles", - @"Profiles" : (NSArray *)serializable_provisioning_profiles - }); - } else { - NSLogOut(@"%@", serializable_provisioning_profiles); - } - CFRelease(serializable_provisioning_profiles); -} - -void install_provisioning_profile(AMDeviceRef device) { - if (!profile_path) { - on_error(@"no path to provisioning profile specified"); - } - - size_t file_size = 0; - void *file_content = read_file_to_memory(profile_path, &file_size); - CFDataRef profile_data = CFDataCreate(NULL, file_content, file_size); - void *profile = MISProfileCreateWithData(0, profile_data); - connect_and_start_session(device); - check_error(AMDeviceInstallProvisioningProfile(device, profile)); - - free(file_content); - CFRelease(profile_data); - CFRelease(profile); -} - -void uninstall_provisioning_profile(AMDeviceRef device) { - if (!profile_uuid) { - on_error(@"no profile UUID specified via --profile-uuid"); - } - - CFStringRef uuid = CFStringCreateWithCString(NULL, profile_uuid, kCFStringEncodingUTF8); - connect_and_start_session(device); - check_error(AMDeviceRemoveProvisioningProfile(device, uuid)); - CFRelease(uuid); -} - -void download_provisioning_profile(AMDeviceRef device) { - if (!profile_uuid) { - on_error(@"no profile UUID specified via --profile-uuid"); - } else if (!profile_path) { - on_error(@"no download path specified"); - } - - connect_and_start_session(device); - CFArrayRef device_provisioning_profiles = AMDeviceCopyProvisioningProfiles(device); - CFIndex provisioning_profiles_count = CFArrayGetCount(device_provisioning_profiles); - CFStringRef uuid = CFStringCreateWithCString(NULL, profile_uuid, kCFStringEncodingUTF8); - bool found_matching_uuid = false; - - for (CFIndex i = 0; i < provisioning_profiles_count; i++) { - void *profile = (void *)CFArrayGetValueAtIndex(device_provisioning_profiles, i); - CFStringRef other_uuid = MISProvisioningProfileGetValue(profile, "UUID"); - found_matching_uuid = CFStringCompare(uuid, other_uuid, 0) == kCFCompareEqualTo; - - if (found_matching_uuid) { - NSLogVerbose(@"Writing %@ to %s", MISProvisioningProfileGetValue(profile, "Name"), - profile_path); - CFStringRef dst_path = - CFStringCreateWithCString(NULL, profile_path, kCFStringEncodingUTF8); - check_error(MISProfileWriteToFile(profile, dst_path)); - CFRelease(dst_path); - break; - } - } - - CFRelease(uuid); - CFRelease(device_provisioning_profiles); - if (!found_matching_uuid) { - on_error(@"Did not find provisioning profile with UUID %x on device", profile_uuid); - } -} - void list_bundle_id(AMDeviceRef device) { connect_and_start_session(device); @@ -2595,14 +2446,6 @@ get_battery_level(device); } else if (strcmp("symbols", command) == 0) { download_device_symbols(device); - } else if (strcmp("list_profiles", command) == 0) { - list_provisioning_profiles(device); - } else if (strcmp("install_profile", command) == 0) { - install_provisioning_profile(device); - } else if (strcmp("uninstall_profile", command) == 0) { - uninstall_provisioning_profile(device); - } else if (strcmp("download_profile", command) == 0) { - download_provisioning_profile(device); } exit(0); } @@ -2864,11 +2707,6 @@ @" --custom-script <script> path to custom python script to execute in lldb\n" @" --custom-command <command> specify additional lldb commands to execute\n" @" --faster-path-search use alternative logic to find the device support paths faster\n", - @" -P, --list_profiles list all provisioning profiles on device\n" - @" --profile-uuid <uuid> the UUID of the provisioning profile to target, use with other profile commands\n" - @" --profile-download <path> download a provisioning profile (requires --profile-uuid)\n" - @" --profile-install <file> install a provisioning profile\n" - @" --profile-uninstall uninstall a provisioning profile (requires --profile-uuid)\n", [NSString stringWithUTF8String:app]); } @@ -2926,14 +2764,9 @@ { "non-recursively", no_argument, NULL, 'F'}, { "key", optional_argument, NULL, 'k' }, { "symbols", required_argument, NULL, 'S' }, - { "list_profiles", no_argument, NULL, 'P' }, { "custom-script", required_argument, NULL, 1001}, { "custom-command", required_argument, NULL, 1002}, { "faster-path-search", no_argument, NULL, 1003}, - { "profile-install", required_argument, NULL, 1004}, - { "profile-uninstall", no_argument, NULL, 1005}, - { "profile-download", required_argument, NULL, 1006}, - { "profile-uuid", required_argument, NULL, 1007}, { NULL, 0, NULL, 0 }, }; int ch; @@ -3092,27 +2925,6 @@ case 1003: faster_path_search = true; break; - case 1004: - command_only = true; - command = "install_profile"; - profile_path = optarg; - break; - case 1005: - command_only = true; - command = "uninstall_profile"; - break; - case 1006: - command_only = true; - command = "download_profile"; - profile_path = optarg; - break; - case 1007: - profile_uuid = optarg; - break; - case 'P': - command_only = true; - command = "list_profiles"; - break; case 'k': if (!keys) keys = [[NSMutableArray alloc] init]; [keys addObject: [NSString stringWithUTF8String:optarg]];