Installing the FireFly Custom ROM
on a Samsung Galaxy S Captivate
This tutorial covers all of the steps that I used to install the FireFly custom ROM on my Samsung Galaxy S Captivate. These instructions are good for both Rogers and AT&T versions of the phone.
Disclaimer: I make no guarantees that the following instructions will work exactly as stated on your phone. I am not responsible for anything that might go wrong when you follow this guide.
These steps will probably NOT WORK with any other custom ROM or on a phone other than a Galaxy S Captivate.
Proceed at your own risk!!!
Before I list the steps to install a new ROM, I thought it
might be useful to cover a few of the basics involved in the process so that you
can better understand what we are about to do.
Weíll begin with the concept of rooting a phone, because we need to do this in step 1 to backup our existing apps, and then again a couple of more times. Rooting enables us to grant superuser status to various apps. This gives the apps permission to do anything they want, including stuff that they arenít supposed to be able to do. Yes, there is the potential danger of malicious apps doing stuff you donít want them to, but you grant this access only to applications you personally trust, and so this isnít really an issue.
The second issue is the way in which we install firmware on the phone. There are two basic approaches, one of which uses your PC with a piece of software running on it called Odin, while the other is a process thatís done solely from phone using a special installer known as Clockwork Recovery. Flashable code comes in two forms: as a ZIP containing countless install packages and support files; and as a BIN file (or a TAR file that contains one or more BIN files). The ZIP file can only be installed using Clockwork Recovery, while a BIN (or TAR) can only be installed using Odin. We are going to use both approaches.
Next is the issue of lag, which is a problem that specifically afflicts the Samsung Galaxy S. In a nutshell, the problem springs from poorly-conceived procedures for writing data to Flash memory, the ďhard driveĒ of the phone. Because of the way Flash memory (and specifically the chip chosen for the Galaxy S) is addressed, itís easy to do things the WRONG WAY and end up with excessively slow write times. Why Samsung chose to do things the way they did is neither here nor there, because hackers have come up with much better ways to handle this using well-tested code that is commonly used in the Linux O/S. These approaches are collectively referred to as LAGFIX. FireFly comes with a LAGFIX option baked right in.
Now letís get started:
Step 1: Download FireFly
You can get a copy of the necessary file from the official download page:
Step 2: Root Your Phone
If you havenít already done this, now is the time. The easiest way to root a Captivate is to use a piece of software called Z4ROOT. You can download it directly from here.
The file you have just downloaded is an APK, which is an install package. In order to install a package on your Android phone without getting it from the Market you need to make sure youíve allowed your phone to do this. Go to Settings->Applications and make sure that Unknown Sources has been checked. Now copy this APK file onto the internal or external SD card in your phone and use any file explorer (such as My Files) to execute it (I.E. just click on the APK file).
Once itís installed, launch the app and follow the simple instructions to permanently root the phone. Once complete, your phone is rooted and you can move on to the next step.
Step 3: Backup Your Apps
The best Android backup application by far is Titanium Backup. There is a free version of this app in the Android Market. The only catch is that it requires a rooted phone, but we just took care of that in step 2. After youíve installed Titanium Backup, run it and you should be prompted to grant the app superuser status. Agree with this and continue. Now touch the Backup/Restore tab at the top of the screen. Next hit the menu key and choose Batch. From the list, choose Backup All User Apps. The process will take a few minutes to complete.
Step 4: Copy Important Data from your internal SD Card
In the process of installing a new ROM weíre going to need to erase everything from the phone, which will include important data you have stored on your internal SD card, as well as the backup we just did in step 3. Plug your phone into the USB cable and plug the USB cable into a computer. Mount the phone as a Mass Storage device so that your SD card appears as a drive letter on your computer. Youíve probably done this before, in which case your computer will already have the necessary drivers, but if not you can download them from here:
The first thing we need to copy is the folder called Titanium Backup. We need to get a copy of that put in a safe place for later recovery. In addition to that you might also want to copy any other data that isnít backed up with Titanium (such as the DCIM folder, where all of your photos and videos are stored), as well as any other folders that you might have created. If you arenít sure, just backup EVERYTHING. You can then restore whatever you need at a later time. You donít have to worry about the contents of the external SD card, because weíre going to remove that just to be safe.
Step 5: Wipe the phone of all unnecessary data
There are a number of ways to do this, but the most complete way involves using a standard GSM code. Go to your phoneís dialer and type the following ďphone numberĒ:
Confirm that this is what you want to do and the process will begin. I canít remember off the top of my head, but I believe this reboots your phone once compete.
Step 6: Obtain a copy of the Stock Android 2.1 ROM
There are two ways to go about doing this. If you are on AT&T, or you donít mind flashing a stock AT&T ROM (it doesnít really matter) you can take this approach:
Step 6A: For AT&T
A) Download a copy of Odin that has been specially modified to contain a stock version of the AT&T ROM:
B) Unzip the downloaded file.
C) On our phone, go to Settings->Applications->Development and ensure that USB Debugging is checked. Note that you canít do this with the USB cable plugged in, so unplug it first.
D) Shut your phone off, and then take out the battery, the SIM card, and the micro SD (external SD card).
E) But the battery back in, but do not turn your phone back on.
F) Start Odin3 (in other words, execute the I897UCJf6-final-OCD-REV0.exe file that was inside the ZIP you downloaded).
G) While holding both the volume up and volume down buttons on your phone, plug in the USB cable into your phone. This will turn your phone on and put it into Download Mode (and if necessary, drivers will be installed on your computer).
H) Once the drivers are installed and Odin3 sees the phone (it will say something like com 3 connected) press the Start button on the Odin software on your computer.
I) If after 2-3 minutes Odin3 does not see your phone, pull the battery out, put it back in, and then repeat from step G.
Step 6B: For Rogers
However, if you are on Rogers and youíve feel safer reflashing a stock Rogers ROM, there is a way to do this. It differs rather substantially from the steps I outlined above, but itís no more difficult.
A) Download a copy of the Rogers stock Android 2.1 ROM from one of the following locations:
B) Unzip the files to a single folder on your computerís hard drive.
C1) Download a copy of Odin3 v1.7:
C2) Download the necessary PIT file:
Make sure you remember to extract the PIT file from this ZIP.
D) Execute this EXE and install Odin on your PC.
E) Shut your phone off, and then take out the battery, the SIM card, and the micro SD (external SD card).
F) But the battery back in, but do not turn your phone back on.
G) While holding both the volume up and volume down buttons, plug in the USB cable to your phone.
H) This will turn your phone on and put the phone into Download Mode (and if necessary, drivers will be installed on your computer).
I) On your PC, open Odin3 1.7 which you installed in step D.
J) Click the button marked PDA and select the large TAR file that came in the file you unzipped in step B.
K) Click the button marked PIT and select the s1_odin_20100512.pit file that you downloaded in step C. It is important that you use this particular PIT file and not any others you might have from other sources.
L) Ensure that both the Re-partition and Auto-boot checkboxes are CHECKED.
M) Press the Start button and the process will begin. Once the flash is completed, your phone will reboot.
Follow after Step 6A or Step 6B
In either case, the reboot process will seem to take a VERY LONG TIME. This is normal and shouldnít be a concern. However, if the process takes longer than about 10 minutes it means that something has locked up. Rebooting again usually solves this, but not always. Fear not, the solution is quite simple:
Pull the battery and reinsert it. Remove the USB cable from the phone. Press and hold the volume up, volume down, power buttons and KEEP HOLDING THEM until the phone powers on. Now release ONLY the power button and continue to hold the two volume buttons until a bunch of text appears on the screen.
You are now in the Recover menu, which will differ slightly depending upon exactly which Recovery menu you get. Look for an option called Delete All User Data. If it exists, scroll to it (using the volume down key), and then select it using the power key. Now scroll down to Delete Cache Data and select again using the power key. If you donít see either of those two options, youíll probably see Wipe Data/Factory Reset. Scroll down to this and then press the power key. Finally (for either version), scroll back up to Reboot System Now and press the power key. The boot process should work fine this time.
Step 7: Copy FireFly and Z4Root.apk onto your SD card
Plug in the USB cable and mount your phone as a mass storage device. Copy the FireFly ZIP file that you downloaded in step 1, as well as Z4Root.apk that you downloaded in step 2, onto the root of your internal SD card.
Step 8: Root the Stock ROM
Youíll now need to root this stock installation. Using Z4Root.apk, which we just copied onto the SD card, just do exactly what you did in step 2.
Step 9: Install Clockwork Recovery
The easiest way to do this is to download ROM Manager from the Android Market. Run this app and click on the first button, which should say Flash Clockwork Recovery. A list of phone models will appear, from which select your phone (which will be Captivate, of course). This will download the correct version of Clockwork Recovery onto your SD card, but to actually install it we must reboot into Recovery mode. To do this press and hold the volume up, volume down, and power buttons, and then KEEP HOLDING THEM until the phone powers on. Now release ONLY the power button and continue to hold the two volume buttons until a bunch of text appears on the screen.
Scroll down (using the volume down key) to apply sdcard:update.zip and then press the power button. If doing this brings you back to exactly the same menu, then do this a second time. I read about this in various forums and I had to do it twice on my own phone. Once successful a new (and longer) menu will appear and the header should mention Clockwork Recovery.
Step 10: Install FireFly
From the Clockwork Recovery menu scroll down to install zip from sdcard and press the power button. The next screen will probably ask you do pretty much the same thing, so just tell it yet again that you want to download a file from the SD card. A list of files should now appear on the screen. Scroll down to FireFly and press the power button. The installation will begin and once itís complete the phone will reboot into FireFly.
Step 11: Root FireFly
Okay, it probably seems like you have to do this a lot, but this is the last time. However, donít use the approach we used earlier, but instead use the one provided by FireFly. The first thing we need to do is reboot into the Recovery screen, which on Firefly is really easy. Theyíve extended the power menu to include this option. Just press-and-hold the power button as though you were turning the phone off, and then from the resulting menu choose Recovery.
Scroll down to Advanced SpeedMod ULK features and press the power button to select. Now scroll down to ROOT / Install Superuser and press the power button again. I canít remember if this causes your phone to reboot. If it does, allow that to happen and then return to the Recovery menu as we did above. If the does not reboot, you can proceed directly with other options.
Step 12: Install LAGFIX
To get to the LAGFIX options you begin from the main Recovery menu and select Advanced SpeedMod ULK features. From that menu select LAGFIX options. Now select Enable lagfix: Convert DATA to Ext4. I donít remember if this immediately begins the process, but Iím fairly certain it doesnít. If it does, allow the process to take place (it takes quite a while) and the phone to reboot. Then return to the Recovery menu so we can proceed with the next conversion. If the above did not occur right away, just continue by selecting Convert SYSTEM to Ext4/RFS. This one will definitely not start right away.
Step 13: Activate Tweaks
Now select +++Go Back+++ to return to the previous menu and select TWEAK options. In that menu youíll see a host of items that are tagged either with an (R) at the end, with an (O) at the end, or with (NOT RECOMMENDED) at the end. We are going to deal ONLY with the items containing the letter R after them (the first 3 items). Scroll to each in turn and select them by pressing the power button. In the white text at the bottom of the screen youíll see confirmations of each option you selected. If the list contains options you donít want, select them again and theyíll disappear from the list.
Step 14: Select Color Temperature
One of the common complaints about the Captivate is that its Super AMOLED screen looks bluish compared to other phones. This isnít a fault of the AMOLED display, but rather a choice on the part of Samsung. You now have the option of tweaking the color temperature of the screen, which I recommend you try. You can always go back to this menu item and change it at any time.
Return from the previous menu by selecting +++Go Back+++ and then scroll down to COLOR & BRIGHTNESS Options. From this menu I recommend that you choose WARM Color (More Red). This will make whites on your Captivate seem less blue and youíll find that your phone now matches other models. Optionally you can select Disable darkest auto-brightness level. By default FireFly makes the darkest screen chosen by the auto-brightness mode about 30% darker than it was in stock. I found it was too dim for my tastes, and so I checked this option to return the screen brightness to the way it was in the stock ROM. You can experiment with this to see what you like.
Step 15: Restore Your Apps
Now select +++Go Back+++ a couple of times to return to the main Recovery menu and then select reboot system now. Firefly will reboot and we can proceed with the final steps.
Once the phone has rebooted, connect the USB cable to the phone and mount it as a mass storage device. Copy back the entire Titanium Backup folder you moved to your computer way back in step 3. Disconnect the USB cable and go to the Android Market to reinstall Titanium Backup. Run the program and touch the Backup/Restore tab. Now press menu and choose Batch. From the list select Restore missing apps with data. Youíll have to approve of the reinstallation of each app individually, which is a bit of pest, but the process is otherwise just a baby-sitting job. Not only will Titanium Backup restore you apps, it will (for the most part) restore any data those apps had stored.
Step 16: Restore Sundry Files
Connect your phone to your computer as a mass storage device. Copy back the folders that contain user data, such DCIM. If you copied EVERYTHING from your SD card I donít recommend copying it all back, because some of the folders contain files that are pertinent to the current O/S. Copy back what you need and nothing more.
Step 17: Enjoy Your New O/S
Thatís it. Most things should now be back to the way you had them in the stock ROM, though you may have to re-enter a few usernames and passwords here and there.