Flashing Galaxy S devices under Linux (Was: Upgrading Android Under Linux)

Flashing Galaxy S devices under Linux (Was: Upgrading Android Under Linux)

Gadi Cohen dragon at wastelands.net
Tue Jun 7 22:13:22 IDT 2011


On 11/05/2011 15:48, Amos Shapira wrote:

> I'm following the forums around it but from what I heard CM7 doesn't
> fully support the SGS yet though this might change soon since Samsung
> released the kernel sources a few weeks ago.

First piece of news is this:
"Samsung Delivers Galaxy S II to CyanogenMod Dev, Says Get to Work"
http://phandroid.com/2011/06/06/samsung-delivers-galaxy-s-ii-to-cyanogenmod-dev-says-get-to-work/

> If someone can point me to *detailed* instructions how to achieve that
> without Odin then I'd love to hear - I don't have time to mess with a
> dead phone if I screw things up or to sit through tons of text which
> assumes you already know tons of jargon TLA's etc. I tried following
> instructions but they all either start by assuming you know the
> acronyms and the basic stuff or I end up chasing explanations of the
> terms used in the instructions.

Right, I finally overcame my fears and successfully flashed my SGS II
I9100 in Linux yesterday.

I'll be as detailed as I can, but ultimately exact instructions would
depend on which ROM you want to flash.

Basically:

1) Download and install Heimdall from here:
http://www.glassechidna.com.au/products/heimdall/
There are debian packages (.deb) which can be installed in Ubuntu/Debian
or converted to RPM.

2) Download whatever ROM you want.  Unzip/unrar/etc to get the .tar.md5
file.
This is just a regular tar file.  Odin can read it all in one go.
For Heimdall you need to untar it, and specify each file separately.

3) Get the phone into download mode.
>From a powered off phone, hold down vol-down, home, and power.

4) There's a Heimdall GUI which I didn't use (since it's not updated for
the latest version).
But the command line is very easy.  Run heimdall with no arguments for a
list of options.
Then it's a matter of specifying what each file is.

The (possibly) less obvious ones are
* zImage is the kernel
* Sbl.bin is the Secondary Boot Loader

Then it's just (as an example):

heimdall flash --factoryfs factoryfs.bin --kernel zImage

Yeah, it's that simple.  For a full (stock) ROM it would probably be:

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

Some ROMs require you to repartition how the memory is divided, in which
case you'll also need, for example, "--repartition --pit 512.pit".

5) When Heimdall finishes, the phone reboots automatically with the new ROM.

Note, that's the flashing part, which is "easy", but ROMs in general
might be a bit more complicated.  e.g. especially for the Galaxy S II
which is new, you might need to e.g. wipe the phone before flashing. 
You should definitely wipe the cache if you don't flash a new one.  You
can do these actions from recovery mode (power on with vol-up, home,
power).  Note, the SGS I is sometimes hard to get into recovery, see my
previous note in a previous email about that.

The point is, even if you flash successfully, other things could still
go wrong.  But then it's not a problem to just reflash the device.  Just
make sure you don't unplug or power off during the middle of a flash! 
Generally speaking, if you aren't trying to keep your user data between
flashes, more than likely if you flash a base ROM, and then a custom ROM
known to work on top of that base rom, your chances of success are very
high.

Let me know if anything wasn't clear, and good luck :)

G

-- 

Gadi Cohen aka Kinslayer <dragon at wastelands.net> www.wastelands.net
Freelance admin/coding/design HABONIM DROR linux/fantasy enthusiast
KeyID 0x93F26EF5: 256A 1FC7 AA2B 6A8F 1D9B 6A5A 4403 F34B 93F2 6EF5

//



More information about the Linux-il mailing list