Coder Social home page Coder Social logo

benjamin-dobell / heimdall Goto Github PK

View Code? Open in Web Editor NEW
2.5K 142.0 581.0 8.79 MB

Heimdall is a cross-platform open-source tool suite used to flash firmware (aka ROMs) onto Samsung Galaxy devices.

License: MIT License

CMake 3.11% Shell 0.13% C 0.97% C++ 95.79%
samsung android mobile flashing firmware odin

heimdall's Introduction

Heimdall

Heimdall is a cross-platform open-source tool suite used to flash firmware (aka ROMs) onto Samsung mobile devices.

Supported Platforms

Officially, AMD64/x86-64 (64-bit) or x86 (32-bit) computers running:

  • Linux
  • macOS
  • Windows (XP, Vista, 7 etc.)

However, several third-parties have reported success running Heimdall on ARM chipsets (in particular Raspberry Pi), as well as additional operating systems such as FreeBSD.

How does Heimdall work?

Heimdall connects to a mobile device over USB and interacts with low-level software running on the device, known as Loke. Loke and Heimdall communicate via the custom Samsung-developed protocol typically referred to as the 'Odin 3 protocol'.

USB communication in Heimdall is handled by the popular open-source USB library, libusb.

Free & Open Source

Heimdall is both free and open source. It is licensed under the MIT license (see LICENSE).

Heimdall is maintained and predominantly developed by Glass Echidna, a tiny independent software development company. If you appreciate our work and would like to support future development please consider making a donation.

Documentation

For more details about how to compile and install Heimdall please refer to the appropriate platform specific README:

Linux

OS X

Windows

heimdall's People

Contributors

aidansteele avatar alanorth avatar benjamin-dobell avatar fbqc avatar grayed avatar jorti avatar kratz00 avatar ljani avatar luk1337 avatar marclaporte avatar mawillers avatar r-craig avatar spork-schivago avatar vaselo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

heimdall's Issues

"failed to confirm end of PIT file transfer" on OSX Lion

Device: I9000-GT
OS: OSX 10.7.2
Heimdall: 1.3.1
Error: "failed to confirm end of PIT file transfer"

Getting the error regardless of using frontend or command-line. The device is detected without problems.

Was able to flash the same files with the deb version on Ubuntu 11.04

Must install QT framework on Mac OS

Downloaded and installed Hemidall Frontend 1.1.1 but when I start it it bails out every time saying that QTgui.framework is not available. Installed QT framework from Nokia and it works. I don't think this should be a requirement - please bundle the required libraries with your installer!

Device not detected (OSX / Android 2.2 / GT9000i)

Steps to repeat

  1. The device is in download mode

  2. Plug-in microUSB

  3. Start Heimdall front-end or run the command-line tool

    heimdall detect
    Failed to detect compatible download-mode device.

OSX Snow Leopard / Heimdall 1.3.0.

From kernel.log:

Oct  2 09:17:20 Pkunk kernel[0]: USBF:  1527.170    [0x7229d00] The IOUSBFamily was not able to enumerate a device.
Oct  2 09:17:41 Pkunk kernel[0]: USBF:  1547.637    AppleUSBEHCI[0x71ec800]::Found a transaction which hasn't moved in 5 seconds on bus 0x26, timing out! (Addr: 0, EP: 0)
Oct  2 09:17:41 Pkunk kernel[0]: USBF:  1547.671    [0x7229d00] The IOUSBFamily is having trouble enumerating a USB device that has been plugged in.  It will keep retrying.  (Port 2 of Hub at 0x26000000)
Oct  2 09:17:47 Pkunk kernel[0]: USBF:  1553.637    AppleUSBEHCI[0x71ec800]::Found a transaction which hasn't moved in 5 seconds on bus 0x26, timing out! (Addr: 0, EP: 0)

No idea what to check next.

Heimdall 1.2.0 does not work with Galaxy Tab

I commented on the glassechidna web page but then tried some more things. My verbose log is here: http://pastebin.com/2zLHW2LG

I get the same error with Fedora 14 (which worked before) and Fedora 15.

I tried "kMaxSequenceLength = 1600" and "--delay 15" as suggested in issue#14 but that did not change anything, I got the same error as in the log above.

