As some of my friends know, I am now a happy Android user. In fact, for about 5 months already… But my phone shipped with ECLAIR version of Android (2.1) and since I’m an Ubuntu user, I would find a way to flash my device and update my firmware to FROYO without Window$ / VirtualBox traditional approach. For my surprise, there are some options to accomplish that and I’ll explain the one that worked for me.
Please Note: These steps worked for me but it’s possible that will not work for you. It’s a very stable procedure but $hit happens. Do follow the steps at your own risk.
UPDATE – The same procedure works with Android 2.3.3 (Gingerbread) firmware. Version I9000BVJJV3 – Jun 2011. Please check samfirmware website to download.
Heimdall
According to their website, here is a description:
Heimdall is a cross-platform open-source tool suite used to flash firmware (aka ROMs) onto Samsung Galaxy S devices.
It has ports for Mac OSX, Linux and even Windows, although most of the Windows users prefer to use Odin to flash their devices or even Samsung Kies.
You can grab heimdall packages for Ubuntu from their website -> http://www.glassechidna.com.au/products/heimdall/
For this tutorial I’m using Heimdall 1.1.1 command line tool. Using the GUI version I’ve got some strange behaviours and some times the GUI just said that Flash happened without any processing.
Android Froyo firmware download
To flash your device you must obtain the firmware version that you’ll apply. You have many options over the web to obtain different versions of Android. Some of them claims to be original ones from operators and some others modified/hacked versions with extra functionalities. I’ll stick with the “original” ones and since I’m in Brazil, my device has digital TV so I need to use a GT-I9000B firmware. Here are two options to download firmwares:
- Samfirmwares -> http://www.samfirmware.com/firmwares.htm
- The website requires login but it’s 100% free.
- Apopovici’s Blog
- These are specific to Brazil (or Latin America) region and has firmwares to Brazilian operators.
For this tutorial I’m using Froyo 2.2 (Operator Free):
- Base Band I9000BVJJPD
Kernel 2.6.32.9
Compile FROYO.VJJPD
PIT s1_odin_20100512.pit
Link to download: http://www.megaupload.com/?d=7FTPJCEL
Link to PIT download: http://www.megaupload.com/??d=Q4P9R8GW
Procedure
- Install heimdall
- Uncompress the downloaded firmware package, in my case -> OK – 2.2 – FROYO – BRASIL SEM OPERADORA.rar
- Check if you have all the necessary files:
-r--r--r-- 1 markito markito 13955072 2010-12-11 01:23 cache.rfs
-r--r--r-- 1 markito markito 4833980 2010-12-11 02:04 zImage
-r--r--r-- 1 markito markito 716800 2010-12-11 02:04 param.lfs
-r--r--r-- 1 markito markito 254341120 2010-12-11 02:04 factoryfs.rfs
-r--r--r-- 1 markito markito 12582912 2010-12-12 22:30 modem.bin
- Move or copy the PIT file (s1_odin_20100512.pit) to the same directory you uncompressed the firmware
- Put your device in download mode. On a Galaxy S you should hold -> home buttom + power buttom + volume downand wait until you see the Android logo with “Downloading” written below.
- Now that your phone is ready to receive a new firmware, plug the USB cable, wait a few seconds and type the following command in the same directory you have uncompressed all the files:
heimdall flash --factoryfs factoryfs.rfs --cache cache.rfs --param param.lfs --kernel zImage --modem modem.bin --pit s1_odin_20100512.pit - Now you should wait a few minutes and expected for the best: successful messages.
- Your device should boot and will stuck a few moments in the Samsung S logo. That’s normal because it’s the first boot of your new kernel. But your are ready to go now, firmeware updated!
If it worked for you, congratulations. If you had or still have some problems, please take a look at some of the sources that I’ve used to learn and apply to my device, maybe it will help.
Sources:
Thanks a lot……how come we are not installing Drivers..Just how does the program differentiate between galaxy s and other usb devices?
Hi Abhisek,
I’m not saying that heimdal uses that, but in Linux you can type “lsusb” in any console and see some information about USB devices plugged in your system. With that, you can check for specific fields to see the manufacturer name, id, etc.
Thanks for reading, regards!
How do you install heimdall? I’m new to Linux and have used Odin to flash in the past. I have tried to install the packages using ./heimdall and. /heimdall-frontend from terminal, the heimdall application seems to install but I have-not idea how to run it. The Frontend package says its missing a lib package that I dont know how to install either. Can you help?
Hi Alan,
You have two ways to install heimdall on Ubuntu.
The quick and easy way is to download the .deb file from their website and install it (double-click). Here is the link https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall_1.1.1-1_i386.deb.
OR
If you want to compile it on your machine please follow these steps:
1 – Open a linux terminal and execute the following command:
2 – Download heimdall source code from http://www.glassechidna.com.au/products/heimdall/
3 – Extract the package and look for a folder Heimdall-Source (or something like that)
4 – Execute the following commands in a sequence:
After these steps you should be able to execute heimdall from your Ubuntu,
Hope that helps!
Thanks ,I flashed my Galaxy S on Fedora 14 64bit today.As simple as odin .
That’s good news! Good luck with your flashed device! I’m now waiting for the gingerbread release…
its possible if install custom ROM instead of installing froyo firmware?
clearly if i download the custom ROM and putting it with pit instead of downloading froyo??
thnaks alot.
Hi جوتيار!
Yes, heimdall is simple a flashing tool but you can use it with any image/ROM that you have. Of course that you have the same requirements (pit, modem, all other files…).
So if you have all the required files for your custom ROM, flashing it should work the same way as the official ROM.
Thanks for reading!
thanks , but the pit file that u added also work with any other ROM?
Well, it worked with other ROMs but just small different versions of official ROMs (I’m trying with gingerbread for example).
But pit files can be specific to your ROM, so if you want to understand/read more about PIT files, please check these links from XDA Forum http://forum.xda-developers.com/showthread.php?t=999097 and http://forum.xda-developers.com/showthread.php?t=816449
Hope that helps
Pingback: Upgrading Galaxy S from android 2.1 to 2.3.3 under linux » To Linux and beyond !
thank you very much for the tutorial!
just flashed my gsg to android gingerbread 2.3.4 (I9000XXJVR) from android 2.1 without any problem!
I used heimdall 1.3 (binary files from https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall_1.3.0_i386.deb – no need to compile) on ubuntu 10.10
and, last but not least, all my data/settings/applications have been preserved after upgrade!!! incredible
thanx again!
happy linux user
Hi, Im brand new to Ubunut, just installed it an hour ago and I wanna flash my phone. I downloaded the heimdall binary file and the heimdall-frontend file and installed them both through Ubuntu’s Software Center but now I dont know how to run them….
I tried and searched the hdd for them and found what seems to be the program but when I click on it, it doesnt launch. Can you guys help me out please
Hey, great how-to!!! I got a question… If I flash my Galaxy S, will I lose all my data (contacts, photos, videos, music, docs, installed apps…)?
Hi chinesegeek!
HTH
Well, there is a risk of loosing your data. But, that risk is really low and in my experience it never happened. All my data was kept in my system. Also, you should think that most of your apps are already stored in your google account, so even if you buy another device and login with the same account, you will synchronize your account including all your apps on the new device..
Thanks
Hi Moe, I’m not used to the heimdall-frontend and you can follow my tutorial in this post and use the command-line version. Just install the complete package of heimdall.
Great!!
Ok, I got another question… Why you dont use boot.bin and Sbl.bin in the heimdall parameters? It works without those two files?
Yes, it works. Also, you can read a comment from other user (federico carrara) that did the upgrade and preserved his all his apps and data
How much time will the phone stuck in Galaxy S logo? Is more than 10 minutes normal?
Aw, this was a very good post. Taking a few minutes and actual effort to produce a top notch article… but what can I say… I put things off a whole lot and don’t manage to get anything done.
After I initially commented I appear to have clicked the -Notify me when new comments are added- checkbox and now whenever a comment is added I receive 4 emails with the exact same comment. There has to be an easy method you are able to remove me from that service? Kudos!