[PROGRAM] Heimdall - Open-Source Cross-Platform Flashing Suite (1.3.0 Available)

Search This thread

Benjamin Dobell

Inactive Recognized Developer
Jul 1, 2010
843
600
Melbourne
www.glassechidna.com.au
Original Thread:

What is Heimdall?
Heimdall is a cross-platform open-source tool suite used to flash ROMs onto Samsung Galaxy S devices.

How does it work?
Heimdall uses the same protocol as Odin to interact with a device in download mode. USB communication in Heimdall is handled by the popular open-source USB library, libusb-1.0.

Why “Heimdall”?
The flashing software Odin is named after the king of gods in Norse mythology. Loke, the software component on the Galaxy S that provides functionality to flash, may also to be named after an important character in Norse mythology, often translated as Loki. As such I have named my flashing software Heimdall, after the Norse god, and guardian of the Bifrost Bridge.

What platforms does Heimdall run on?
Linux, OS X and Windows (XP, Vista, 7 etc.)

Why use Heimdall when we can use Odin?
Odin is generally unreliable and only runs on Windows systems. Furthermore, Odin is leaked Samsung software that is not freely available or well understood by the community.

Is Heimdall safe?
No matter what method you chose, flashing firmware onto your phone has a lot of potential for disaster. We have tested Heimdall with a variety of phones flashing several different firmware versions resulting in a 100% success rate. As such we believe that Heimdall is generally reliable. However keep in mind, just like any flashing software, Heimdall has the potential to brick your phone if not used correctly.

How do Galaxy S phones get bricked when flashing?
Besides the inherent risks like power outs, accidental removal of the USB cable etc. The Galaxy S appears to be running extremely unreliable USB control software.

A failure to flash does not automatically equate to a bricked phone. However if you're extremely unlucky and the flash fails whilst transferring the primary boot-loader, secondary boot-loader or params.lfs (all quite small) than you've got yourself a paper weight that you're hoping Samsung will replace.

Please be extremely careful mixing files from different firmware releases. Don't do so unless you're certain it will work!

What Galaxy S variants has Heimdall been tested with?
We’ve tested Heimdall with a Galaxy S GT-I9000 (8 GB) from the United Kingdom and Galaxy S GT-I9000 (16 GB) from Australia. We don’t personally have access to any other devices to test with, however users have confirmed Heimdall functions correctly with the AT&T Captivate, Bell Vibrant, Telstra GT-I9000T, Epic 4G and the Galaxy Tab.

Enough talk, where can we get it?
The latest release is available here. Please read the instructions and README files included in the archives.

I love you, man. Will you have my baby?
No, but I will very gladly accept donations. If you appreciate my work and would like to support future development you can make a donation here. If you think you have something else to offer, then feel free to shoot me a PM or contact me via the contact form on the Glass Echidna website.
 
Last edited:

Zilch25

Senior Member
Jul 28, 2010
2,073
12
West Palm Beach, FL
Haven't seen this thread get too much attention, but it is a really cool idea especially for non-windows users. Just to kick it off:

Phone Name: Samsung Captivate (JH3 Firmware)

Country: United States

Carrier: AT&T

Hardware IDs:
USB\Vid_04e8&Pid_681c&Rev_0400
USB\Vid_04e8&Pid_681c
 
It would be nice if someone was willing to see if the Captivate works with this app. Having a cross-platform standardized program is a good idea.

Right now there seems so be a number of different ways to achieve a goal. What we need is a standardized app that devs can make "packages" for where we can select what we want and a rom, zip file or whatever could be built on the fly. easy peezy I say.
 

rob989_69

Senior Member
Jul 16, 2010
223
4
Rochester, NY
Phone Name: Samsung Captivate (JH2 Firmware)

Country: United States

Carrier: AT&T

Hardware IDs:

USB\Vid_04e8&Pid_681c&Rev_0400
USB\Vid_04e8&Pid_681c
 
Nov 30, 2007
41
0
Phone Name: Samsung Captivate I897 (JF6)

