Android Rooting, Side Loading, and ROMs for Samsung Captivate

From Oh Mad Lab
Jump to navigation Jump to search

Installing a Custom ROM on a Samsung Captivate

Turn on Debug Mode

  • Settings
  • Applications
  • Development
  • Check USB debugging
  • Click OK to "Enable USB debugging"

Rooting

Method 1 - The long way for the truly paranoid type (like me)

  • Download RageAgainstTheCage.tgz and extras.tgz
wget http://crackerjackbox.com/android/RageAgainstTheCage.tgz
wget http://crackerjackbox.com/android/rooting_extras.tgz
  • Extract files in a tmp folder
mkdir tmp
cd tmp
tar zxvf RageAgainstTheCage.tgz
tar zxvf extras.tgz
  • Using the Goolge Android SDK
adb push rageagainstthecage-arm5.bin /data/local/tmp/
adb shell
  • You'll now see the $ prompt and from here we will execute the rageagainstthecage-arm5.bin
chmod 0755 /data/local/tmp/rageagainstthecage-arm5.bin
/data/local/tmp/rageagainstthecage-arm5.bin
  • This will force adb to reload and will close the adb session, so we need to re-run the adb shell
adb shell
  • This time we will now see the # (root) prompt instead of the $ (user) prompt, so we will not start the actual rooting
mount -o rw,remount /dev/block/stl9 /system
exit
adb push extras/su /system/bin/
adb push extras/busybox /system/bin/
adb push extras/Superuser.apk /system/app/
adb shell
cd /system/bin
chmod 4755 su
chmod 4755 busybox
reboot
  • After the reboot, you'll be at your terminal's prompt and the phone will reboot. You can verify that you have the "Superuser" application in your app drawer.

Method 2 - The short way

  • Download root update zip directly to Android device
http://crackerjackbox.com/android/SGH-I897RootUpdate.zip
  • Rename SGH-I897RootUpdate.zip to update.zip and copy to root of sdcard NOT sd
  • Reboot Android device to recovery mode, see methods below
  • In the recovery menu, select "reinstall packages"
  • Once, done it will reboot automatically and you'll have a "Superuser Permission" application

NOTE: The sdcard is the internal card. Don't use sd, which is the removable card.

  • Download BusyBox - Stephen (Stericson) from the Market, which is only a installer app
  • Run the BustBox app and it will install BusyBox
  • Once BusyBox is installed, you can uninstall the BusyBox Installer

Enable Unknown Sources / Side Loading

  • On an AT&T device, you'll more than likely not have a "Unknown Sources" menu item in the Settings->Applications menu. This is becuase ATT removed it. The following steps will enable it the hard way.
  • Plug the device into the computer and run the following
cd android-sdk-linux-linux/tools
cd ~/android/android-sdk/android-sdk-linux_x86/platform-tools
adb shell
su
  • On the device, allow root permissions
  • Setting read/write for all
chmod 666 /dbdata/databases/com.android.providers.settings/settings.db
exit
exit
  • Download the settings.db
adb pull /dbdata/databases/com.android.providers.settings/settings.db settings.db
  • Update the "Unknown Sources" setting to true
echo "update secure set value = 1 where name = 'install_non_market_apps';" | ./sqlite3 settings.db
echo "update secure set value = 1 where name = 'install_non_market_apps';" | ../tools/sqlite3 settings.db
  • Upload the settings.db
adb push settings.db /dbdata/databases/com.android.providers.settings/settings.db
  • Reset the permissions / owner as they were and reboot to make settings take affect
adb shell
su
chmod 660 /dbdata/databases/com.android.providers.settings/settings.db
chown system.system /dbdata/databases/com.android.providers.settings/settings.db
reboot

NOTE: If you get "chown: unknown user/group system:system", then try 1000.1000

Backups

Contacts Export

TODO: Document exporting contacts to vCard

Backup up Apps+Data

  • On the device, go to the Market app
  • Search for Titanium Backup and download either the free or pay app
  • Run Titanium Backup
  • Give it super user rights
  • With the device unplugged from the computer, go to the Backup/Restore tab
  • Press the menu button
  • Select Batch
  • Press "RUN" on the "Back up all user apps + system data" line
  • Press "Run the batch operation" and take a coffee break
  • When done, copy the TitaniumBackup folder to your computer (I used astro+network)

