Newbie Guide to Rooting the Fascinate

mrdroid

Member
Joined
Dec 16, 2009
Messages
511
Reaction score
0
Location
Pittsburgh, PA
WARNING: DO NOT delete files from /system if you don't know what you're doing and you know how to recover your Fascinate.

Okay... so this guide is going to go through the same steps that are already out there but I'm going to put everything you need into a single guide so you don't have to hunt everywhere for them.... this is a Windows guide.

What you're going to need:

1. Setup ADB
2. Install drivers
3. Setup your Fascinate
4. Root your Fascinate

These links are just the next 3 posts...

As always, perform these steps at your own risk. Neither myself, FascinateForums.com or DroidForums.com can any responsibility for what may happen to your phone by following this guide.

Credit goes to Dirrk at xda for posting the guide I based this off of.
http://forum.xda-developers.com/showthread.php?t=779238
Additional credit in his original thread.
 
OP
mrdroid

mrdroid

Member
Joined
Dec 16, 2009
Messages
511
Reaction score
0
Location
Pittsburgh, PA
Setup ADB

First download the sdk zip file from here: Android SDK
The file you want to download will be named 'android-sdk-windows.zip'.

Extract the zip file to your C:\ drive.
You should end up with a folder named 'android-sdk-windows'.
Open that folder and open the 'tools' folder inside of 'android-sdk-windows'. You should now be in:
C:\android-sdk-windows\tools
This is where the adb executable is located.

At this point ADB is installed and ready to go but won't be easy to use. To make it easy to use copy; we'll copy the path into the environment variables.

Find your My Computer or Computer icon and right-click and go to Properties.
In Windows 7 you want to click the 'Advanced system settings' on the left under 'Control Panel Home'.
In Windows XP you want to click on the 'Advanced' tab in the 'System Properties' window.

Click the 'Environment Variables' button.
In the bottom section named 'System Variables' scroll down until you find the Variable named 'Path'. Highlight Path and click 'Edit...'.

The Variable value: field should be highlighted. Click in the box to un-highlight the text and go to the end of that line.
Paste the following text at the end of the line. Make sure there are no spaces.

If you followed the steps above you can copy the text below:
Code:
;C:\android-sdk-windows\tools\
I added a semi-colon at the beginning of the line and a backslash at the end of the line. These are needed for the environment variables.

The entire Variable value: will look something like this. No spaces!
Code:
c:\Program Files (x86)\NVIDIA  Corporation\PhysX\Common;%SystemRoot%\system32;%Sy  stemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\  System32\WindowsPowerShell\v1.0\;C:\android-sdk-windows\tools\
Click Ok on all the open windows.

Now go to Start > Run (XP) or Start > Search (W7) and type cmd.exe and hit enter.

Type adb

You should get a bunch of command options. If your screen looks like the following then you are good to go.
Code:
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Matt>adb
Android Debug Bridge version 1.0.26

 -d                            - directs command to the only connected USB devic
e
                                 returns an error if more than one USB device is
 present.
 -e                            - directs command to the only running emulator.
                                 returns an error if more than one emulator is r
unning.
 -s <serial number>            - directs command to the USB device or emulator w
ith
                                 the given serial number. Overrides ANDROID_SERI
AL
                                 environment variable.
 -p <product name or path>     - simple product name like 'sooner', or
                                 a relative/absolute path to a product
                                 out directory like 'out/target/product/sooner'.

                                 If -p is not specified, the ANDROID_PRODUCT_OUT

                                 environment variable is used, which must
                                 be an absolute path.
 devices                       - list all connected devices
 connect <host>[:<port>]       - connect to a device via TCP/IP
                                 Port 5555 is used by default if no port number
is specified.
 disconnect [<host>[:<port>]]  - disconnect from a TCP/IP device.
                                 Port 5555 is used by default if no port number
is specified.
                                 Using this ocmmand with no additional arguments

                                 will disconnect from all connected TCP/IP devic
es.

