public void UpdateLocation(Location location) { // no device is connected. if (Devices.Count == 0) { return; } var Longitude = location.Longitude.ToString(); var Latitude = location.Latitude.ToString(); var Altitude = location.Altitude.ToString(); for (int i = 0; i < Devices.Count(); i++) { DeviceModel itm = Devices[i]; UpdateLocation(Longitude, Latitude, Altitude, itm); } }
public dev_prov(MainWindow mwnd, List <DeviceModel> Devices) { InitializeComponent(); detailed_devinfo.ReadOnly = true; device = Devices[0]; this.devinfo.Text = device.Name + "(" + device.Version + ")"; if (device.isDevMode) { this.detailed_devinfo.Text = "Device is already properly provisioned!"; this.start_prov_btn.Enabled = false; } else { this.detailed_devinfo.Text = "Device is NOT provisioned\n"; this.start_prov_btn.Enabled = true; } }
public void device_add_remove(DeviceModel device, dev_op op_type) { switch (op_type) { case dev_op.add_device: if (device.isDevMode == false) { device.Name += " (UNPROVISIONED)"; } Devices.Add(device); break; case dev_op.remove_device: Devices.Remove(device); break; case dev_op.clear_all: Devices.Clear(); break; default: break; } }
public void stop_service(DeviceModel itm) { var size = BitConverter.GetBytes(1u); Array.Reverse(size); var num = 1u; iDevice.idevice_new(out var device, itm.UDID); var ret_handshake = lockdown.lockdownd_client_new_with_handshake(device, out var client, "devicelocation"); if (ret_handshake != 0) { return; } var ret_start_service = lockdown.lockdownd_start_service(client, "com.apple.dt.simulatelocation", out var service2); if (ret_start_service != 0) { return; } var se = service.service_client_new(device, service2, out var client2); if (se != 0) { return; } se = service.service_send(client2, size, 4u, ref num); if (se != 0) { return; } }
private int create_new_device(string udid, ref DeviceModel device) { iDeviceHandle iDeviceHandle; iDevice.idevice_new(out iDeviceHandle, udid).ThrowOnError(); LockdownClientHandle lockdownClientHandle; var ret_handshake = lockdown.lockdownd_client_new_with_handshake(iDeviceHandle, out lockdownClientHandle, "Quamotion"); if (ret_handshake != 0) { return(-1); } var ret_get_devname = lockdown.lockdownd_get_device_name(lockdownClientHandle, out var deviceName); if (ret_get_devname != 0) { return(-1); } ret_handshake = lockdown.lockdownd_client_new_with_handshake(iDeviceHandle, out lockdownClientHandle, "waua"); if (ret_handshake != 0) { return(-1); } var ret_get_value = lockdown.lockdownd_get_value(lockdownClientHandle, null, "ProductVersion", out var node); if (ret_get_devname != 0) { return(-1); } LibiMobileDevice.Instance.Plist.plist_get_string_val(node, out var version); ret_get_value = lockdown.lockdownd_get_value(lockdownClientHandle, null, "BuildVersion", out node); if (ret_get_devname != 0) { return(-1); } LibiMobileDevice.Instance.Plist.plist_get_string_val(node, out var bldVersion); iDeviceHandle.Dispose(); lockdownClientHandle.Dispose(); device.UDID = udid; device.Name = deviceName; device.Version = version; device.BuildVersion = bldVersion; device.ShortVersion = string.Join(".", version.Split('.').Take(2)); device.FullVersion = string.Join(".", version.Split('.').Take(2)) + "(" + bldVersion + ")"; device.isDevMode = DeviceUtils.is_device_on_dev_mode(udid); return(0); }
private void UpdateLocation(string Longitude, string Latitude, string Altitude, DeviceModel itm) { var size = BitConverter.GetBytes(0u); Array.Reverse(size); var num = 0u; iDevice.idevice_new(out var device, itm.UDID); var ret_handshake = lockdown.lockdownd_client_new_with_handshake(device, out var client, "devicelocation"); if (ret_handshake != 0) { return; } if (!itm.isDevMode) { return; } var ret_start_service = lockdown.lockdownd_start_service(client, "com.apple.dt.simulatelocation", out var service2); if (ret_start_service != 0) { return; } var se = service.service_client_new(device, service2, out var client2); if (se != 0) { return; } se = service.service_send(client2, size, 4u, ref num); if (se != 0) { return; } num = 0u; var bytesLocation = Encoding.ASCII.GetBytes(Latitude); size = BitConverter.GetBytes((uint)Latitude.Length); Array.Reverse(size); se = service.service_send(client2, size, 4u, ref num); se = service.service_send(client2, bytesLocation, (uint)bytesLocation.Length, ref num); bytesLocation = Encoding.ASCII.GetBytes(Longitude); size = BitConverter.GetBytes((uint)Longitude.Length); Array.Reverse(size); se = service.service_send(client2, size, 4u, ref num); se = service.service_send(client2, bytesLocation, (uint)bytesLocation.Length, ref num); bytesLocation = Encoding.ASCII.GetBytes(Altitude); size = BitConverter.GetBytes((uint)Altitude.Length); Array.Reverse(size); se = service.service_send(client2, size, 4u, ref num); se = service.service_send(client2, bytesLocation, (uint)bytesLocation.Length, ref num); device.Close(); device.Dispose(); client.Dispose(); client2.Dispose(); service2.Dispose(); }
public static string get_ddi_image_url(DeviceModel deviceInfo) { return(ddi_repo_url + deviceInfo.FullVersion + ".zip"); }