[Captivate Android Development] clawsthatscratch:
step by step to captivate root

The purpose of this step-by-step is just to make it easier for people new to Linux, like myself to understand what is going on and how to proceed. I give full credit to everyone from whom I “borrowed” information from. :D The machine used was using Windows 7. This was actually easy once I understood what I was doing.

(pre-rooting)

First

Download, extract, and put in the root folder of your c: drive, the android SDK.

Put the extracted files into a folder called “Android-sdk”, or whatever you want to call it.

Run the SDK Manager.exe file and choose “accept all” for the packages….

Once that is complete, and it will take a while, close the program.

Second

Extract the Captivate2.2RootPack zip file

which contains: busybox, the rageagainstthecage-arm5.bin, sqlite3, su, and superuser.apk

Third

Copy or move the contents from the extracted folder to the “tools” subfolder located in the installed SDK directory.

Fourth

You also need your phone set up and once set up you will hook it up to your computer with your usb cable.

Go to the settings icon on your phone, click it and click the applications icon, then click the development icon. Now make sure to have both USB debugging and Stay awake both selected.

Now you are ready to follow the instruction given by

CLShortFuse,

I have heavily commented below, so you might want to have both his concise code and my explanations.

#1 – Rooting	(the first step after the pre-rooting)

su,busybox,sqlite3 (files you copied to the “tools” subfolder and will install)

On your Windows computer you will go to the “tools” subfolder and open a command prompt; if you use “Windows Explorer” just select the folder with the right mouse key while holding down the shift key. This will give you the option of opening the command prompt in that folder, which saves time drilling down to it. This all assumes you are using an administrator account.

adb push rageagainstthecage-arm5.bin /data/local/tmp/rageagainstthecage-arm5.bin

(using the command prompt this is the command that copies the binary from your computer to the phone, it looks to be some type of telnet program that the SDK uses)

adb shell (this opens a command shell on the phone, you won’t notice anything on the phone, just in the command prompt)

cd /data/local/tmp (this just changes the directory, and if you do a ls, the linux list command, you will see the bin file has been copied here)

chmod 0755 rageagainstthecage-arm5.bin

(this changes the permissions on the file, allowing you to execute it)

./rageagainstthecage-arm5.bin (wait for you to get kicked from adb)

(this is the execute command, and he advises you to wait till you are kicked out, you will know it has happened when you see c:\android-sdk\tools\ and a flashing prompt)

adb shell (go back into the shell)

mount -o rw,remount /dev/block/stl9 /system

(this is mounting a device and setting permissions)

exit (exit the shell)

adb push su /system/bin/su (now you begin to copy the programs to the phone)

adb push busybox /system/bin/busybox (again)

adb push sqlite3 /system/bin/sqlite3 (again)

adb push superuser.apk /system/app/superuser.apk (and again)

adb shell (back to the shell)

cd /system/bin (changing directories)

chmod 4755 su (changing permissions)

chmod 4755 busybox (changing permissions)

chmod 4755 sqlite3 (changing permissions)

reboot (now this command will reboot the phone to make changes)

#2 Non market apps

adb shell

su (you are root now, once you tell the phone its ok…look for the prompt)

cd /dbdata/databases/com.android.providers.settings (changing directories)

sqlite3 settings.db (running sqlite)

update secure set value = "1" where name = "install_non_market_apps"; (changing a setting)

.quit (leaving the db)

reboot (rebooting the phone again)

#3 no start up sound

adb shell

su

rm /system/etc/PowerOn.wav (removes the sound file)

#4 remove bloat

adb shell

su

rm /system/app/[file] (allows you to manually remove any of the listed files)

values for [file] (take your pick)