diff options
| author | 2020-09-10 15:12:21 +0200 | |
|---|---|---|
| committer | 2020-09-10 15:12:21 +0200 | |
| commit | 98056a89648f431759c5fa4ed87c6ea6ba0cdd3f (patch) | |
| tree | 074d103f38e53b4eaa19eb320ceccd55f1db528c /src | |
| parent | d857a83272d921929ae6ccf1fa70d85768840e84 (diff) | |
| download | libimobiledevice-98056a89648f431759c5fa4ed87c6ea6ba0cdd3f.tar.gz libimobiledevice-98056a89648f431759c5fa4ed87c6ea6ba0cdd3f.tar.bz2 | |
debugserver: Fix service startup for iOS 14b4+
Diffstat (limited to 'src')
| -rw-r--r-- | src/debugserver.c | 11 | ||||
| -rw-r--r-- | src/lockdown.c | 5 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/debugserver.c b/src/debugserver.c index c517017..cc0e73f 100644 --- a/src/debugserver.c +++ b/src/debugserver.c | |||
| @@ -80,7 +80,10 @@ LIBIMOBILEDEVICE_API debugserver_error_t debugserver_client_new(idevice_t device | |||
| 80 | debug_info("Creating base service client failed. Error: %i", ret); | 80 | debug_info("Creating base service client failed. Error: %i", ret); |
| 81 | return ret; | 81 | return ret; |
| 82 | } | 82 | } |
| 83 | service_disable_bypass_ssl(parent, 1); | 83 | |
| 84 | if (service->identifier && (strcmp(service->identifier, DEBUGSERVER_SECURE_SERVICE_NAME) != 0)) { | ||
| 85 | service_disable_bypass_ssl(parent, 1); | ||
| 86 | } | ||
| 84 | 87 | ||
| 85 | debugserver_client_t client_loc = (debugserver_client_t) malloc(sizeof(struct debugserver_client_private)); | 88 | debugserver_client_t client_loc = (debugserver_client_t) malloc(sizeof(struct debugserver_client_private)); |
| 86 | client_loc->parent = parent; | 89 | client_loc->parent = parent; |
| @@ -95,7 +98,11 @@ LIBIMOBILEDEVICE_API debugserver_error_t debugserver_client_new(idevice_t device | |||
| 95 | LIBIMOBILEDEVICE_API debugserver_error_t debugserver_client_start_service(idevice_t device, debugserver_client_t * client, const char* label) | 98 | LIBIMOBILEDEVICE_API debugserver_error_t debugserver_client_start_service(idevice_t device, debugserver_client_t * client, const char* label) |
| 96 | { | 99 | { |
| 97 | debugserver_error_t err = DEBUGSERVER_E_UNKNOWN_ERROR; | 100 | debugserver_error_t err = DEBUGSERVER_E_UNKNOWN_ERROR; |
| 98 | service_client_factory_start_service(device, DEBUGSERVER_SERVICE_NAME, (void**)client, label, SERVICE_CONSTRUCTOR(debugserver_client_new), &err); | 101 | service_client_factory_start_service(device, DEBUGSERVER_SECURE_SERVICE_NAME, (void**)client, label, SERVICE_CONSTRUCTOR(debugserver_client_new), &err); |
| 102 | if (err != DEBUGSERVER_E_SUCCESS) { | ||
| 103 | err = DEBUGSERVER_E_UNKNOWN_ERROR; | ||
| 104 | service_client_factory_start_service(device, DEBUGSERVER_SERVICE_NAME, (void**)client, label, SERVICE_CONSTRUCTOR(debugserver_client_new), &err); | ||
| 105 | } | ||
| 99 | return err; | 106 | return err; |
| 100 | } | 107 | } |
| 101 | 108 | ||
diff --git a/src/lockdown.c b/src/lockdown.c index 79353f2..49f757c 100644 --- a/src/lockdown.c +++ b/src/lockdown.c | |||
| @@ -1307,6 +1307,7 @@ static lockdownd_error_t lockdownd_do_start_service(lockdownd_client_t client, c | |||
| 1307 | *service = (lockdownd_service_descriptor_t)malloc(sizeof(struct lockdownd_service_descriptor)); | 1307 | *service = (lockdownd_service_descriptor_t)malloc(sizeof(struct lockdownd_service_descriptor)); |
| 1308 | (*service)->port = 0; | 1308 | (*service)->port = 0; |
| 1309 | (*service)->ssl_enabled = 0; | 1309 | (*service)->ssl_enabled = 0; |
| 1310 | (*service)->identifier = strdup(identifier); | ||
| 1310 | 1311 | ||
| 1311 | /* read service port number */ | 1312 | /* read service port number */ |
| 1312 | plist_t node = plist_dict_get_item(dict, "Port"); | 1313 | plist_t node = plist_dict_get_item(dict, "Port"); |
| @@ -1511,8 +1512,10 @@ LIBIMOBILEDEVICE_API lockdownd_error_t lockdownd_data_classes_free(char **classe | |||
| 1511 | 1512 | ||
| 1512 | LIBIMOBILEDEVICE_API lockdownd_error_t lockdownd_service_descriptor_free(lockdownd_service_descriptor_t service) | 1513 | LIBIMOBILEDEVICE_API lockdownd_error_t lockdownd_service_descriptor_free(lockdownd_service_descriptor_t service) |
| 1513 | { | 1514 | { |
| 1514 | if (service) | 1515 | if (service) { |
| 1516 | free(service->identifier); | ||
| 1515 | free(service); | 1517 | free(service); |
| 1518 | } | ||
| 1516 | 1519 | ||
| 1517 | return LOCKDOWN_E_SUCCESS; | 1520 | return LOCKDOWN_E_SUCCESS; |
| 1518 | } | 1521 | } |