Country: USA

Carrier: AT&T

Hardware IDs:

venim@venim:~$ lsusb
Bus 001 Device 027: ID 04e8:681c Samsung Electronics Co., Ltd

seems all of the captivate IDs are 681c, which mirrors the international version.
 

autoxer

Member
Jul 18, 2010
41
1
Just to throw in my 2 cents:

I'm a linux user (have windows on dual boot on one machine, but hate going into it just to flash), so I really hope this project moves forward. I'd be willing to test any early linux builds once they're ready.

Phone Name: Samsung Captivate
Country: USA
Carrier: AT&T
Device ID: 04e8:681c Samsung Electronics Co., Ltd
 

Unhelpful

Senior Member
Jan 9, 2008
251
4
If we had some documentation for the bml devices, it might be possible to provide a utility that could flash kernels from an update.zip. There its a flashing utility, vmlwrite, for the Moment, and it even runs on Galaxy S, but whatever mechanism it uses to map labels to partitions doesn't work. I've been looking for sources to see if they can be modified for our use, but I haven't found anything yet.

Sent from my SAMSUNG-SGH-I897 using XDA App
 

Benjamin Dobell

Inactive Recognized Developer
Jul 1, 2010
843
600
Melbourne
www.glassechidna.com.au
Just thought I'd drop by and let you all know a stable beta has been released. I've only personally tested with two GT-I9000's (UK and Australian models) so I'm not 100% certain what Galaxy S derivatives will work.

This release includes source code and Windows binaries. It compiles and runs brilliantly on Linux but unfortunately I haven't been able to get phones detected on OS X. If someone else would like to give it a try that would be great.

Please post any questions in the official thread so I can keep track of them.
 

techmik67

Senior Member
Aug 19, 2010
892
44
Delray Beach, Florida
I have been following and posting on the original thread. Windows 7 and Windows Vista pcs and a captivate-i897.

As i posted, i had a few problems at first,, but successfully used this to flash today. Will continue testing and reporting.
 

techmik67

Senior Member
Aug 19, 2010
892
44
Delray Beach, Florida
Always remember that bad things CAN happen when you mess with the areas this program messes with. Also, bad things can ALSO happen when you aren't VERY careful with beta releases in general. Therefore, if you put those things together, like you are doing with this program, you are doing a dangerous thing. YOU CAN KILL YOUR PHONE!!!

I'm not saying it WILL happen, just that it CAN..... so BE CAREFUL!! Don't be afraid to test, but carefully.....;)

And yes, I support this program, I just don't wanna see people willy-nilly jumping in and possibly damaging their devices, then saying it's not their fault.
 

cronosmachine

Senior Member
Sep 16, 2010
427
419
Pulling from my phone directly to make own firmware odin using either Heimdall/odin

Hi, I tried to create this thread.
http://xdaforums.com/showthread.php?p=15695721

The idea is how to make it own firmware after make custom ROM.
I'm still not sure for boot.bin and Sbl.bin if pulling from my phone will cause any problem or not.
Should I use from stock firmware to use your program while flashing?
Can I say Primary boot loader is boot.bin and while secondary boot loader is Sbl.bin?

It seem your program Heimdall will suitable to build package.
But I still having difficulties how to use your program to create a package firmware like stock firmware.
 

jmbradd

Senior Member
Oct 3, 2010
81
6
heimdall saved me awhile back! Phone was really messed up, wouldn't connect to PC, windows didn't reckognize it so I booted up my linux install, downloaded heimdall and boom, phone is working well over a year down the road! Great for those who don't use windows or have problems with USB drivers on win 7
 

samandiriel

Senior Member
Dec 14, 2010
63
7
Phoenix, AZ
mysolutions.it
[Q] None Galaxy S Samsung devices?

Just thought I'd drop by and let you all know a stable beta has been released. I've only personally tested with two GT-I9000's (UK and Australian models) so I'm not 100% certain what Galaxy S derivatives will work.

