| || |
[KERNEL] [GUIDE] Root Your Stratosphere! :-)
First of all, mad props goes out to jcase, imnuts, and tbh, as well as the #charge irc channel for providing the stock kernel and support needed to get this working! Couldn't do it without you guys!
Okay, first the standard disclaimers: THIS WILL VOID YOUR WARRANTY! We are flashing a MODIFIED stock kernel to get root. (And yes, there is a mechanism Samsung put into it's bootloader to tell if you flashed a custom kernel! It's a tradeoff for openness that I am willing to live with! Also, batteries not included, some assembly required, may make your cat go bald, could pillage your villagers, give you Bieber fever, etc.
Also, this post is for reference or entertainment purposes only. If you decide to use this info to root your phone, and you end up borking it, I'm not responsible. Neither is Android Central, jcase, imnuts, or anyone else but yourself.
This is not for the faint of heart, so if you have questions or need assistance, please feel free to ask in this thread. I had to do a metric crap ton of research just to figure out how to do all this, so I know what its like to have to get your mind rapped around this stuff. (At least you guys don't have to compile the kernel, just flash the one I made. Lucky you! I had to learn how to compile the kernel over the past few days and this was my first attempt. Yay me. ) I also took some non-standard ways to get this on the phone, so please bear with me if I take extra steps that could be streamlined.
Now, without much further ado, here it is:
ROOT YOUR STRATOSPHERE!
Setup: I'm using Windows XP 32-bit, but unlike most devs, I use Heimdall in order to flash firmware to my phone. (Long story short: I've had less issues with using Heimdall than I have with Odin - that, and Odin only works in Windows where as Heimdall works in Windows/Linux/Mac. But, its up to you, feel free to use whatever tool you want as long as you know what you are doing with these files.)
Also, make sure you have adb set up and working. You'll need this to push the actual superuser binaries. Download and more info on adb at Android Developers.
First things first: Let's get your system set up to flash the kernel to the phone.
NOTE: If you have data encryption turned on, its been warned that you might want to turn it off before attempting this. Not sure if this is related to custom kernels or not, but better be safe than sorry. (And I think its off by default, mine wasn't on... so if you didn't turn it on, you should be fine.)
Download Heimdall 1.3.1 and extract the zip contents to a folder. Make sure to install the C++ distributable mentioned in the download section or the tool won't run (Windows only).
Put your phone in download mode. There are many ways to do this, easiest being holding the Vol - key while powering the phone on. It will warn you about flashing custom firmware, yadda yadda. Accept it anyway, then you'll see a green Andy that says "Download Mode Do Not Turn Off Target". Now plug your phone in. (Linux/Mac users can skip the rest of this paragraph. Yay us Windows users.) Set up the drivers from the zagig.exe app in the Drivers folder. The dropdown box will say something like 'Gadget Serial'. Click 'Install Driver'. I can't remember if I had to replug the phone or not, or reboot the machine, but you might want to for good measure if it isn't working.
Next, download the zip attached to this post below and unzip its contents to a working folder. To make things easier, just extract the zip contents to the same directory that heimdall is living in. You should have the following files from the zip:
Now, fire up a command window in this directory. I use the command-line utility in order to push the kernel instead of the GUI, but if you know how to use the GUI, be my guest.
First make sure the device is detected. Type:
If it works, you'll get 'Device detected'. Now you are good to go:
You'll see it say uploading kernel, and a progress bar will appear on the phone. It goes pretty quick. On success, you'll see the phone reboot, and then a new yellow '!' triangle will flash under the SAMSUNG logo on the boot screen. This means the system detected a custom kernel. If you see/hear the boot animation, then you were successful! You are now sporting a working insecure kernel reading for rooting!
heimdall flash --kernel root-zImage
Wait for the phone to boot back up and make sure everything is in working order. Make sure USB Debugging is on. (Settings->Applications->Development)
Now, in the command window, make sure your phone can be seen:
now, remount the file system.
List of devices attached
Push the following files to the phone:
Change the permissions on su and busybox:
F:\Downloads\heimdall-suite-1.3.1-win32>adb push su /system/bin
F:\Downloads\heimdall-suite-1.3.1-win32>adb push busybox /system/bin
F:\Downloads\heimdall-suite-1.3.1-win32>adb push Superuser.apk /system/app
Now, download something from the market that needs root privileges to test. I bought Root Explorer, so I used that to test. I also tried to su from ConnectBot in a local connection and it also worked for me.
F:\Downloads\heimdall-suite-1.3.1-win32>adb shell chmod 4755 /system/bin/su
F:\Downloads\heimdall-suite-1.3.1-win32>adb shell chmod 4755 /system/bin/busybox
If you get the Superuser Request popup, then you are rooted!! Congrats!
If you want to put the stock kernel back on, or just want to have it for safety sake, I attached it in a zip by itself as well. Flash it using the same method listed above. Thanks again goes to jcase and tbh for providing that.
I'll be updating this post with images and pictures, or cleaning parts up as I get time and some feedback.
LET THE DEVELOPING BEGIN!!
Stratosphere Root.zip: md5: ead3a6a2b36a25a32692dec71e6bfc7f
Stock Kernel.zip: md5: 97d8df7945b5035d480547424cbcaa35