These are the steps I took to root my Samsung Fascinate. Rooting gives the following abilities and more:
This article assumes you have already installed the Android SDK. I also assume that you have the platform-tools directory as part of your path. If not, you will need to specify the full path whenever you see the adb command used, like ~/android-sdk/platform-tools/adb.
The first step is to get your computer to recognize the phone. I followed the instructions on the Android developer site that explain how to do it. I'll summarize the steps for Ubuntu.
First make sure your phone is setup for development by performing the following steps:
Connect your phone to the computer using the USB cable that came with the phone. Now your phone should appear in the list of usb devices:
lsusb
... Bus 002 Device 006: ID 04e8:681c Samsung Electronics Co., Ltd Galaxy Portal/Spica Android Phone ...
As root, edit /etc/udev/rules.d/51-android.rules so it looks like:
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"
Replace "04e8" with the vendor id found in your lsusb output from the previous step (it's the first four characters after ID).
Now set the permissions on the file and restart udev to enable it.
sudo chmod a+r /etc/udev/rules.d/51-android.rules sudo /etc/init.d/udev restart
Now run the adb command and check for devices:
adb devices
List of devices attached I500cf846986 device
You should see your device listed. If you do not try restarting adb with:
sudo adb kill-server sudo adb start-server
Assuming you have made it this far and adb can see your device, we can continue with the rooting process. The following instructions were taken from this Newbie Guide to Rooting the Fascinate.
Download and unzip root.zip into a new directory. You should have the following files:
busybox rageagainstthecage-arm5.bin su Superuser.apk
Push the rageagainstthecage-arm5.bin file over to the phone:
adb push rageagainstthecage-arm5.bin /data/local/tmp/rageagainstthecage-arm5.bin
Shell into the phone and setup the next step:
adb shell
cd /data/local/tmp
chmod 0755 rageagainstthecage-arm5.bin
After the next step there will be a pause (for a few seconds) then you will be returned to the shell prompt. Then wait another 20 seconds or longer and you should be kicked out of the adb shell. If your phone locks up, nothing bad should happen, just try forcing a reboot by pressing and holding the power button, or removing the battery for a few seconds.
./rageagainstthecage-arm5.bin
You should see the following then the command prompt again.
[*] CVE-2010-EASY Android local root exploit (C) 2010 by 743C [*] checking NPROC limit ... [+] RLIMIT_NPROC={3712, 3712} [*] Searching for adb ... [+] Found adb as PID 2200 [*] Spawning children. Dont type anything and wait for reset! [*] [*] If you like what we are doing you can send us PayPal money to [*] 7-4-3-C@web.de so we can compensate time, effort and HW costs. [*] If you are a company and feel like you profit from our work, [*] we also accept donations > 1000 USD! [*] [*] adb connection will be reset. restart adb server on desktop and re-login.
After waiting until you are kicked out of the shell, restart the adb server and re-login:
sudo adb kill-server sudo adb start-server adb shell
You should now be at a root (pound symbol) prompt. Exit the shell:
exit
Now to make the root permanent do the following:
adb push su /data/local/tmp/su
adb push busybox /data/local/tmp/busybox
adb shell
mount -t rfs -o remount,rw /dev/block/stl9 /system
cat /data/local/tmp/su > /system/xbin/su
cat /data/local/tmp/busybox > /system/xbin/busybox
chmod 4755 /system/xbin/su
chmod 4755 /system/xbin/busybox
exit
Install the Android application that controls root access:
adb install Superuser.apk
After it installs you will see Success on your screen and the connection will hang. Press Ctrl-C and reboot your phone. You should now have permanent root.
The Library of Congress has specifically exempted rooting from the DMCA (Digital Millennium Copyright Act)… This means that it is now 100 percent legal to root your Android phone (or jailbreak your iPhone) whenever you want without fear of legal action taken against you.
– David Wasserman, Android Phone Geek, "Rooting Your Phone Now 100% Legal", 2010-07-26
Once again I've decided that I want to take a look at programming for the Android platform. One of the first things to do is to get an Android emulator and a programming environment setup. After searching around a few different sites to get the instructions I've compiled the steps to get an emulator working under Ubuntu Linux here.
I followed the steps on the android site. Using the command line in Ubuntu, here are the steps to follow:
Install OpenJDK:
sudo apt-get install openjdk-6-jre
If you are running a 64-bit OS, then install the needed 32-bit libs:
sudo apt-get install ia32-libs
Download the latest SDK from the Android site (which, as I write this, is android-sdk_r07-linux_x86.tgz).
Uncompress the tarball into your home directory and rename it:
tar xfvz android-sdk_r07-linux_x86.tgz mv android-sdk-linux_x86 android-sdk
Here are all of the above steps combined:
sudo apt-get -y install openjdk-6-jre uname -m | grep -q "\(x86_64\|ia64\)" && sudo apt-get -y install ia32-libs cd wget http://dl.google.com/android/android-sdk_r07-linux_x86.tgz tar xfvz android-sdk_r07-linux_x86.tgz [ -e android-sdk ] && mv android-sdk android-sdk.$(date +%y%m%d) mv android-sdk-linux_x86 android-sdk
Optionally you may add the Android tools directories to your PATH by adding the following to your .bashrc file:
export PATH=${PATH}:${HOME}/android-sdk/tools:${HOME}/android-sdk/platform-tools
Now run the Android SDK and AVD Manager via:
~/android-sdk/tools/android
Or, if you are running GNOME, make a custom application launcher, by either right-clicking a panel and selecting Add to panel… then adding a Custom Application Launcher, or by right-clicking the Main Menu and selecting Edit Menus then select Programming then New Item. The custom application launcher should have the following properties (substitute your $HOME directory for /home/USERNAME):
Now configure the Android Manager:
https://
… sources to be fetched
using http://
…You can now run this virtual android image by clicking the Start… button. Or from the command line (replacing NAME with the name of the virtual you created):
~/android-sdk/tools/emulator @NAME
You can also create a custom application launcher with that command.
The next time you want to make sure your android installation is updated you can run:
~/android-sdk/tools/android update sdk
#+BEGIN_COMMENT
I followed the steps this article. Using the command line in Ubuntu, here are the steps to follow:
First, if you do not already have VirtualBox installed, you can install the open source edition with the following command:
sudo apt-get install virtualbox-ose
Now, under your Accessories menu you should see the VirtualBox OSE launcher.
#+END_COMMENT
Even though I prefer to code in Emacs whenever possible, the recommended method of programming for the Android platform is with the Eclipse IDE. So, I'm starting with that at least until I get more used to Android programming.
At first I tried to install Eclipse with apt-get like so:
sudo apt-get install eclipse
However, I could not get the Android Development Tools to install with that version of Eclipse (Galileo v3.5.2). So, like many others have, I decided to use the latest version from their web site. I downloaded the 64-bit Eclipse Classic (Helios v3.6.1) tarball from their download page. You should download the correct version for your architecture and uncompress it in your home directory.
tar zxvf eclipse-SDK-3.6.1-linux-gtk-x86_64.tar.gz
You might want to create a custom application launcher for it with these settings:
Now launch Eclipse. Then select Install New Software from the Help menu and add the following sites:
Install everything from each of them in the above order.
After that finishes, select Preferences from the Window menu. Select Android on the left and set the SDK Location to /home/USERNAME/android-sdk or wherever you installed the Android SDK. When you apply it you should see a list of Android target versions. OK the change.
Now when you create a new project, you can pick Android as a type.
James DeBragga [Windows Consumer Product Manager]: Android is "free like a puppy".
spark: "Free like a puppy" is certainly much, much better than an atrociously priced and uncontrollably incontinent, rabies-infected mad hound.
I use 64-bit Ubuntu on my workstation at work. It needs to be 64-bit because I use 64-bit images of Red Hat for development and testing. Most software that I need works well with the exception of flash in Firefox.
I never really cared too much about this at work before since I usually don't visit a lot of flash based sites. Although it did kind of suck not being able to play the cool YouTube video all of my coworkers were watching.
Well, after my last blog entry caused my work browser to crash I decided to do something about it. I found some great directions in the Ubuntu Forums that cover many options. The one that worked for me was the Nspluginwrapper script (towards the end).
Until Adobe gets of their butt and makes a 64-bit version of their latest flash, this is a good alternative.
You can't drink all day if you don't start in the morning.