This release includes source code and Windows binaries. It compiles and runs brilliantly on Linux but unfortunately I haven't been able to get phones detected on OS X. If someone else would like to give it a try that would be great.

Please post any questions in the official thread so I can keep track of them.

I get "Server not found" when clicking on the official thread link.

Nonetheless, I have a question: will this work with non-Galaxy S devices? I'd like to try it out on my Samsung Sidekick 4G, which should arrive this week.
 
Heimdall Kernel flash unreliable

I seem to have problems using Heimdall 1.3.0 on Mac OS X to flash my phone. I'm just trying to flash a kernel as follows:

Code:
heimdall flash --kernel zImage

But it often times can't find my phone even though it connected in Download Mode. When it does find my phone, it seems to get stuck at Kernel 0%. After that, it seems I need to restart Download Mode on my phone before I can attempt again, after getting stuck at Kernel 0% several times, I finally got it to finish the full flash, but it seems like it shouldn't take so much effort. Is this normal for Download Mode on a Samsung Captivate or might it just be a bad USB cable? I think I have the Gingerbread Captivate bootloaders currently installed, but do other bootloaders work better with Heimdall?

Here is the full log of a failure with Kernel 0%:

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

Beginning session...
Handshaking with Loke...

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

Uploading KERNEL
0%
ERROR: Failed to send file part packet!
KERNEL upload failed!
Ending session...
ERROR: Failed to send end session packet!
 

Kyuta Syuko

Senior Member
Aug 18, 2009
1,867
660
I seem to have problems using Heimdall 1.3.0 on Mac OS X to flash my phone. I'm just trying to flash a kernel as follows:

Code:
heimdall flash --kernel zImage

But it often times can't find my phone even though it connected in Download Mode. When it does find my phone, it seems to get stuck at Kernel 0%. After that, it seems I need to restart Download Mode on my phone before I can attempt again, after getting stuck at Kernel 0% several times, I finally got it to finish the full flash, but it seems like it shouldn't take so much effort. Is this normal for Download Mode on a Samsung Captivate or might it just be a bad USB cable? I think I have the Gingerbread Captivate bootloaders currently installed, but do other bootloaders work better with Heimdall?

Here is the full log of a failure with Kernel 0%:

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

Beginning session...
Handshaking with Loke...

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

Uploading KERNEL
0%
ERROR: Failed to send file part packet!
KERNEL upload failed!
Ending session...
ERROR: Failed to send end session packet!

I seem to have more issues flashing with Heimdall 1.3 then I did flashing with 1.1 as well. Similar issue as the one you're having granted I don't think it's ever failed a flash once Heimdall's seeing my phone...
 

1tontomato

Senior Member
Nov 1, 2010
463
129
O.C. California
Are you using heimdall front end 1.3.0, or are you using command line. In the front end version under utilities there is a detect device feature. I always check to insure it sees my phone before I flash. Also what version of OSX are you on, because I'm pretty sure its not compatible with lion just yet

Sent from my SAMSUNG-SGH-I897 using xda premium
 