Finally I reverted to the December version of Heimdall, commit fbab0f5, and that works for me (I tried on Fedora 14, but I'd guess it works on 15 too).

checkinstall fails on heimdall and frontend install

First, a mighty thank-you for your program. I had 2 minor blips installing 1.1.1 on Linux 32 bit. I chose sudo checkinstall for both Heimdall and heimdall-frontend. Both failed, the first because there was no version number and the second because there was no numeral. Both were easily fixed, but I thought I should mention it as it may trap a noob (not that I am much better!). Please keep up the fantastic work.

Galaxy S II i777 (AT&T) fails to flash

i tried this: heimdall flash --kernel zImage --factoryfs factoryfs.img --verbose --no-reboot
and it always fails at 43%

last part of the result:

File Part #786... Response: 0 0 0 0 12 3 0 0
File Part #787... Response: 0 0 0 0 13 3 0 0
File Part #788... Response: 0 0 0 0 14 3 0 0
File Part #789... Response: 0 0 0 0 15 3 0 0
File Part #790... Response: 0 0 0 0 16 3 0 0
File Part #791... Response: 0 0 0 0 17 3 0 0

43%
File Part #792... Response: 0 0 0 0 18 3 0 0
File Part #793... Response: 0 0 0 0 19 3 0 0
File Part #794... Response: 0 0 0 0 1A 3 0 0
File Part #795... Response: 0 0 0 0 1B 3 0 0
File Part #796... Response: 0 0 0 0 1C 3 0 0
File Part #797... Response: 0 0 0 0 1D 3 0 0
File Part #798... Response: 0 0 0 0 1E 3 0 0
File Part #799... Response: 0 0 0 0 1F 3 0 0

ERROR: Failed to confirm end of file transfer sequence!
FACTORYFS upload failed!
Ending session...
Re-attaching kernel driver...


using version 1.3.2 (compiled on Fedora 16 x86_64)

(Brick) Flash ICS New Stock Rom on GT-N7000

Hello,
I have à Samsung GT-N700 (Note) and i us heimdall (1.3.1 because the 1.3.2 don't work on my Debian Wheezy 64 bits) to update the phone.
With the last stock rom produced by Samsung (XXLQ2 for United Kingdom), i brick (small brick) my phone and stay in the start page (logo Samsung) and the phone don't boot.

I can go in recovery mode and download mode so :
I repair the phone by flashing on GB Stock Rom XXLC1-OXA.

Can you do something in the new version of Heimdall ?

New Device: SGH-T989

Hoping that "Recovery mode in Kies" will actually help. close-pc-screen doesn't help.

Built v1.4 RC1 from source on Linux (against libusb 1.0.9)

ran: heimdall flash --recovery recovery.img (from recovery-cmw-hercules.tar - I believe CWM v5)

Device didn't restart.

Holding the power button brings up the "Firmware upgrade encountered an issue" screen (with a diagram of the handheld connected to a desktop machine with a yellow warning triangle.)

heimdall close-pc-screen doesn't do anything.

libusb error -7

Hi,

I tried flashing the I9100XWLP7 ROM. I keep getting this error everytime:

ERROR: libusb error -7 whilst sending packet.

The error occurs when:

  1. I tried to flash the bootloaders only. (both with and without repartition)
  2. I tried to flash the entire ROM (file by file)

Please help. I have taken a dump of the log also, if you want to check.

I have a I9100 phone which was previously running CM10 before it crashed. Now I can go into the download mode ONLY. For any other thing, I get the Mobile--- ! ---- PC image.

make install should not touch the udev service

It's not usual for 'make install' to touch system services. Could you please change this to just print that the user should run 'udevadm trigger reload-rules' as root? The only way for your build system to work is to be run as root, and that's not safe practice anyhow. It's also a headache for anyone trying package this.

New Device: GT-N7000

I have tried installing either Heimdall 1.3.1 and 1.3.2 recently on my Macbook Pro updated to 10.6.8 and all updates applied. When trying to install 1.3.1 and 1.3.2 (the newest first, then going back to 1.3.1 after reading about the regressions), I get the following error after trying to flash a kernel image.

mycomp$ heimdall flash --kernel zImage --verbose
Heimdall v1.3.1, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...

            length: 18
      device class: 2
               S/N: 0
           VID:PID: 04E8:685D
         bcdDevice: 021B
   iMan:iProd:iSer: 1:2:0
          nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
   Class.SubClass.Protocol: 02.02.01
       endpoint[0].address: 83
           max packet size: 0010
          polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: 0A.00.00
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 02
           max packet size: 0200
          polling interval: 00
Claiming interface...
ERROR: Claiming interface failed!

I get the same when using 1.3.1 and 1.3.2. Until the last time, I also received the following issue when following the installer more carefully, I saw a brief pop-up flash.

The system extension "/System/Library/Extensions/heimdall.kext” was installed improperly and cannot be used. Please try reinstalling it, or contact the product’s vendor for an update.

Not sure what I have to do. The only reason I did not receive the above error is because I deleted the kext file previous to the final installation attempt, but I still receive the flashing error. Any thoughts?

heimdall-frontend is missing HIDDEN and MOVINAND partitions

Users are unable to flash Gingerbread ROMs to Samsung devices (e.g. a GT-P1000) using heimdall-frontend because partition entries for the --hidden (hidden.rfs) and --movinand (movinand.mst) CLI options cannot be added via the GUI.

Tested with heimdall-frontend v1.3.2 on both Ubuntu 11.10 Oneiric and 12.04 Precise.

not work with SHW-M110S

Samsung galaxy s for korea (SHW-M110S)
Unexpected device info response!

$  heimdall flash --kernel M110S-Froyo-NPS-IMAGE-REV03-TA13-1912-USER/zImage 

Heimdall, Copyright (c) 2010, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/


Claiming interface...   Failed. Attempting to detach driver...
Claiming interface again...   Success
Setting up interface...   Success
Beginning session...
Handshaking with Loke...   Success

Unexpected device info response!
Expected: 180, 0 or 3
Received:190
Ending session...
Rebooting device...
Re-attaching kernel driver...

It seems works in this thread by appagom
heimdall(modified by me to recognize our phone)

libusb-devel to be replaced by libusb in OSX instructions

OSX heimdall install instructions need to be updated:

$ sudo port install libusb-devel
Password:
--->  Fetching archive for libusb-devel
--->  Attempting to fetch libusb-devel-1.0.8.20101017_3.darwin_12.x86_64.tbz2 from     http://mse.uk.packages.macports.org/sites/packages.macports.org/libusb-devel
--->  Attempting to fetch libusb-devel-1.0.8.20101017_3.darwin_12.x86_64.tbz2 from http://lil.fr.packages.macports.org/libusb-devel
--->  Attempting to fetch libusb-devel-1.0.8.20101017_3.darwin_12.x86_64.tbz2 from http://packages.macports.org/libusb-devel
--->  Fetching distfiles for libusb-devel
--->  Verifying checksum(s) for libusb-devel
--->  Extracting libusb-devel
--->  Configuring libusb-devel
Error: Please do not install this port since it has been replaced by 'libusb'.
Error: org.macports.configure for port libusb-devel returned: 
Please see the log file for port libusb-devel for details:
        /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_libusb-devel/libusb-devel/main.log
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port libusb-devel failed

ERROR: Failed to receive response!

My phone is Samsung Captivate, and since my phone is semi-bricked captivate, I use USB jig to get into recovery mode. Now, I would like to flash the stock ROM back to my phone. I compiled Heimdall from source (the current development version from github) in ubuntu 11.10. When I try to flash the ROM, I get the following error message. However, in Heimdall front-end, the tab of utility shows that Device detected.

Have been spending several hours on it without any clues.

Thanks.

Heimdall v1.3.1, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
Product: "Gadget Serial"
Serial No: "?"

        length: 18
  device class: 2
           S/N: 0
       VID:PID: 04E8:6601
     bcdDevice: 021B

iMan:iProd:iSer: 1:2:0
nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
Class.SubClass.Protocol: 02.02.01
endpoint[0].address: 83
max packet size: 0010
polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
Class.SubClass.Protocol: 0A.00.00
endpoint[0].address: 81
max packet size: 0200
polling interval: 00
endpoint[1].address: 02
max packet size: 0200
polling interval: 00
Claiming interface...
Setting up interface...

Checking if protocol is initialised...
Protocol is not initialised.
Initialising protocol...
Handshaking with Loke...
ERROR: Failed to receive response!

not able to flash Galaxy s3 userdata partition

OS : linux ubuntu 12.04

Here is the pit :

 heimdall print-pit --verbose --no-reboot
Heimdall v1.4 RC1

Copyright (c) 2010-2012, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Detecting device...
      Manufacturer: "SAMSUNG"
           Product: "Gadget Serial"

            length: 18
      device class: 2
               S/N: 0
           VID:PID: 04E8:685D
         bcdDevice: 021B
   iMan:iProd:iSer: 1:2:0
          nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
   Class.SubClass.Protocol: 02.02.01
       endpoint[0].address: 83
           max packet size: 0010
          polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: 0A.00.00
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 02
           max packet size: 0200
          polling interval: 00
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...

Checking if protocol is initialised...
ERROR: libusb error -7 whilst receiving packet.
Protocol is not initialised.

Initialising protocol...
Protocol initialisation successful.

Beginning session...
Session begun with device of type: 0.

Downloading device's PIT file...
PIT file download successful.

Entry Count: 16
Unknown 1: 1598902083
Unknown 2: 844251476
Unknown 3: 30797
Unknown 4: 0
Unknown 5: 0
Unknown 6: 0
Unknown 7: 0
Unknown 8: 0


--- Entry #0 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 80
Attributes: 2 (STL Read-Only)
Update Attributes: 1 (FOTA)
Partition Block Size: 0
Partition Block Count: 1734
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: BOOTLOADER
Flash Filename: sboot.bin
FOTA Filename: 


--- Entry #1 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 81
Attributes: 5 (Read/Write)
Update Attributes: 1 (FOTA)
Partition Block Size: 1734
Partition Block Count: 312
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: TZSW
Flash Filename: tz.img
FOTA Filename: 


--- Entry #2 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 70
Attributes: 5 (Read/Write)
Update Attributes: 1 (FOTA)
Partition Block Size: 34
Partition Block Count: 16
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: PIT
Flash Filename: mx.pit
FOTA Filename: 


--- Entry #3 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 71
Attributes: 5 (Read/Write)
Update Attributes: 1 (FOTA)
Partition Block Size: 50
Partition Block Count: 2048
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: MD5HDR
Flash Filename: md5.img
FOTA Filename: 


--- Entry #4 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 1
Attributes: 5 (Read/Write)
Update Attributes: 1 (FOTA)
Partition Block Size: 8192
Partition Block Count: 8192
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: BOTA0
Flash Filename: -
FOTA Filename: 


--- Entry #5 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 2
Attributes: 5 (Read/Write)
Update Attributes: 1 (FOTA)
Partition Block Size: 16384
Partition Block Count: 8192
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: BOTA1
Flash Filename: -
FOTA Filename: 


--- Entry #6 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 3
Attributes: 5 (Read/Write)
Update Attributes: 5 (FOTA)
Partition Block Size: 24576
Partition Block Count: 40960
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: EFS
Flash Filename: efs.img
FOTA Filename: 


--- Entry #7 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 4
Attributes: 5 (Read/Write)
Update Attributes: 1 (FOTA)
Partition Block Size: 65536
Partition Block Count: 16384
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: PARAM
Flash Filename: param.bin
FOTA Filename: 


--- Entry #8 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 5
Attributes: 5 (Read/Write)
Update Attributes: 1 (FOTA)
Partition Block Size: 81920
Partition Block Count: 16384
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: BOOT
Flash Filename: boot.img
FOTA Filename: 


--- Entry #9 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 6
Attributes: 5 (Read/Write)
Update Attributes: 1 (FOTA)
Partition Block Size: 98304
Partition Block Count: 16384
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: RECOVERY
Flash Filename: recovery.img
FOTA Filename: 


--- Entry #10 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 7
Attributes: 5 (Read/Write)
Update Attributes: 1 (FOTA)
Partition Block Size: 114688
Partition Block Count: 65536
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: RADIO
Flash Filename: modem.bin
FOTA Filename: 


--- Entry #11 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 8
Attributes: 5 (Read/Write)
Update Attributes: 5 (FOTA)
Partition Block Size: 180224
Partition Block Count: 2097152
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: CACHE
Flash Filename: cache.img
FOTA Filename: 


--- Entry #12 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 9
Attributes: 5 (Read/Write)
Update Attributes: 5 (FOTA)
Partition Block Size: 2277376
Partition Block Count: 3145728
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: SYSTEM
Flash Filename: system.img
FOTA Filename: 


--- Entry #13 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 10
Attributes: 5 (Read/Write)
Update Attributes: 5 (FOTA)
Partition Block Size: 5423104
Partition Block Count: 1146880
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: HIDDEN
Flash Filename: hidden.img
FOTA Filename: 


--- Entry #14 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 11
Attributes: 5 (Read/Write)
Update Attributes: 1 (FOTA)
Partition Block Size: 6569984
Partition Block Count: 16384
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: OTA
Flash Filename: -
FOTA Filename: 


--- Entry #15 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 12
Attributes: 5 (Read/Write)
Update Attributes: 5 (FOTA)
Partition Block Size: 6586368
Partition Block Count: 0
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: USERDATA
Flash Filename: userdata.img
FOTA Filename: remained

Ending session...

First I tried with the true partition name :

heimdall flash --USERDATA userdata.img --verbose 
Heimdall v1.4 RC1

Copyright (c) 2010-2012, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
      Manufacturer: "SAMSUNG"
           Product: "Gadget Serial"

            length: 18
      device class: 2
               S/N: 0
           VID:PID: 04E8:685D
         bcdDevice: 021B
   iMan:iProd:iSer: 1:2:0
          nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
   Class.SubClass.Protocol: 02.02.01
       endpoint[0].address: 83
           max packet size: 0010
          polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: 0A.00.00
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 02
           max packet size: 0200
          polling interval: 00
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...

Checking if protocol is initialised...
ERROR: libusb error -7 whilst receiving packet.
Protocol is not initialised.

Initialising protocol...
Protocol initialisation successful.

Beginning session...
Session begun with device of type: 0.

Downloading device's PIT file...
PIT file download successful.

ERROR: Partition "USERDATA" does not exist in the specified PIT.
Ending session...
Rebooting device...
Releasing device interface...
Re-attaching kernel driver...

So, a new try with partition id gives :

heimdall flash --12 userdata.img --verbose 
Heimdall v1.4 RC1

Copyright (c) 2010-2012, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
      Manufacturer: "SAMSUNG"
           Product: "Gadget Serial"

            length: 18
      device class: 2
               S/N: 0
           VID:PID: 04E8:685D
         bcdDevice: 021B
   iMan:iProd:iSer: 1:2:0
          nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
   Class.SubClass.Protocol: 02.02.01
       endpoint[0].address: 83
           max packet size: 0010
          polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: 0A.00.00
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 02
           max packet size: 0200
          polling interval: 00
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...

Checking if protocol is initialised...
ERROR: libusb error -7 whilst receiving packet.
Protocol is not initialised.

Initialising protocol...
Protocol initialisation successful.

Beginning session...
Session begun with device of type: 0.

Downloading device's PIT file...
PIT file download successful.

ERROR: No partition with identifier "12" exists in the specified PIT.
Ending session...
Rebooting device...
Releasing device interface...
Re-attaching kernel driver...

and i have same result with --userdata option.
I think it's an issue, i hope i gave enough information to debug.

Fails to flash recovery (Samsung Galaxy SIII T-Mobile, SGH-T999, both v1.3.1 and v1.3.2)

Attempting to flash a T-Mobile Samsung Galaxy SIII (SGH-T999). Failing with "ERROR: Failed to initialise protocol!". Attempted Heimdall versions 1.3.1 and 1.3.2 with the same output (1.3.1 displayed below, can try 1.3.2 again if requested). Attempting to print the PIT also fails.

Am willing to debug and/or troubleshoot with detailed instructions.

Heimdall v1.3.1, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
      Manufacturer: "Sasmsung"
           Product: "MSM8960"

    length: 18

device class: 2
S/N: 0
VID:PID: 04E8:685D
bcdDevice: 0100


   iMan:iProd:iSer: 1:2:0
          nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
   Class.SubClass.Protocol: 02.02.01
       endpoint[0].address: 82
           max packet size: 0010
          polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: 0A.00.00
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 01
           max packet size: 0200
          polling interval: 00
Claiming interface...
Setting up interface...

Checking if protocol is initialised...
Protocol is not initialised.
Initialising protocol...
ERROR: Failed to initialise protocol!```

libusb error -7 whilst receiving packet

Trying to flash recovery.img from ClockworkMod with Heimdall and I've soft-bricked (Well, I hope just soft-bricked) my SGH-i727.

I compiled Heimdall 1.4RC1 on Ubuntu 11.10, 3.2.0-30 kernel.

sudo heimdall flash --recovery recovery.img seemd to execute just fine, but instead of rebooting normally, my phone switched to the 'Firmware upgrade encountered an issue' text with the big warning triangle.

Here's the output from when I retried flashing:


[16:44][~/Downloads]$ heimdall flash --recovery recovery.img --verbose
Heimdall v1.4 RC1

Copyright (c) 2010-2012, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
      Manufacturer: "Sasmsung"
           Product: "MSM8x60"

            length: 18
      device class: 2
               S/N: 0
           VID:PID: 04E8:685D
         bcdDevice: 0100
   iMan:iProd:iSer: 1:2:0
          nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
   Class.SubClass.Protocol: 02.02.01
       endpoint[0].address: 82
           max packet size: 0010
          polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: 0A.00.00
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 01
           max packet size: 0200
          polling interval: 00
Claiming interface...
Setting up interface...

Checking if protocol is initialised...
Protocol is initialised.

Beginning session...
Session begun with device of type: 30.

In certain situations this device may take up to 2 minutes to respond.
Please be patient!

ERROR: libusb error -7 whilst receiving packet. Retrying...
ERROR: libusb error -7 whilst receiving packet. Retrying...
ERROR: libusb error -7 whilst receiving packet. Retrying...
ERROR: libusb error -7 whilst receiving packet. Retrying...
ERROR: libusb error -7 whilst receiving packet.
Releasing device interface...

I upgraded libusb, etc. as suggested... I REALLY hope I just missed something, but I couldn't track down the issue myself... any help would be appreciated.

1.4RC1 does not work with samsung skyrocket i727

[Original post was confusing, fixed]

Reading pit from phone doesn't work.
After attempting to read pit, phone won't reboot. Instead always gets forced back into download mode with message "Firmware upgrade encountered an issue. Please select recovery mode in Kies & try again." Tried heimdall close-pc-screen but received same libusb -7 error.
Log:

./heimdall print-pit --verbose --stdout-errors
Heimdall v1.4 RC1

Copyright (c) 2010-2012, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
Manufacturer: "Sasmsung"
Product: "MSM8x60"

        length: 18
  device class: 2
           S/N: 0
       VID:PID: 04E8:685D
     bcdDevice: 0100

iMan:iProd:iSer: 1:2:0
nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
Class.SubClass.Protocol: 02.02.01
endpoint[0].address: 82
max packet size: 0010
polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
Class.SubClass.Protocol: 0A.00.00
endpoint[0].address: 81
max packet size: 0200
polling interval: 00
endpoint[1].address: 01
max packet size: 0200
polling interval: 00
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...

Checking if protocol is initialised...
ERROR: libusb error -7 whilst receiving packet.ERROR: libusb error -1730853256 whilst receiving packet.

Protocol is not initialised.

Initialising protocol...
WARNING: Control transfer #1 failed. Result: -9
WARNING: Control transfer #1 failed. Result: -1730853256
WARNING: Control transfer #2 failed. Result: -9
WARNING: Control transfer #2 failed. Result: -1730853256
WARNING: Control transfer #3 failed. Result: -9
WARNING: Control transfer #3 failed. Result: -1730853256
WARNING: Control transfer #4 failed. Result: -9
WARNING: Control transfer #4 failed. Result: -1730853256
WARNING: Control transfer #5 failed. Result: -9
WARNING: Control transfer #5 failed. Result: -1730853256
WARNING: Control transfer #6 failed. Result: -9
WARNING: Control transfer #6 failed. Result: -1730853256
Protocol initialisation successful.

Beginning session...
Session begun with device of type: 30.

In certain situations this device may take up to 2 minutes to respond.
Please be patient!

ERROR: libusb error -7 whilst receiving packet.ERROR: libusb error -1730853256 whilst receiving packet. Retrying...
Retrying...
ERROR: libusb error -7 whilst receiving packet.ERROR: libusb error -1730853256 whilst receiving packet. Retrying...
Retrying...
ERROR: libusb error -7 whilst receiving packet.ERROR: libusb error -1730853256 whilst receiving packet. Retrying...
Retrying...
ERROR: libusb error -7 whilst receiving packet.ERROR: libusb error -1730853256 whilst receiving packet. Retrying...
Retrying...
ERROR: libusb error -7 whilst receiving packet.ERROR: libusb error -1730853256 whilst receiving packet.

Releasing device interface...
Re-attaching kernel driver..


That is all. Now for the stuff you don't care about:

With ben-bot's fork, he added support for the skyrocket . With his fork, reading pit works. With his fork, I can get out of download mode error mentioned above because heimdall crashes after reading pit with *** glibc detected *** ./heimdall: corrupted double-linked list: 0x0000000001ecd5b0 *** and forces a reboot.

Build with UI Xcode 4.0.2

Building latest version in OSX 10.6 produces a heimdall-frontend.pbproj fold which Xcode 4 does not like. Any advice on how to build the ui?

Please improve make and install procedure for heimdall-frontend

Hi,

When compiling heimdall-frontend, it seems that by default installation is done in /usr/local/bin, couldn't you provide something that enables to configure that, the same way you can do it with the configure script, for example by a parameter to qmake?

Also, could it be possible to separate the step of making from the step of installing?

It would ease package creation for Archlinux for example.

Thank you :)

heimdall-frontend fails to make on Ubuntu 32bit

I've included qmake and make outputs for heimdall-frontend and it seems to have errors

qmake heimdall-frontend.pro
heimdall-frontend.pro:37: Unknown test function: isEqual
WARNING: Found potential symbol conflict of mainwindow.cpp (Source/mainwindow.cpp) in SOURCES
WARNING: Found potential symbol conflict of mainwindow.h (Source/mainwindow.h) in HEADERS
WARNING: Found potential symbol conflict of aboutform.cpp (Source/aboutform.cpp) in SOURCES
WARNING: Found potential symbol conflict of aboutform.h (Source/aboutform.h) in HEADERS
WARNING: target.path is not defined: install target not created

make
Makefile:171: warning: overriding commands for target release/mainwindow.o' Makefile:154: warning: ignoring old commands for targetrelease/mainwindow.o'
Makefile:175: warning: overriding commands for target release/aboutform.o' Makefile:145: warning: ignoring old commands for targetrelease/aboutform.o'
Makefile:181: warning: overriding commands for target release/moc_mainwindow.o' Makefile:178: warning: ignoring old commands for targetrelease/moc_mainwindow.o'
Makefile:190: warning: overriding commands for target GeneratedFiles/release/moc_mainwindow.cpp' Makefile:187: warning: ignoring old commands for targetGeneratedFiles/release/moc_mainwindow.cpp'
g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -IGeneratedFiles -I./GeneratedFiles/Release -I. -I/usr/include/qt3 -IGeneratedFiles/ -IGeneratedFiles/release/ -o release/main.o Source/main.cpp
In file included from Source/mainwindow.h:25,
from Source/main.cpp:22:
Source/aboutform.h:22:26: error: ui_aboutform.h: No such file or directory
Source/aboutform.h:25:19: error: QWidget: No such file or directory
In file included from Source/main.cpp:22:
Source/mainwindow.h:26:27: error: ui_mainwindow.h: No such file or directory
Source/mainwindow.h:29:23: error: QMainWindow: No such file or directory
Source/mainwindow.h:30:20: error: QProcess: No such file or directory
Source/main.cpp:25:30: error: QtGui/QApplication: No such file or directory
In file included from Source/mainwindow.h:25,
from Source/main.cpp:22:
Source/aboutform.h:29: error: expected class-name before ‘,’ token
Source/aboutform.h:29: error: ‘Ui’ has not been declared
Source/aboutform.h:29: error: expected ‘{’ before ‘AboutForm’
Source/aboutform.h:30: error: invalid type in declaration before ‘{’ token
Source/aboutform.h:30: warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x
Source/aboutform.h:31: error: expected primary-expression before ‘public’
Source/aboutform.h:31: error: expected ‘}’ before ‘public’
Source/aboutform.h:31: error: expected ‘,’ or ‘;’ before ‘public’
Source/aboutform.h:35: error: expected declaration before ‘}’ token
make: *** [release/main.o] Error 1

ERROR: Failed to confirm end of file transfer sequence! on Galaxy S III when flashing CF-Root v6.3

Been trying to root my Galaxy S III via Heimdall and CF-Root and following the OP here (http://forum.xda-developers.com/showthread.php?t=1695238) tried to execute the linux command on my mac (OSX 10.7.4). I should note that using the heimdall frontend leads to the same outcome.

Here is what happened:

Pinnacle:CF-Root-SGS3-v6.3 $ sudo heimdall flash --recovery recovery.img --cache cache.img
Heimdall v1.3.2, Copyright (c) 2010-2012, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
Claiming interface...
Setting up interface...

Checking if protocol is initialised...
Protocol is not initialised.
Initialising protocol...
Handshaking with Loke...

Beginning session...
Session begun with device of type: 131072

Downloading device's PIT file...
PIT file download sucessful

Uploading RECOVERY
100%
RECOVERY upload successful
Uploading CACHE
100%
ERROR: Failed to confirm end of file transfer sequence!
CACHE upload failed!

Ending session...

Then I get a softbrick. To fix that, I have to run
Pinnacle:CF-Root-SGS3-v6.3 $ sudo heimdall flash --recovery recovery.img

and the phone reboots normally except with no root and no clockwork mod recovery.

build 1.4RC error on OSX

Trying to build 1.4RC from sources on OSX 10.6.8, after configure; make I get this error message:

make all-am
depbase=echo source/Arguments.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';
g++ -DHAVE_CONFIG_H -I. -I/usr/local/include/libusb-1.0 -I../libpit/Source -g -O2 -MT source/Arguments.o -MD -MP -MF $depbase.Tpo -c -o source/Arguments.o source/Arguments.cpp &&
mv -f $depbase.Tpo $depbase.Po
In file included from source/Arguments.cpp:22:
source/Arguments.h:135: error: expected ‘,’ or ‘...’ before ‘>’ token
source/Arguments.h:135: error: wrong number of template arguments (1, should be 4)
/usr/include/c++/4.2.1/bits/stl_map.h:93: error: provided for ‘template<class _Key, class _Tp, class _Compare, class _Alloc> class std::map’
source/Arguments.h:136: error: default argument missing for parameter 3 of ‘Heimdall::Arguments::Arguments(const std::map<std::basic_string<char, std::char_traits, std::allocator >, Heimdall::ArgumentType, std::less<std::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits, std::allocator >, Heimdall::ArgumentType> > >&, const std::map<std::basic_string<char, std::char_traits, std::allocator >, std::basic_string<char, std::char_traits, std::allocator >, std::less<std::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits, std::allocator >, std::basic_string<char, std::char_traits, std::allocator > > > >&, std::string)’
source/Arguments.cpp:75: error: prototype for ‘Heimdall::Arguments::Arguments(const std::map<std::basic_string<char, std::char_traits, std::allocator >, Heimdall::ArgumentType, std::less<std::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits, std::allocator >, Heimdall::ArgumentType> > >&, const std::map<std::basic_string<char, std::char_traits, std::allocator >, std::basic_string<char, std::char_traits, std::allocator >, std::less<std::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits, std::allocator >, std::basic_string<char, std::char_traits, std::allocator > > > >&, std::map<std::basic_string<char, std::char_traits, std::allocator >, std::basic_string<char, std::char_traits, std::allocator >, std::less<std::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits, std::allocator >, std::basic_string<char, std::char_traits, std::allocator > > > >)’ does not match any in class ‘Heimdall::Arguments’
source/Arguments.h:124: error: candidates are: Heimdall::Arguments::Arguments(const Heimdall::Arguments&)
source/Arguments.h:136: error: Heimdall::Arguments::Arguments(const std::map<std::basic_string<char, std::char_traits, std::allocator >, Heimdall::ArgumentType, std::less<std::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits, std::allocator >, Heimdall::ArgumentType> > >&, const std::map<std::basic_string<char, std::char_traits, std::allocator >, std::basic_string<char, std::char_traits, std::allocator >, std::less<std::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits, std::allocator >, std::basic_string<char, std::char_traits, std::allocator > > > >&, std::string)
make[1]: *** [source/Arguments.o] Error 1
make: *** [all] Error 2

Errors whilst compiling heimdall

I just tried compiling heimdall on openSUSE 11.4 and got the following errors.

sudo make install
make[1]: Entering directory /Galaxy_S2_Flashing/Heimdall/Heimdall-1.3.1/heimdall' test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin" /bin/sh ./libtool --mode=install /usr/bin/install -c heimdall '/usr/local/bin' libtool: install: /usr/bin/install -c heimdall /usr/local/bin/heimdall test -z "/lib/udev/rules.d" || /bin/mkdir -p "/lib/udev/rules.d" /usr/bin/install -c -m 644 60-heimdall-galaxy-s.rules '/lib/udev/rules.d' make install-data-hook make[2]: Entering directory/Galaxy_S2_Flashing/Heimdall/Heimdall-1.3.1/heimdall'
sudo service udev restart
service: no such service udev
make[2]: *** [install-data-hook] Error 1
make[2]: Leaving directory /Galaxy_S2_Flashing/Heimdall/Heimdall-1.3.1/heimdall' make[1]: *** [install-data-am] Error 2 make[1]: Leaving directory/Galaxy_S2_Flashing/Heimdall/Heimdall-1.3.1/heimdall'
make: *** [install-am] Error 2

Any clue why this is happening? I previously managed to install heimdall 1.3.0 but wanted to update to 1.3.1.

Partition mismatch - modem and radio

Error: Partition corresponding to -modem argument could not be located
Launch: heimdall flash --repartition --pit joh1.pit --modem modem.bin --verbose

joh1.pit contains partition called RADIO instead of a MODEM. Odin seems to handle this RADIO/MODEM issue.

Compiled on Ubuntu 11.04 x64

Failed to confirm end of file transfer sequence on SGS2

This was ok on 1.3.1. I'm flashing a SGS2 (GT-I9100) with an ICS bootloader.

Heimdall v1.3.2, Copyright (c) 2010-2012, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...

Checking if protocol is initialised...
Protocol is not initialised.
Initialising protocol...
Handshaking with Loke...

Beginning session...
Session begun with device of type: 131072

Downloading device's PIT file...
PIT file download sucessful

Uploading FACTORYFS
87%
ERROR: Failed to confirm end of file transfer sequence!
FACTORYFS upload failed!
Ending session...
Rebooting device...
Re-attaching kernel driver...

Heimdall 1.4 RC build issues, reloaded

This issue is not fixed for Linux AFAICS. Tried git master just a moment ago (Archlinux x86_64 current) and the above mentioned error prevails. I am not sure if it is my setup or the code thats wrong, as i am a bloody noob when it comes to C++:

mv -f $depbase.Tpo $depbase.Po
depbase=echo source/DumpAction.o | sed 's|[^/]$|.deps/&|;s|.o$||';
g++ -DHAVE_CONFIG_H -I. -I/usr/include/libusb-1.0 -I../libpit/Source -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -MT source/DumpAction.o -MD -MP -MF $depbase.Tpo -c -o source/DumpAction.o source/DumpAction.cpp &&
mv -f $depbase.Tpo $depbase.Po
source/Arguments.cpp:74:1: error: prototype for ‘Heimdall::Arguments::Arguments(const std::mapstd::basic_string<char, Heimdall::ArgumentType>&, const std::mapstd::basic_string<char, std::basic_string >&, std::mapstd::basic_string<char, std::basic_string >)’ does not match any in class ‘Heimdall::Arguments’
In file included from source/Arguments.cpp:22:0:
source/Arguments.h:123:8: error: candidates are: Heimdall::Arguments::Arguments(const Heimdall::Arguments&)
source/Arguments.h:135:4: error: Heimdall::Arguments::Arguments(const std::mapstd::basic_string<char, Heimdall::ArgumentType>&, const std::mapstd::basic_string<char, std::basic_string >&, const std::mapstd::basic_string<char, std::basic_string >&)
make[1]: *
* [source/Arguments.o] Error 1
make[1]: *** Waiting for unfinished jobs....

I have disabled the GUI build, this issue seems to occur when i try to build libpit

GT I9300 dump results a 0k img file

Ubuntu 12.04 x64
Heimdall 4.1RC1 patched with #56
device GT-I9300

heimdall dump --chip-type NAND --chip-id 5 --output boot.img --verbose --stdout-errors
Heimdall v1.4 RC1

Copyright (c) 2010-2012, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
      Manufacturer: "SAMSUNG"
           Product: "Gadget Serial"

            length: 18
      device class: 2
               S/N: 0
           VID:PID: 04E8:685D
         bcdDevice: 021B
   iMan:iProd:iSer: 1:2:0
          nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
   Class.SubClass.Protocol: 02.02.01
       endpoint[0].address: 83
           max packet size: 0010
          polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: 0A.00.00
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 02
           max packet size: 0200
          polling interval: 00
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...

Checking if protocol is initialised...
ERROR: libusb error -7 whilst receiving packet.ERROR: libusb error -2136414344 whilst receiving packet.

Protocol is not initialised.

Initialising protocol...
Protocol initialisation successful.

Beginning session...
Session begun with device of type: 0.

Ending session...
Rebooting device...
Releasing device interface...
Re-attaching kernel driver...

Attempt complete

$ ls -la
0 -rw-r--r--   1 root root         0 oct.   5 21:32 boot.img

I also tried with --delay 400 for the same result

heimdall does not work with Docomo SC-03D

Heimdall will not communicate with the the Docomo's version of the Galaxy S II 4G, know as the Galaxy S II LTE (SC-03D). (Docomo is a Japanese phone company.)

Here is the output when trying to flash a recovery image ripped from the phone itself:

 # heimdall flash --recovery dev-block-mmcblk0p22.img --verbose
Heimdall v1.3.1, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
Manufacturer: "Samsung"
Product: "MSM8x60"
Serial No: "?"

        length: 18
  device class: 2
           S/N: 0
       VID:PID: 04E8:685D
     bcdDevice: 0100

iMan:iProd:iSer: 1:2:0
nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
Class.SubClass.Protocol: 02.02.01
endpoint[0].address: 82
max packet size: 0010
polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
Class.SubClass.Protocol: 0A.00.00
endpoint[0].address: 81
max packet size: 0200
polling interval: 00
endpoint[1].address: 01
max packet size: 0200
polling interval: 00
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...

Checking if protocol is initialised...
Protocol is not initialised.
Initialising protocol...
ERROR: Failed to initialise protocol!
Re-attaching kernel driver...
 #

The recovery image was ripped with a command like this (on the phone):

 # dd if=/dev/block/mmcblk0p22 of=dev-block-mmcblk0p22.img bs=512k
...
 #

After a little investigation into the code, it appears it is getting a failure result on line 100 on BridgeManager.cpp:

int result = libusb_control_transfer(deviceHandle, LIBUSB_REQUEST_TYPE_CLASS, 0x22, 0x3, 0, nullptr, 0, 1000);

I am willing do to the work needed to get this device supported, but I'm not sure where to start. After looking at the patches required to get other devices supported, it doesn't look like anyone has ever had to change this line.

galaxy tab could not upload hidden.rfs or movinand.mst

Hello Benjamin,

I tried flashing these files without success.

The error:
Could not find end of file or end of file transfer, something similar.

Version:
Heimdall 1.2

I tried both commands (These commands may not be exact, from the top of my head):

heimdall flash repartition --13 hidden.rfs --15 movinand.mst

hiemdall flash repartition --hidden hidden.rfs --movinand movinand.mst


A related question:
The internel sd card did not seem to wipe everything when initiating the following command:

heimdall flash --repartition --pit gt-p1000_mr.pit --factoryfs factoryfs.rfs --cache cache.rfs --dbdata dbdata.rfs --kernel zImage --param param.lfs --primary-boot boot.bin --secondary-boot Sbl.bin

Is this to do with the fact movinand and hidden.rfs were not uploaded successfully?

I was using overcome's stock safe v1.


Thank you for you work, I love it!!!

Galaxy S 3 US T-Mo T999

heimdall download-pit --output SGS3.pit -v
Heimdall v1.3.2, Copyright (c) 2010-2012, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
Manufacturer: "Sasmsung"
Product: "MSM8960"

        length: 18
  device class: 2
           S/N: 0
       VID:PID: 04E8:685D
     bcdDevice: 0100

iMan:iProd:iSer: 1:2:0
nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
Class.SubClass.Protocol: 02.02.01
endpoint[0].address: 82
max packet size: 0010
polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
Class.SubClass.Protocol: 0A.00.00
endpoint[0].address: 81
max packet size: 0200
polling interval: 00
endpoint[1].address: 01
max packet size: 0200
polling interval: 00
Claiming interface...
Setting up interface...

Checking if protocol is initialised...
Protocol is not initialised.
Initialising protocol...
ERROR: Failed to initialise protocol!

Always errors out right here.

Failed to initialise protocol with Galaxy SII Skyrocket

$ sudo heimdall flash --recovery recovery-clockwork-5.8.4.3-skyrocket.img
Heimdall v1.3.2, Copyright (c) 2010-2012, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
Claiming interface...
Setting up interface...

Checking if protocol is initialised...
Protocol is not initialised.
Initialising protocol...
ERROR: Failed to initialise protocol!

"Failed to confirm end of file transfer sequence, DATAFS upload failed" when flush samsung galaxy s2

My command:

heimdall flash --repartition --pit PIT.pit --factoryfs factoryfs.img --cache cache.img --primary-boot boot.bin --secondary-boot Sbl.bin --param param.lfs --kernel zImage --modem modem.bin --hidden hidden.img --data data.img

The output of heimdall:

Heimdall v1.3.1, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...

Checking if protocol is initialised...
Protocol is not initialised.
Initialising protocol...
Handshaking with Loke...

Beginning session...
Session begun with device of type: 131072

Uploading PIT
PIT upload successful
Uploading KERNEL
100%
KERNEL upload successful
Uploading CACHE
100%
CACHE upload successful
Uploading MODEM
100%
MODEM upload successful
Uploading FACTORYFS
100%
FACTORYFS upload successful
Uploading DATAFS
100%
ERROR: Failed to confirm end of file transfer sequence!
DATAFS upload failed!
Ending session...
ERROR: Failed to send end session packet!
Re-attaching kernel driver...

Does anyone can help me?

Samsung Galaxy S i9001 Plus

Hi Benjamin!
First of all, very good job, and thanks for being multiplatform, really!
I tryed to flash a kernel using heimdall 1.3.2 to a galaxy s i9000 and it worked very well.

Now i got a galaxy s i9001 Plus, and i got this message whenever I try to print PIT:
Initialising connection...
Detecting device...
Claiming interface...
Setting up interface...
ERROR: Setting up interface failed!

Also I tryed with the terminal putting this:
heimdall flash --kernel zImage
with the same output as a result.

I'm using Mac OS with Lion and I'm not sure what is failing, how can I help you to discover the error/bug or my mistake?

Can't Dump on Galaxy Tab 10.1 Verizon LTE

C:\Tablet\Tools\Heimdall>heimdall.exe dump --chip-type NAND --chip-id 0 --output LP11-dump.tar --verbose --stdout-errors

Heimdall v1.4 RC1

Copyright (c) 2010-2012, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
      Manufacturer: "SAMSUNG"
           Product: "SEC DEV"

            length: 18
      device class: 2
               S/N: 0
           VID:PID: 04E8:685D
         bcdDevice: 0100
   iMan:iProd:iSer: 1:2:0
          nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
   Class.SubClass.Protocol: 02.02.01
       endpoint[0].address: 82
           max packet size: 0010
          polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: 0A.00.00
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 01
           max packet size: 0200
          polling interval: 00
Claiming interface...
Setting up interface...

Checking if protocol is initialised...
Protocol is initialised.

Beginning session...
Session begun with device of type: 3.

Ending session...
ERROR: Failed to unpack received packet.
ERROR: Failed to unpack received packet.
ERROR: Failed to receive session end confirmation!
ERROR: Failed to receive session end confirmation!
Releasing device interface...

T-Mobile Samsung Galaxy S II (SGH-T989) support

Heimdall is having trouble communicating with the T-Mo GSII variant, the SGH-T989. It has a different USB product ID (685E instead of the common 685D). I've corrected that hurdle on my own box, but it is not the only problem.

Here is the output from a PIT print:

#:~$ ./heimdall print-pit --verbose
Heimdall v1.3.1, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
      Manufacturer: "SAMSUNG"
           Product: "SAMSUNG_Android"
         Serial No: "fece4578"

            length: 18
      device class: 239
               S/N: 3
           VID:PID: 04E8:685E
         bcdDevice: 0400
   iMan:iProd:iSer: 1:2:3
          nb confs: 1

interface[0].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: 08.06.50
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 01
           max packet size: 0200
          polling interval: 01

interface[1].altsetting[0]: num endpoints = 1
   Class.SubClass.Protocol: 02.02.01
       endpoint[0].address: 85
           max packet size: 000A
          polling interval: 09

interface[2].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: 0A.00.00
       endpoint[0].address: 84
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 03
           max packet size: 0200
          polling interval: 00

interface[3].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: FF.42.01
       endpoint[0].address: 86
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 04
           max packet size: 0200
          polling interval: 00
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...

Checking if protocol is initialised...
Protocol is not initialised.
Initialising protocol...
ERROR: Failed to initialise protocol! 105:-9
Re-attaching kernel driver...

Notice the "failed to initialise..." line. I've added "LINE, result" to that error print. The "-9" is the value returned by the call on line 101 (100 in the mainline without my USB product ID line added near the top) of BridgeManager.cpp;

int result = libusb_control_transfer(deviceHandle, LIBUSB_REQUEST_TYPE_CLASS, 0x22, 0x3, 0, nullptr, 0, 1000);

It's LIBUSB_ERROR_PIPE (-9) returned by libusb_control_transfer(). From the libusb docs, "LIBUSB_ERROR_PIPE if the control request was not supported by the device". Further, in the above we see:

      device class: 239
               S/N: 3
           VID:PID: 04E8:685E

The device class (239, or "Miscellaneous") is a big difference; it appears that device class 2 (comms device) is expected. Perhaps that is responsible for the pipe error. In fact, "lsusb -v" says:

Bus 002 Device 012: ID 04e8:685e Samsung Electronics Co., Ltd 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x04e8 Samsung Electronics Co., Ltd
  idProduct          0x685e 
  bcdDevice            4.00
  iManufacturer           1 
  iProduct                2 
  iSerial                 3 
  bNumConfigurations      1

This suggests that the phone is presenting as a class 239/subclass 2/protocol 1 device, which according to http://www.usb.org/developers/defined_class/#BaseClassEFh means that it is an "Interface Association" descriptor; a way to multiplex multiple device classes on one "function". Later on we see:

    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)
      iInterface              4 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         1
      bInterfaceCount         2
      bFunctionClass          2 Communications
      bFunctionSubClass       2 Abstract (modem)
      bFunctionProtocol       1 AT-commands (v.25ter)
      iFunction               7 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      2 Abstract (modem)
      bInterfaceProtocol      1 AT-commands (v.25ter)
      iInterface              5 
      CDC Header:
        bcdCDC               1.10
      CDC Call Management:
        bmCapabilities       0x00
        bDataInterface          2
      CDC ACM:
        bmCapabilities       0x02
          line coding and serial state
      CDC Union:
        bMasterInterface        1
        bSlaveInterface         2 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x000a  1x 10 bytes
        bInterval               9
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              6 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass     66 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0

Two things appear to be of interest here; specifically, "bInterfaceClass 2" and "bFunctionClass 2", which are possibly what Heimdall is used to interacting with. ??? Rampant speculation, there. If so, then what we need for the T989 is probably to switch the comms, based on the product ID, and retrieve a handle to the class 2 interface, and issue the Loke protocol to that instead.

My USB-foo is weak, and I'd appreciate it if either another programmer with a T989 and USB experience could poke at this, or, a Windows-savvy developer with a T989 could snoop on ODIN and just scoop the protocol initialization bytes.

Flashing on Droid Charge fails with "Expected file part index" error

I'm seeing the following issue when attempting to flash my Droid Charge using Heimdall under Arch Linux:

athena:~/android/charge% sudo heimdall flash --kernel zImage --recovery recovery.bin

Heimdall v1.2.0, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/


Claiming interface...   Failed. Attempting to detach driver...
Claiming interface again...   Success
Setting up interface...   Success
Beginning session...
Handshaking with Loke...   Success

Downloading device's PIT file...
PIT file download sucessful

Uploading KERNEL
0%
ERROR: Expected file part index: 0 Received: 1
KERNEL upload failed!
Ending session...
Failed to receive session end confirmation!
Re-attaching kernel driver...

I've had to run the close-pc-screen command afterward to successfully reboot my phone.

This is a brand new Droid Charge that I just received today, and hasn't had any system updates applied yet.

I noticed someone with a similar issue on XDA-Developers in this thread (username "distortedloop").

I'm using Heimdall built from the latest GitHub commit on master (ab4073b).

Regression flashing KERNEL to GT-P1000 with v1.3.2

Just succeeded re-stocking Gingerbread to an unmodified GT-P1000XXJID (Froyo) after a week of trial-and-error ;-)
This is what I came across:

When trying to flash the Galaxy Tab with the Stock Gingerbread Kernel (Overcome GB-Stock-Safe-v5 or official P1000XXJQ1/-JPZ), heimdall 1.3.2 gives an error after uploading the kernel:

Uploading KERNEL
100%
ERROR: Failed to confirm end of file transfer sequence!
KERNEL upload failed!

I experienced this a few days ago on my Ubuntu 11.10 Oneiric system, using the heimdall 1.3.2 oneiric version from the heimdall-packagers PPA. I then thought that maybe the oneiric version of libusb-1.0-0 could be a little too old, so I ventured the still outstanding release upgrade to 12.04 Precise. But today I found out that this would not have been the problem - flashing the kernel to the device still brought up the error.

I downloaded two other versions of a stock Gingerbread ROM, to confirm via checksum that the zImage file I was trying to flash was sane - it was. Lastly, I remembered someone on the net and in another context suggesting to downgrade heimdall to see if a former version would work. I did not consider that in the first place, because I had also read (here) that the 1.3.1 version still had problems with the MOVINAND and HIDDEN partitions. But having arrived at my last resort before giving up and attempting to restore Froyo, I gave it a try (apt-get purged heimdall from the PPA repo and the repo itself, d'loaded the 1.3.1 deb and dpkg-i'd it).

And yes, flashing (only) the kernel works with 1.3.1. And no, it does not work with the 1.3.2-deb either, I cross-tested this. So I ended up flashing everything except the kernel with the 1.3.2 version installed, then downgraded to 1.3.1 and flashed the kernel. Rebooted, trepidant for a few long minutes, but was then presented with the Gingerbread Setup Screen. Phew!

Here some lines from my bash history, maybe this is of help to anyone in the same situation:

# apt-get purge heimdall
# dpkg -i dpkg -i heimdall_1.3.2_i386.deb
(Put Tab in download mode, then connect it via USB)
# heimdall flash --repartition --pit gt-p1000_mr.pit --primary-boot boot.bin --cache cache.rfs --dbdata dbdata.rfs --factoryfs factoryfs.rfs --hidden hidden.rfs --modem modem.bin --movinand movinand.mst --param param.lfs --secondary-boot Sbl.bin --no-reboot
(Everything should work well)
# apt-get purge heimdall
# dpkg -i dpkg -i heimdall_1.3.1_i386.deb
# heimdall flash --kernel zImage

After the kernel upload the Tab should reboot. At first, I had a bit of garbled screen, but this went away, maybe with or without the help of touching the Android Soft keys at the bottom of the screen (I did this because the garbled screen didn't change for awhile, but the softkeys were lit - and suddenly the setup-screen appeared).

Sorry if this is in too great detail for a really specific bug report, but I have found much useful information right here on these pages, so I wanted to contribute as much information as possible on this issue - simply because Heimdall is a great piece of platform-independent software. So if you manage to restore heimdall's kernel flashing behavior from 1.3.1, keeping everything else intact, Flashing a GT-P1000 under linux should be a straightforward thing and help send "Odin" back to Walhalla ;-)

Debian Packaging

Hi Benjamin,

Can you please publish the sources used to generate the Debian packages?

I'd like to compile amd64 binaries.

Thanks,
Jon

Failed to upload DATAFS when flashing everything

I tried to flash pretty much everything (sudo heimdall flash --primary-boot boot.bin --secondary-boot Sbl.bin --param param.lfs --kernel zImage --cache cache.img --modem modem.bin --factoryfs factoryfs.img --hidden hidden.img --data data.img), but the upload stopped at data.img:

(everything ok at first, until...)

...
File Part #742... Response: 0  0  0  0  E6  2  0  0 
File Part #743... Response: 0  0  0  0  E7  2  0  0 

100%
FACTORYFS upload successful
Uploading DATAFS
0%File Part #0... Response: 0  0  0  0  0  0  0  0 
File Part #1... Response: 0  0  0  0  1  0  0  0 
File Part #2... Response: 0  0  0  0  2  0  0  0 

1%
File Part #3... Response: 0  0  0  0  3  0  0  0 
File Part #4... Response: 0  0  0  0  4  0  0  0 
File Part #5... Response: 0  0  0  0  5  0  0  0 
...
99%
File Part #276... Response: 0  0  0  0  14  1  0  0 
File Part #277... Response: 0  0  0  0  15  1  0  0 
File Part #278... Response: 0  0  0  0  16  1  0  0 

100%
ERROR: libusb error -7 whilst receiving packet. Retrying...
ERROR: libusb error -7 whilst receiving packet. Retrying...
ERROR: libusb error -7 whilst receiving packet. Retrying...
ERROR: libusb error -7 whilst receiving packet. Retrying...
ERROR: libusb error -7 whilst receiving packet. Retrying...
ERROR: libusb error -7 whilst receiving packet.

ERROR: Failed to confirm end of file transfer sequence!
DATAFS upload failed!
Ending session...
ERROR: libusb error -7 whilst sending packet. Retrying...
ERROR: libusb error -7 whilst sending packet. Retrying...
ERROR: libusb error -7 whilst sending packet. Retrying...
ERROR: libusb error -7 whilst sending packet. Retrying...
ERROR: libusb error -7 whilst sending packet. Retrying...
ERROR: libusb error -7 whilst sending packet.
ERROR: Failed to send end session packet!
Re-attaching kernel driver...

Using the packaged heimdall 1.3.1 on ubuntu 11.10.

bricked device after incorrect flash sequence

Hi Benjamin,
thank you for your great tool. It worked great for me until yesterday when I tried to flash Android 2.3.3 to my Galaxy Tab
Heimdall flashed pit, initial bootloader and than failed on flashing HIDDEN partition. After this my device was restarted and never turns up now. Screen just black and no signs of life :(
I'm still looking solutions how to revive it. But I don't blame you in any way. I think your tool could be improved if it would flash essential parts first instead of current way flashing in random order. I prepared a patch for you to have a look at changes and decide if they are good. Also I changed the way memory allocated, lot of places use 'new' and you have to remember delete objects afterwards.

Please, see how I changed mapFilesToPartitions function to create map of partitions. Now boot, sbl, kernel will be flashed first.
I verified code compilation on windows and linux.

Regards,
Val

see my changes at
git://github.com/DrGolem/Heimdall.git

Flashing modem on SGS2 fails with "Failed to confirm end of file transfer sequence!"

I am trying to flash a modem file onto my Samsung Galaxy S2 using heimdall from Git master.

This fails as follows (see below).
It reboots fine then, but the modem (baseband?) version is still at KG1 (I am coming from Cognition ROM 1.15 and updated to VillainROM 2.1).

% ./heimdall flash --modem ~/MODEM_I9100XXKG2_REV_02_CL1037208.tar.md5
Heimdall v1.3 (beta), Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...

Beginning session...
Handshaking with Loke...

Downloading device's PIT file...
PIT file download sucessful

Uploading MODEM
100%
ERROR: Failed to confirm end of file transfer sequence!
MODEM upload failed!
Ending session...
Rebooting device...
Re-attaching kernel driver...

Verbose output of another attempt is at http://paste.ubuntu.com/649099/
While searching for it I've found the following paste, which appears to be related (same error): http://pastebin.com/2zLHW2LG

Heimdall 1.4 RC build issue (Windows)

I get the following error when trying to open the solution file:

C:\Users\Jay\Documents\GitHub\Heimdall\heimdall-frontend\heimdall-frontend.vcxproj : error : The imported project "C:\Users\Jay\Documents\GitHub\Heimdall\heimdall-frontend\Qt4VSPropertySheet.props" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk. C:\Users\Jay\Documents\GitHub\Heimdall\heimdall-frontend\heimdall-frontend.vcxproj

The file appears to be missing from the repo. Or am I missing something?

galaxy tab P7510 "ERROR: Failed to initialise protocol!"

Can't perform any action on a Galaxy Tab P7510. I'm using Ubuntu 11.10 64bits

~$ heimdall print-pit --verbose
Heimdall v1.3.1, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
      Manufacturer: "SAMSUNG"
           Product: "SEC DEV"
         Serial No: "?"

            length: 18
      device class: 2
               S/N: 0
           VID:PID: 04E8:685D
         bcdDevice: 0100
   iMan:iProd:iSer: 1:2:0
          nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
   Class.SubClass.Protocol: 02.02.01
       endpoint[0].address: 82
           max packet size: 0010
          polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: 0A.00.00
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 01
           max packet size: 0200
          polling interval: 00
Claiming interface...
Setting up interface...

Checking if protocol is initialised...
Protocol is not initialised.
Initialising protocol...
ERROR: Failed to initialise protocol!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.