[Galaxy S II Original Android Development] Chainfire:
THIS THREAD HAS BEEN SUPERCEDED BY THE CF-ROOT THREAD: http://xdaforums.com/showthread.php?t=1103399

.

.

.

.

.

.

Here it is people, root for the I9100 !

I set out to make a "CF-Root" kernel for the SGS2 - a hacked Samsung kernel including Superuser, busybox, custom recovery, etc) - like I have for the SGS and SGT, but due to not having a device to test on, this is proving too difficult to do right now, it will have to wait. However, what I can give you is an "insecure" modded kernel. This is a kernel that does NOT include the tools you need for Superuser, but it DOES give you root shell access, so you can install these manually.

So what about GingerBreak? Isn't that supposed to be able to root the SGS2? No. GingerBreak was able to root a number of engineering samples of the SGS2, but it does NOT work on retail devices.

Following is a guide on how to perform the root. It is rather easy if you know the drill from other Galaxy devices, but if you are a complete beginner with Samsung phones or Android in general, please read very closely! Try to remember what you do, as likely in the future you'll be using ODIN more often, to flash custom kernels, custom/leaked firmwares, etc.

BEFORE DOING ANYTHING, PLEASE NOTE YOUR ORIGINAL KERNEL VERSION IN Settings -> About !

Quick guide (for experienced users)

- Reboot into download mode

- Using the attached Odin version, flash the attached XWKDD kernel as PDA. Do not use the PIT, do not have any options checked except for "Auto reboot" and "F. Reset Time"

- Wait for the device to reboot

- Use the "adb root" command to restart ADB in root mode, followed by "adb shell" to get a rooted shell; then you can manually push Superuser.apk / su, busybox, OR use SuperOneClick to finish the job for you.

Long guide (for beginners)

- Download the attached ODIN file and extract the .zip file

- Download the attached XWKDD, but do NOT extract the .tar file

- Download and extract SuperOneClick (Some say you should not be using the very latest version 1.9, but 1.5 or so)

- If you do not have Samsung's KIES 2.0 installed, download and install it. You need it to install the correct USB drivers, so the programs can communicate with the device. Reboot your computer after installation of KIES.

- Make sure your device is in USB debugging mode: Settings -> Applications -> Development -> USB debugging

- Reboot your device into download mode: Turn the device off, then power it on again by pressing and holding VolumeDown + Home + Power simultaneously. You will know when you are in download mode, it is really obvious :)

- Start ODIN

- Connect the device to your computer using USB

- Wait a few seconds, the ODIN screen should show you that a device is now connected

- Make sure that in ODIN NOTHING is checked, except the "Auto reboot" and "F. Reset Time" checkboxes. Press the "PDA" button, and select the "XWKDD_insecure.tar" file.

- Press "Start". ODIN you should now be flashing the kernel, and the device should reboot.

- Wait until the device is rebooted, and while still being connected over USB, start SuperOneClick, and press ROOT.

- Reboot the device

- Done !

Please post corrections to this guide if you see I made a mistake in it. Remember, I don't actually have an SGS2 so it's hard for me to check :)

Enjoy!

EDIT: Regarding new firmware versions

Yes, I know there are different firmware versions out there, and currently I only supply a root for KDD. I don't have a device yet, patching a kernel this way takes many hours, make a test, send to somebody, see if it works, wait for reply, re-do from start, etc. It would take me 3 minutes if I had a device. Due to this, I am not making "insecure" versions of any other kernel until I have a device, which I expect will be around the 23rd. So stop asking.

However, what you can do is this:

- Note in settings -> about which kernel version you have

- Flash the KDD kernel, and install root

- Reboot, assure yourself you have root

- Flash the original kernel back (see next post)

- Reboot, and you're back on the right kernel, but still have root :)