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

Search This thread

gehzumteufel

Senior Member
Jul 27, 2006
1,432
48
SoCal
It's okay. We're all busy people. That's cool that it was easier than expected! Probably something you were quite happy about I bet.
 

lenrek

Senior Member
Jun 29, 2010
394
32
Finally... I can kill off the last remnant of WindowsXP. Still keeping 1 just to Kies.

Thanks! :D
 

lownoise

Senior Member
Sep 3, 2010
206
127
Woh, sorry about not getting back to you guys, I didn't see the posts :S

Yeah Heimdall supports repartitioning since version 1.1. It was actually quite a bit easier to implement than I expected, the phone itself seems to automate it when you flash a new PIT file.

But why we must flash boot.bin and sbl.bin:confused:
 

Benjamin Dobell

Inactive Recognized Developer
Jul 1, 2010
843
600
Melbourne
www.glassechidna.com.au
But why we must flash boot.bin and sbl.bin:confused:

I could have sworn I edited my post and included an answer to that.

The reason is that when you repartition several partitions are being wiped, including the primary and secondary bootloaders. I don't know if the device is smart enough to back-up the bootloaders prior to the wipe and restore them afterwards. However I'm not particularly keen to find out either. If the device doesn't back-up and restore the bootloaders when you repartition then your device will be unable to boot at all i.e. hard bricked.
 
  • Like
Reactions: Galaid

gehzumteufel

Senior Member
Jul 27, 2006
1,432
48
SoCal
I don't think that's the case. I think it only wipes the partitions that you have rfs files for at the time of repartitioning, but I don't have any way to prove this. Just my personal opinion.
 

pietro_spina

Senior Member
Jul 20, 2010
178
21
Western MA
I could have sworn I edited my post and included an answer to that.

The reason is that when you repartition several partitions are being wiped, including the primary and secondary bootloaders. I don't know if the device is smart enough to back-up the bootloaders prior to the wipe and restore them afterwards. However I'm not particularly keen to find out either. If the device doesn't back-up and restore the bootloaders when you repartition then your device will be unable to boot at all i.e. hard bricked.

Maybe someone with the ability to do a JTAG restore would be willing to test this for you. This guy,
connexion2005 offers that JTAG service on his website and is pretty involved in the XDA community.
 

Viearical

Member
Jul 4, 2010
13
0
Updated second boot loader now working in Mac OS X?

Hey Ben,
First thanks for the awesome work in creating and maintaining Heimdall!

Second, I know Heimdall wasn't working with Captivate on OS X due to the second boot loader not being recognized properly by OS X, and in this post you showed which boot loaders you could flash and get it working.
My question, now that the official Froyo update for Captivate is out, have you heard, or know if it contains the updated second boot loader so OS X properly recognizes the phone in download mode?

Thanks for all the help!
 

apollo15rover

Senior Member
Jan 19, 2011
588
35
burbank, ca
Hi all :)
I had problems running the heimdall-frontend on mac which was exiting with the following errors in Console:
PHP:
12.01.11 14:17:03	[0x0-0x428428].com.yourcompany.heimdall-frontend[14266]	dyld: Library not loaded: QtGui.framework/Versions/4/QtGui
12.01.11 14:17:03	[0x0-0x428428].com.yourcompany.heimdall-frontend[14266]	  Referenced from: /Applications/heimdall-frontend.app/Contents/MacOS/heimdall-frontend
12.01.11 14:17:03	[0x0-0x428428].com.yourcompany.heimdall-frontend[14266]	  Reason: image not found

And to fix this I wrote a really simple bash script to start the GUI

PHP:
#!/bin/bash
cd '/Applications/heimdall-frontend.app/Contents/Frameworks/'
../MacOS/heimdall-frontend > /dev/null &2>1
exit 0

And now Heimdall's UI starts without problems :)

Edit: if you put this script inside /Applications/heimdall-frontend.app/Contents/MacOS, rename heimdall-frontend to heimdall-frontend-old, then name this script heimdall-frontend and edit the third line to replace heimdall-frontend with heimdall-frontend-old and Heimdall will start normally

I'm getting "expected end of line but found unknown token" error..
 

pietro_spina

Senior Member
Jul 20, 2010
178
21
Western MA
Ya but I only have a 32 bit computer

You will have to compile it. what exactly are you running?

If you are not new to compiling you can grab the source and follow the instructions in the README
Code:
git clone git://github.com/Benjamin-Dobell/Heimdall.git

If you are new then there are a few more things to learn... :)
 
Last edited:

BL4zD

Senior Member
Oct 19, 2010
358
49
A lot of you will be happy to know that I grabbed a 32-bit version of Ubuntu 10.10 today. So I'll compile and publish official 32-bit debian binaries soon. If I get a chance I'll try finish off 1.2 as well.
It's been a while since I cross compiled, but you don't need to be using the environment you want to compile for. Back in the day, I used to compile for all kinds of different architectures (ppc, 64bit, etc.) from my 32bit amd processor.

I believe the command to gcc should be something like -m32 and -m64.
 

Benjamin Dobell