Top Liked Posts

  • There are no posts matching your filters.
  • 4
    Original Thread:

    What is Heimdall?
    Heimdall is a cross-platform open-source tool suite used to flash ROMs onto Samsung Galaxy S devices.

    How does it work?
    Heimdall uses the same protocol as Odin to interact with a device in download mode. USB communication in Heimdall is handled by the popular open-source USB library, libusb-1.0.

    Why “Heimdall”?
    The flashing software Odin is named after the king of gods in Norse mythology. Loke, the software component on the Galaxy S that provides functionality to flash, may also to be named after an important character in Norse mythology, often translated as Loki. As such I have named my flashing software Heimdall, after the Norse god, and guardian of the Bifrost Bridge.

    What platforms does Heimdall run on?
    Linux, OS X and Windows (XP, Vista, 7 etc.)

    Why use Heimdall when we can use Odin?
    Odin is generally unreliable and only runs on Windows systems. Furthermore, Odin is leaked Samsung software that is not freely available or well understood by the community.

    Is Heimdall safe?
    No matter what method you chose, flashing firmware onto your phone has a lot of potential for disaster. We have tested Heimdall with a variety of phones flashing several different firmware versions resulting in a 100% success rate. As such we believe that Heimdall is generally reliable. However keep in mind, just like any flashing software, Heimdall has the potential to brick your phone if not used correctly.

    How do Galaxy S phones get bricked when flashing?
    Besides the inherent risks like power outs, accidental removal of the USB cable etc. The Galaxy S appears to be running extremely unreliable USB control software.

    A failure to flash does not automatically equate to a bricked phone. However if you're extremely unlucky and the flash fails whilst transferring the primary boot-loader, secondary boot-loader or params.lfs (all quite small) than you've got yourself a paper weight that you're hoping Samsung will replace.

    Please be extremely careful mixing files from different firmware releases. Don't do so unless you're certain it will work!

    What Galaxy S variants has Heimdall been tested with?
    We’ve tested Heimdall with a Galaxy S GT-I9000 (8 GB) from the United Kingdom and Galaxy S GT-I9000 (16 GB) from Australia. We don’t personally have access to any other devices to test with, however users have confirmed Heimdall functions correctly with the AT&T Captivate, Bell Vibrant, Telstra GT-I9000T, Epic 4G and the Galaxy Tab.

    Enough talk, where can we get it?
    The latest release is available here. Please read the instructions and README files included in the archives.

    I love you, man. Will you have my baby?
    No, but I will very gladly accept donations. If you appreciate my work and would like to support future development you can make a donation here. If you think you have something else to offer, then feel free to shoot me a PM or contact me via the contact form on the Glass Echidna website.
    2
    I started a thread on how to make Heimdall One-Clicks here: http://xdaforums.com/showthread.php?t=1348392

    Heimdall One-Click is a controlled environment which a single java jar file will deploy everything needed and then flash a Heimdall package on Linux, Windows, or Mac. Everything is automated, several safety features were implemented over Heimdall's integrated safeties and a Heimdall One-Click is a self-contained installer/dependency manger/flashing utility with an overhead of just 20MB over that of a Tar.Gz file.

    Heimdall One-Click is not a replacment for Heimdall Frontend. It's just a method to keep flashing easy, compacted to a single file, and cross-platform.

    Check out the One-Click packaging utility here: http://xdaforums.com/showthread.php?t=1348392
    1
    Heimdall Suite 1.3.0 is now available from the Heimdall product page.
    1
    I seem to have problems using Heimdall 1.3.0 on Mac OS X to flash my phone. I'm just trying to flash a kernel as follows:

    Code:
    heimdall flash --kernel zImage

    But it often times can't find my phone even though it connected in Download Mode. When it does find my phone, it seems to get stuck at Kernel 0%. After that, it seems I need to restart Download Mode on my phone before I can attempt again, after getting stuck at Kernel 0% several times, I finally got it to finish the full flash, but it seems like it shouldn't take so much effort. Is this normal for Download Mode on a Samsung Captivate or might it just be a bad USB cable? I think I have the Gingerbread Captivate bootloaders currently installed, but do other bootloaders work better with Heimdall?

    Here is the full log of a failure with Kernel 0%:

    Code:
    Initialising connection...
    Detecting device...
    Claiming interface...
    Setting up interface...
    
    Beginning session...
    Handshaking with Loke...
    
    Downloading device's PIT file...
    PIT file download sucessful
    
    Uploading KERNEL
    0%
    ERROR: Failed to send file part packet!
    KERNEL upload failed!
    Ending session...
    ERROR: Failed to send end session packet!
    This problem was fixed by psych0phobia in this thread today: http://xdaforums.com/showpost.php?p=17432044&postcount=10

    The changes should be pushed upstream shortly. The problem is that Heimdall was not properly repartitioning.. I've verified that it is working now. If you're able to build from source, you should be able to get things working.
    1
    Where can I get the Heimdall 1.3.1 ?? 1.3.1 mentioned HERE.

    You have to compile it yourself