Benjamin-Dobell / Heimdall

Heimdall is a cross-platform open-source tool suite used to flash firmware (aka ROMs) onto Samsung Galaxy devices.
MIT License
2.62k stars 587 forks source link

[SM-A207F] Failed to send handshake #501

Closed TheAirBlow closed 3 years ago

TheAirBlow commented 3 years ago

First my tool Hreidmar was unable to send handshake, which makes debugging for me impossible. After that tried to do the same thing with Heimdall - I get the same error.

This device is most fucked up thing I've ever seen. Firmware is Samsung Official, but it FOTA says that it's not. Bootloader doesn't let to flash custom firmware even with unlocked bootloader, and now I can't even establish a connection.

What the fuck, and how do I fix this? P.S. Not a problem with the cable or drivers - I have two of them and none of them worked, and LibUSB works for other devices.

The strangest thing here that I flashed firmware before, successfully. After a few days no connection could be established. What?

TheAirBlow commented 3 years ago

Also, it resets the device first:

        /// <summary>
        /// Initialize an USB device
        /// </summary>
        /// <param name="device">USB device</param>
        public DeviceSession(MonoUsbDevice device)
        {
            void CheckForErrors() {
                if (_error != MonoUsbError.Success) 
                    throw new Exception($"{_error}");
            }

            var mono = device;
            if (UsbDevice.LastErrorString.Contains("Access denied", StringComparison.CurrentCultureIgnoreCase))
                throw new Exception("Access denied!");
            _deviceHandle = mono.Profile.OpenDeviceHandle();
            _error = (MonoUsbError) MonoUsbApi.ResetDevice(_deviceHandle); CheckForErrors();
            _deviceHandle.Close();
            _deviceHandle = mono.Profile.OpenDeviceHandle();
            _device = device;
            Initialize();
        }
TheAirBlow commented 3 years ago

P.S. Other guy with the same device (and latest firmware) reported that connecting works. Something is wrong with mine.

TheAirBlow commented 3 years ago

I'll try to reset before handshake, not before initialization.

TheAirBlow commented 3 years ago

I'll try to reset before handshake, not before initialization.

That fixed it for Hreidmar (my tool). Also, it's a duplicate.