Complete Backup

  • Download CMR zip directly to Android device
http://crackerjackbox.com/android/clockworkrecovery.zip
  • Rename clockworkrecovery.zip to update.zip and copy to root of sdcard NOT sd
  • Reboot Android device to recovery mode, see methods below
  • In the recovery menu, select "reinstall packages"
  • This will install the ClockworkMod Recovery image
  • If it boots back to the recovery menu, just select "reinstall packages" again to get to the next step
  • You will be at a green menu titled "ClockworkMod Recovery"
  • Select "nandroid" (or "Backup and Restore" depending on your version of CMR)
  • Select "Backup" and take a coffee break
  • When done, copy the clockworkmod folder to your computer (I used astro+network)

Install Custom ROM

  • The update.zip should still be the CMR
  • Go download the custom ROM (whatever it may be) directly from your Android device
  • Put the ROM on root of sdcard (internal), but don't call it update.zip as we want to keep clockworkmod on there and it will be the current update.zip
  • Reboot Android device to recovery mode, see methods below
  • In the recovery menu, select "reinstall packages"
  • You will be at a green menu titled "ClockworkMod Recovery"
  • Select "install zip from sdcard"
  • Select "choose zip from sdcard"
  • Navigate and select the ROM you just downloaded
  • Select the "Yes - Install XXX" line (XXX will be the ROM you selected)
  • Coffee break 1!
  • Once done, you'll see "Installation complete." and "Install from sdcard complete."
  • Select "+++++Go Back+++++"
  • Select "+++++Go Back+++++"
  • Select "reboot system now"
  • Coffee break 2!
  • Once phone boots, check if you have Titanium Backup... if not then download it to restore apps+settings
  • Run Titanium Backup
  • Give it super user rights
  • With the device unplugged from the computer, go to the Backup/Restore tab
  • Press the menu button
  • Select Batch
  • Press "RUN" on the "Restore missing apps + all system data" line
  • Tap "Deselect all"
  • Painfully go through list and select only those apps you want back
  • Done forget the following system settings:
    • [BOOKMARKS] Browser 2.2
    • [CALENDAR] CAlendar Storage 1.1
    • [CONTACTS/CALLS] Contacts Storage 2.2
    • [SMS/MMS/APN] Dialer Storage 2.2
    • [SMS/MMS PREFS] Messaging 2.2
  • Press "Run the batch operation" and take a coffee break
  • All Done!

Resources

Misc

Battery Recalibration

Appendix

Rebooting to Recovery Mode

Method 1

  • Power off device
  • Hold volume up and down at the same time and then press and hold power (holding all three buttons)
  • Release only the power button when you see the "start circle" or boot splash screen
  • Once menu is up, release the volume buttons
  • Device will boot to the "Android system recovery" or "ClockworkMod Recovery" menu depending on what you have installed

Method 2

  • On nix, with Android SDK installed, do the following with the device connected to the computer:
cd android-sdk-linux_86/tools
./adb reboot recovery
  • Device will boot to the "Android system recovery" menu

GPS Issues

Checking navigation availability

I had the "Checking navigation availability" when going directly into Navigation. After rebooting, it still gives the message. I don't quite know what fixed it, but I went into Maps and there was a prompt I accepted and I also went into the market to uninstall, but instead tapped open on the Maps from market. Now Navigation works fine. If it fails, then try:

  • Disable GPS
  • Settings->Applications->Manage applications->All tab, then scroll down and select Maps
  • Force stop
  • Clear data
  • Clear cache
  • Back out to main menu and launch Maps
  • It will prompt you, so accept the prompt
  • Check that mapping is working and once it is then try Navigation

If that doesn't work, then try uninstalling Maps and reinstalling?

I also read about Da_G and his GPS fix. I don't believe it's of concern for this scenario, but here is the link just in case: http://forum.xda-developers.com/showthread.php?t=881941 It looks like he's changing some settings and it might be fun to play with it later when I get a chance.