@@ -134,6 +134,7 @@ int start_session(std::string& device_identifier)
134
134
{
135
135
const DeviceInfo* device_info = devices[device_identifier].device_info ;
136
136
UNLOCK_MUTEX_AND_RETURN_IF_FAILED_RESULT (AMDeviceConnect (device_info), start_session_mutex);
137
+ assert (AMDeviceIsPaired (device_info));
137
138
UNLOCK_MUTEX_AND_RETURN_IF_FAILED_RESULT (AMDeviceValidatePairing (device_info), start_session_mutex);
138
139
UNLOCK_MUTEX_AND_RETURN_IF_FAILED_RESULT (AMDeviceStartSession (device_info), start_session_mutex);
139
140
}
@@ -242,6 +243,10 @@ void get_device_properties(std::string device_identifier, json &result)
242
243
result[" deviceName" ] = get_device_property_value (device_identifier, " DeviceName" );
243
244
result[" productVersion" ] = get_device_property_value (device_identifier, kProductVersion );
244
245
result[" deviceColor" ] = get_device_property_value (device_identifier, " DeviceColor" );
246
+ // available values:
247
+ // "BluetoothAddress","BoardId","CPUArchitecture","ChipID","DeviceClass",
248
+ // "DeviceColor","DeviceName","FirmwareVersion","HardwareModel",
249
+ // "ModelNumber","ProductType","ProductVersion","UniqueDeviceID","WiFiAddress"
245
250
}
246
251
247
252
inline bool has_complete_status (std::map<std::string, boost::any>& dict)
@@ -259,11 +264,12 @@ void on_device_found(const DevicePointer* device_ptr, std::string device_identif
259
264
2 - wifi interface type
260
265
*/
261
266
int interface_type = AMDeviceGetInterfaceType (device_ptr->device_info );
262
- if (interface_type == kUSBInterfaceType ) {
267
+ if (interface_type == kUSBInterfaceType || interface_type == kWIFIInterfaceType ) {
263
268
devices[device_identifier] = { device_ptr->device_info , nullptr };
264
269
result[kEventString ] = eventString;
270
+ result[kConnectionType ] = interface_type;
265
271
get_device_properties (device_identifier, result);
266
- }
272
+ }
267
273
}
268
274
269
275
void device_notification_callback (const DevicePointer* device_ptr)
@@ -497,14 +503,16 @@ void uninstall_application(std::string application_identifier, std::string devic
497
503
return ;
498
504
}
499
505
500
- HANDLE socket = start_secure_service (device_identifier, kInstallationProxy , method_id, true , false ). socket ;
501
- if (!socket)
506
+ ServiceInfo serviceInfo = start_secure_service (device_identifier, kInstallationProxy , method_id, true , false );
507
+ if (!serviceInfo. socket )
502
508
{
503
509
return ;
504
510
}
505
511
506
512
CFStringRef appid_cfstring = create_CFString (application_identifier.c_str ());
507
- unsigned result = AMDeviceUninstallApplication (socket, appid_cfstring, NULL , [] {}, NULL );
513
+ DeviceInfo* deviceInfo = devices[device_identifier].device_info ;
514
+ CFDictionaryRef params = CFDictionaryCreate (NULL , {}, {}, 0 , NULL , NULL );
515
+ unsigned result = AMDeviceSecureUninstallApplication (serviceInfo.connection , deviceInfo, appid_cfstring, params, NULL );
508
516
CFRelease (appid_cfstring);
509
517
510
518
if (result)
@@ -1137,7 +1145,7 @@ void post_notification(std::string device_identifier, PostNotificationInfo post_
1137
1145
void await_notification_response (std::string device_identifier, AwaitNotificationResponseInfo await_notification_response_info, std::string method_id)
1138
1146
{
1139
1147
ServiceConnRef connection = serviceConnections[(int )await_notification_response_info.socket ];
1140
- std::string invalid_connection_error_message = " Invalid connectionId : " + std::to_string (await_notification_response_info.socket );
1148
+ std::string invalid_connection_error_message = " Invalid socket : " + std::to_string (await_notification_response_info.socket );
1141
1149
PRINT_ERROR_AND_RETURN_IF_FAILED_RESULT (connection == nullptr , invalid_connection_error_message.c_str (), device_identifier, method_id);
1142
1150
1143
1151
ServiceInfo currentNotificationProxy = devices[device_identifier].services [kNotificationProxy ];
0 commit comments