private bool ConnectToPhone() { if (MobileDevice.AMDeviceConnect(ref iPhoneHandle) == 1) { //int connid; throw new Exception("Phone in recovery mode, support not yet implemented"); //connid = MobileDevice.AMDeviceGetConnectionID(ref iPhoneHandle); //MobileDevice.AMRestoreModeDeviceCreate(0, connid, 0); //return false; } if (MobileDevice.AMDeviceIsPaired(ref iPhoneHandle) == 0) { return(false); } if (MobileDevice.AMDeviceValidatePairing(ref iPhoneHandle) != 0) { return(false); } if (MobileDevice.AMDeviceStartSession(ref iPhoneHandle) == 1) { return(false); } if (MobileDevice.AMDeviceStartService(ref iPhoneHandle, MobileDevice.StringToCFString("com.apple.afc2"), ref hAFC, IntPtr.Zero) != 0) { if (MobileDevice.AMDeviceStartService(ref iPhoneHandle, MobileDevice.StringToCFString("com.apple.afc"), ref hAFC, IntPtr.Zero) != 0) { return(false); } } if (MobileDevice.AFCConnectionOpen(hAFC, 0, ref hAFC) != 0) { return(false); } connected = true; return(true); }