Inactive Recognized Developer
Jul 1, 2010
843
600
Melbourne
www.glassechidna.com.au
It's been a while since I cross compiled, but you don't need to be using the environment you want to compile for. Back in the day, I used to compile for all kinds of different architectures (ppc, 64bit, etc.) from my 32bit amd processor.

I believe the command to gcc should be something like -m32 and -m64.
Thanks for the advice, I have cross-compiled in the past (to ARM usually) however this works out to be slightly easier for me. Otherwise I'd have to setup a proper cross-compiling environment with 32-bit libraries as well as an environment to build the debian package (which is unfortunately the hard part).
 
  • Like
Reactions: Galaid

Galaid

Senior Member
Sep 1, 2010
900
199
Benjamin, could you or someone else please make Fedora binaries? Thanks!
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 254
    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.
    8
    My response to the extremely rude user whose e-mail is included in my previous post:

    [Name Redacted],

    Am *I* kidding...? Really?

    Instead of whinging to developers who volunteer their free-time to provide the community with free and open-source software, perhaps you could get of your arse and contribute.

    Firstly, did you actually read the README? It includes extremely detailed steps that explain precisely how to use both Heimdall and Heimdall Frontend? Did you even bother to look for official documentation? Considering you intend to flash a device I'd say 8 hours of reading isn't at all unreasonable. You should actually have some comprehension of what it is you're trying to achieve, unless you'd like world's most expensive paperweight sitting on your desk. The process is only a disarray if you take no logical steps to understand it, the obvious first step being; read the README!

    Secondly, how in all honesty do you expect me to support every variation of Samsung device ever released? I can assure, there's a lot. I live in Australia, we don't even operate archaic CDMA networks here! The software was originally written for the international Galaxy S (GT-I9000). The fact that it works with any of Samsung's other of devices is little more than a coincidence. *If* you would like support for the Galaxy CDMA tablet, aside from implementing it yourself (it's open-source after all), then perhaps you should consider donating towards the cost of purchasing such a device. Alternatively, perhaps you would consider mailing your tablet to me and paying the postage for me to return it to you when I'm done. Then I'll volunteer *my free-time* to add support for yet another device. Because believe it or not I can't afford to spend tens of thousands of dollars purchasing every variation of every device under the sun in exchange for the occasional donation, which mind you, don't even cover my bandwidth costs!

    I strongly suggest next time you give some thought to what you write before contacting someone who gives up their free-time to help people just like you.

    - Ben
    7
    Hey everyone,

    Sorry for disappearing for a little while, I've been quite busy. However the good news is that I just managed to set aside some time to work on an update to Heimdall!

    The update will be command line only (for now) and adds the following functionality:
    - Support for the Galaxy S II! (Hopefully, keep reading.)
    - Support for SHW-M110S (Korean Galaxy S).
    - Improved support for Galaxy Tab, Captivate and Vibrants (see below).
    - No reboot option.
    - Dump the devices PIT file and print the information in a human readable format.
    - Support for more named partition parameters i.e. --hidden, --movinand.
    - One more major feature (read below).

    However the biggest change is probably the proper support for PIT files. This means that less things are hard-coded. Instead Heimdall will be grabbing data from your device's PIT file or the PIT file you specify when repartitioning. This may seem like it has minor impact on the usefulness of Heimdall but it actually allowed me to add a second method of specifying files to be flashed to your phone.

    You can now type
    heimdall --<partition identifier> <filename>
    i.e.

    This essentially means you can flash any file your device supports as long as you know the partition identifier. Of course I don't expect you to know them off the top of your head. This is where the PIT file dumping functionality comes in.
    Walah! You now have a complete list of all the files your device supports.

    Another minor change is that I've removed the restriction on needing to specify bootloaders (or any files in particular) when repartitioning. However, this was in place as a safety feature. I honestly have no idea whether repartitioning without certain files is safe, and I have no immediate plans to find out, so please be careful!

    Back to the Galaxy S II. I don't own a Galaxy S II, so I'm unable to test any changes at present. However I very much would like to own a Galaxy S II! I'm certainly not one to hold out on releasing open-source software until a certain amount of donations have been received. I don't particularly agree with that. However let's just say that I'd very much like to be able to develop (and test) for the Galaxy S II and your donations would be very much appreciated! Again, a very big thanks to those of you who have donated!!!

    Donate Link: http://www.glassechidna.com.au/donate/

    Source Code ETA: < 24 hours
    Platform-specific binaries might take a little while longer to churn out.
    5
    Source for 1.2.0 (beta) Heimdall command line tool has been pushed to Github. I'm going to get some sleep, when I wake up I'll start posting binaries.

    Galaxy S II users, let me know if it works.
    4
    I've used GUI only, and there I've needed PIT file for partition to be recognized.

    This is correct, Heimdall Frontend does require a PIT file in order to provide you with a list of possible partitions to flash. However, as mentioned in my previous comment, a PIT file is not required from command line.

    In any case, the current PIT can be downloaded from your device and saved to your computer using the "download-pit" command from command line, or from the Utilities tab in Heimdall Frontend.