Android Rooting, Side Loading, and ROMs for Samsung Captivate
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/toolscd ~/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.dbecho "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
- http://forum.xda-developers.com/showthread.php?t=884364
- http://forum.xda-developers.com/wiki/index.php?title=Samsung_Galaxy_S_Series
Battery Recalibration
- http://esausilva.com/2011/01/01/how-to-calibrate-the-phones-battery-after-flashing-a-new-rom-or-kernel/
- http://forum.xda-developers.com/showthread.php?t=765656
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
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.