[Epic 4G Android Development] mordant23:
Linux

I had to flash back to stock after I switched to Linux. I couldn't find an easy guide. In case this helps someone else, below are the steps I took. If this is useful, could this be added to the original post or would it be better if I start a new thread?

The steps should be adaptable to OS X, but since I don't use OS X I can't really write instructions with confidence. Perhaps someone else can?

Note: Everyone's linux distributions are different. For the instructions I'll use generalized descriptions of steps. The only specific instructions I'll give is for using Heimdall. I am not a linux guru nor am I an Epic 4G expert. The only wisdom I have is 42 is the answer to life, the universe, and everything else.

The steps are pretty easy. I'll give more detailed explanation afterwards.

0. Download tar and pit files listed in the original post

1. Install Heimdall

2. Understand how Heimdall linux process differs from Odin windows process

3. Boot phone into download mode and connect to computer

4. Push files to phone with Heimdall

Step 0: Download tar and pit files

Pretty simple. Unpack those bad boys. Put them all into one folder nice and cozy neat like. That's right. The pit, modem, and completely unzipped files all in one folder.

Step 1: Heimdall is your friend

There is no Odin without Windows. We must turn to another Norse god, Heimdall to help us out. Heimdall is an open source project to replace Odin. There are ports to Windows and Mac OS X. The Epic 4G is not officially supported but many people have used it with no problem. I personally used linux mint 11 with an almost bricked phone with no problem. Use at your own risk.

Install Heimdall

The latest version at this time is a command line only version 1.2.0. The GUI for previous version 1.1.1 looks easy enough if you want to use them, although according to reports it may not work as well as command line. For the instructions I'll use the command line because I think it makes it easier to understand how to match files up to the different fields.

Since your linux distros are different, I will not go into any specifics on how to install.

Step 2: Understand how Heimdall differs from Odin

Difference 1: Don't need no stinkin' Samsung drivers (unless you're using Heimdall in Windows). "But what about those drivers..." Zip it! You don't need 'em.

Difference 2: Unpack the tarball and unzip the pit. The individual files in the tar, the pit file, and the modem.bin file should all be in one folder. The major difference with Heimdall and Odin is that with Heimdall, you specify how the files match the partitions. In some respects this is easier because if you don't need to repartition, or if you only need to push a particular file, e.g. the modem, you can do that. The trick with the command line is to know which files match the command line switches, e.g. --modem modem.bin, --factoryfs factoryfs.rfs, etc.

Step 3: Boot phone in download mode and connect to computer

Open up keyboard and hold 1 while hitting power.

Connect phone to computer.

Step 4: Push files to phone

Open terminal window in the directory with all the files. Use cd if necessary to get to the folder.

The general structure for the heimdall command is:

Specifically for the SPH-D700-EC05-8gb-REL.tar and victory_8G_100528.pit listed in the original post on this thread:

Capitalization is important. I don't know how many times I messed up because I didn't type Sbl.bin with a capital "S".

If you use the gui, just make sure you specify which files go in which fields. I don't have the gui front end so I have not tested it, but it looks simple enough.

If everything works, then you'll see the progress as heimdell copies everything. If something is not right, then you'll get an error message.

Heimdall reboots the phone when it's done.

Please let me know what you think. Suggestions always welcome.

Sources:

http://www.glassechidna.com.au/products/heimdall/

http://wmarkito.wordpress.com/2011/02/11/flashing-android-froyo-in-a-galaxy-s-with-ubuntu-and-heimdall/