device commands:
  adb push <local> <remote>    - copy file/dir to device
  adb pull <remote> [<local>]  - copy file/dir from device
  adb sync [ <directory> ]     - copy host->device only if changed
                                 (-l means list but don't copy)
                                 (see 'adb help all')
  adb shell                    - run remote shell interactively
  adb shell <command>          - run remote shell command
  adb emu <command>            - run emulator console command
  adb logcat [ <filter-spec> ] - View device log
  adb forward <local> <remote> - forward socket connections
                                 forward specs are one of:
                                   tcp:<port>
                                   localabstract:<unix domain socket name>
                                   localreserved:<unix domain socket name>
                                   localfilesystem:<unix domain socket name>
                                   dev:<character device name>
                                   jdwp:<process pid> (remote only)
  adb jdwp                     - list PIDs of processes hosting a JDWP transport

  adb install [-l] [-r] [-s] <file> - push this package file to the device and i
nstall it
                                 ('-l' means forward-lock the app)
                                 ('-r' means reinstall the app, keeping its data
)
                                 ('-s' means install on SD card instead of inter
nal storage)
  adb uninstall [-k] <package> - remove this app package from the device
                                 ('-k' means keep the data and cache directories
)
  adb bugreport                - return all information from the device
                                 that should be included in a bug report.

  adb help                     - show this help message
  adb version                  - show version num

DATAOPTS:
 (no option)                   - don't touch the data partition
  -w                           - wipe the data partition
  -d                           - flash the data partition

scripting:
  adb wait-for-device          - block until device is online
  adb start-server             - ensure that there is a server running
  adb kill-server              - kill the server if it is running
  adb get-state                - prints: offline | bootloader | device
  adb get-serialno             - prints: <serial-number>
  adb status-window            - continuously print device status for a specifie
d device
  adb remount                  - remounts the /system partition on the device re
ad-write
  adb reboot [bootloader|recovery] - reboots the device, optionally into the boo
tloader or recovery program
  adb reboot-bootloader        - reboots the device into the bootloader
  adb root                     - restarts the adbd daemon with root permissions
  adb usb                      - restarts the adbd daemon listening on USB
  adb tcpip <port>             - restarts the adbd daemon listening on TCP on th
e specified port
networking:
  adb ppp <tty> [parameters]   - Run PPP over USB.
 Note: you should not automatically start a PPP connection.
 <tty> refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
 [parameters] - Eg. defaultroute debug dump local notty usepeerdns

adb sync notes: adb sync [ <directory> ]
  <localdir> can be interpreted in several ways:

  - If <directory> is not specified, both /system and /data partitions will be u
pdated.

  - If it is "system" or "data", only the corresponding partition
    is updated.

environmental variables:
  ADB_TRACE                    - Print debug information. A comma separated list
 of the following values
                                 1 or all, adb, sockets, packets, rwx, usb, sync
, sysdeps, transport, jdwp
  ANDROID_SERIAL               - The serial number to connect to. -s takes prior
ity over this if given.
  ANDROID_LOG_TAGS             - When used with the logcat option, only these de
bug tags are printed.

C:\Users\Matt>
Additionally here is a video I threw together going through these same steps.

[video=youtube;FAq5clIboEw]http://www.youtube.com/watch?v=FAq5clIboEw[/video]
 
OP
mrdroid

mrdroid

Member
Joined
Dec 16, 2009
Messages
511
Reaction score
0
Location
Pittsburgh, PA
Install Drivers

Download the appropriate driver:

Windows x64

Windows x86

For the x64 version double-click the setup.exe in usb_drivers_GalaxyS_x64\USB Drivers

For the x86 version just double-click the file downloaded.

Just click next throught the install (change the install path if you want).

When the install is finished plug your Fascinate into an available USB port.

It's always best to plug your phone into a port directly connected to your computer's motherboard. To make sure you have done this you can use one of the ports on the back panel of your computer.

After you plug in your phone you should get a message saying the drivers were successfully installed.

I had an issue with the drivers on x86 and you may run into this as well.
If you get a message saying that there was a problem installing the device or the drivers don't worry, ignore the error for now we will fix it in the next section.
 
OP
mrdroid

mrdroid

Member
Joined
Dec 16, 2009
Messages
511
Reaction score
0
Location
Pittsburgh, PA
Setup Your Fascinate and Root Your Fascinate

In order to use ADB commands and properly setup the drivers and utilize all the built in links we need to change/validate 3 settings on the Fascinate.

Go to the Home screen and hit the menu button.
Go to Settings
Go to Applications
Make sure 'Unkown sources' is checked.
Go to Development
Make sure 'USB debugging' is checked.
Make sure 'Allow mock locations' is checked.

You can exit back to the home screen once you've verified those 3 settings are checked.

-Driver issue
If you ran into an issue installing the drivers in the previous step, after you've checked the above 3 settings open a command window.

Go to Start > Run (XP) or Start > Search (W7) and type cmd.exe and hit enter.

At the prompt type:
Code:
adb devices
If you get
Code:
List of devices attached
I500....    device
Then you're good to go.
If nothing is listed under "List of devices attached" you should be able to just unplug the Fascinate, wait about 10 seconds and then plug it back in. You should now get a message saying several drivers/features were installed successfully.

Re-run the "adb devices" and your device should now show up.

----------------------------

Now the fun part....
Ok. First lets gather our files and get organized.

On your Fascinate go to the Android Market and search for Terminal
Install the App named Android Terminal Emulator by Jack Palevich

Back on your PC
Download root.zip
Create a new folder on your C:\ drive named rootfiles
Extract the contents of the root.zip file into C:\rootfiles
Make sure there is no folder inside C:\rootfiles
Inside C:\rootfiles you should see:
Code:
busybox
rageagainstthecage-arm5.bin
su
Superuser.apk
Rooting:

Section 1.
Reboot your phone and give it a couple minutes to load everything up.
Now open a command prompt.
Start > Run (XP) Start > Search (W7) and type cmd.exe
Validate your phone is still connected by typing
Code:
adb devices
You should see your device
Code:
C:\Users\Matt>adb devices
List of devices attached
I500x0xx000x    device
Change your current directory to C:\rootfiles
Code:
cd C:\rootfiles
If you are not currently on your C:\ drive then type
Code:
C:\
cd C:\rootfiles
Type the following commands exactly. If you want to copy and paste then copy each line one at a time and paste each in the command window by right-clicking and clicking paste. Ctrl-V will not work.

Section 2.
Code:
adb push rageagainstthecage-arm5.bin /data/local/tmp/rageagainstthecage-arm5.bin
You should get a response that looks like the following
Code:
146 KB/s (5392 bytes in 0.036s)
Next type
Code:
adb shell
You should now be at a prompt with a $
Now type
Code:
cd /data/local/tmp
chmod 0755 rageagainstthecage-arm5.bin
Section 3.
This step is important. After you type the next command there will be a pause and you will have to wait until you are kicked out of adb shell. It is important you do not touch your phone or type anything in the command window. If you do don't worry, nothing bad will happen you will most likely have to pull your battery and try to run the command again. If your phone doesn't lock up you can probably unplug it and plug it back in and start back at "adb shell"
Code:
./rageagainstthecage-arm5.bin
After you execute that command you should see something like this:
Code:
$ ./rageagainstthecage-arm5.bin
./rageagainstthecage-arm5.bin
[*] 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 2198
[*] Spawning children. Dont type anything and  wait for reset!
[*]
[*] If you like what we are doing you can send us  PayPal money to
[*] [email protected] 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 several seconds the $ prompt will come back

After another 20 seconds or so you will be kicked back to the C:\rootfiles prompt.

Type
Code:
adb shell
You should now be at a # prompt
This mean you have obtained temporary root on the device.

Section 4.
Type
Code:
exit
You should now be at the C:\rootfiles prompt
Type the following commands:
Code:
adb push su /sdcard/su
adb push busybox /sdcard/busybox
adb shell
mount -t rfs -o remount,rw /dev/block/stl9 /system
cd /system/xbin
cat /sdcard/su > ./su
cat /sdcard/busybox > ./busybox
chmod 4755 su
chmod 4755 busybox
exit
You should be back at the C:\rootfiles prompt

Section 5.
Type
Code:
adb install Superuser.apk
Reboot the device and you should now have permanent root.

I should add, on the last step to install Superuser.apk it seems to hang after the install
Code:
C:\rootfiles>adb install Superuser.apk
1305 KB/s (196521 bytes in 0.147s)
        pkg: /data/local/tmp/Superuser.apk
Success
After you see Success you do a Ctrl-C
and then reboot the device.
 
OP
mrdroid

mrdroid

Member
Joined
Dec 16, 2009
Messages
511
Reaction score
0
Location
Pittsburgh, PA
Ok,,, it should be there now... it was too big to attach to the post so I uploaded it to mediafire.
 

roofz

New Member
Joined
Sep 10, 2010
Messages
11
Reaction score
0
Cool, after getting the $, i'm never kicked back to the C:\rootfiles prompt,

I followed it word for word, any suggestions? It's near the last step
 

Steeeler

Member
Joined
Nov 8, 2009
Messages
173
Reaction score
0
Cool, after getting the $, i'm never kicked back to the C:\rootfiles prompt,

I followed it word for word, any suggestions? It's near the last step


Ditto here as well. I am still hanging on the $ right now.
 
OP
mrdroid

mrdroid

Member
Joined
Dec 16, 2009
Messages
511
Reaction score
0
Location
Pittsburgh, PA
Go back to
./rageagainstthecage-arm5.bin
Above that command I describe a couple scenarios. Basically if your phone is locked up you'll need to pull the battery. If not just disconnect the USB cable. Then plug it back in and do a C:\rootfiles>adb devices to make sure you're connected and then try
./rageagainstthecage-arm5.bin
again

Something I might need to add to the guide is doing a fresh reboot right before starting the
./rageagainstthecage-arm5.bin command

I seem to get better results when I tried it that way.
 

ScaryDolphin

New Member
Joined
Sep 10, 2010
Messages
2
Reaction score
0
Excellent guide! made rooting very easy! This is my first android phone, and your guide was the best one I found. Others assume you know quite a bit about rooting, so I found your guide to be very helpful to me as a complete beginner.
 
OP
mrdroid

mrdroid

Member
Joined
Dec 16, 2009
Messages
511
Reaction score
0
Location
Pittsburgh, PA
Excellent guide! made rooting very easy! This is my first android phone, and your guide was the best one I found. Others assume you know quite a bit about rooting, so I found your guide to be very helpful to me as a complete beginner.

We were all there once... I know about a year ago when I got my Droid 1 I was so lost reading all the guides... luckily this forum got me though the chaos! :D
 

ScaryDolphin

New Member
Joined
Sep 10, 2010
Messages
2
Reaction score
0
It hung there without kicking me out of the $ prompt for quite a while too. The guide says 20 seconds, but it took my phone like 5 minutes or so to kick me out of the $. Just wait for it and it should come back.
 

roofz

New Member
Joined
Sep 10, 2010
Messages
11
Reaction score
0
Yeah! Done, and it said success, but i didn't get that blue notification on my phone saying i'm a super user, is my phone rooted?
 
OP
mrdroid

mrdroid

Member
Joined
Dec 16, 2009
Messages
511
Reaction score
0
Location
Pittsburgh, PA
Yeah! Done, and it said success, but i didn't get that blue notification on my phone saying i'm a super user, is my phone rooted?

You should have an app installed called Superuser. The icon is like droid skull and crossbones. If you can launch that without error you should be good.

Also you can download Titanium Backup from the market. It will request Root Access when you run it, and it will also validate Busybox.

It also has an option to fix Busybox so even if you don't use it for backups it's still pretty useful.

You can also open the Terminal and type su.
 
Top