Update/Replace Driver like Zadig in C#

Viewed 20

Hello I need help in creating C# updating/replacing drivers like zadig but I dont know where to start, I found devcon but it is to big to use in my C# project, can anyone give me tips or maybe simple codes what dll I should use and link of documentation so I will study how it works. this is what I have for detecting device

        private static void GenerateUDIDs()
        {
            NativeLibraries.Load();

            ReadOnlyCollection<string> udids;
            int count = 0;

            var idevice = LibiMobileDevice.Instance.iDevice;
            var lockdown = LibiMobileDevice.Instance.Lockdown;

            var ret = idevice.idevice_get_device_list(out udids, ref count);

            if (ret == iDeviceError.NoDevice)
            {
                // Not actually an error in our case
                Console.WriteLine("No devices found");
                return;
            }

            ret.ThrowOnError();

            int NumberOfDeviceConnected = udids.Count;
            Console.WriteLine($"\n Number of Devices Connected: {NumberOfDeviceConnected}");
            if(NumberOfDeviceConnected > 1)
            {
                //error because too many devices connected
            }
            var dev = udids[0];
            UDID = dev;
            iDeviceHandle deviceHandle;
            idevice.idevice_new(out deviceHandle, dev).ThrowOnError();
            LockdownClientHandle lockdownHandle;
            lockdown.lockdownd_client_new_with_handshake(deviceHandle, out lockdownHandle, "Quamotion").ThrowOnError();


            string deviceName;
            lockdown.lockdownd_get_device_name(lockdownHandle, out deviceName).ThrowOnError();

            iMobileDevice.Plist.PlistHandle device;
            lockdown.lockdownd_get_value(lockdownHandle, null, "SerialNumber", out device).ThrowOnError();
            device.Api.Plist.plist_get_string_val(device, out SERIAL);

            lockdown.lockdownd_get_value(lockdownHandle, null, "ProductVersion", out device).ThrowOnError();
            device.Api.Plist.plist_get_string_val(device, out IOS);

            lockdown.lockdownd_get_value(lockdownHandle, null, "DeviceName", out device).ThrowOnError();
            device.Api.Plist.plist_get_string_val(device, out DeviceName);

            lockdown.lockdownd_get_value(lockdownHandle, null, "DeviceClass", out device).ThrowOnError();
            device.Api.Plist.plist_get_string_val(device, out DEVICECLASS);
}
0 Answers
Related