[Galaxy S I9000 Android Development] Chainfire:
This rooted kernel is for the "rooting beginners" and those who want to keep as close to stock as possible. CF-Root takes the kernel from an original Samsung firmware, and just adds root, busybox, and (unprotected recovery and CWM compatibility) OR (CWM3)

If you are looking for highly optimized kernels or kernels that perform specific functions, look elsewhere. All CF-Root's are based on original Samsung kernels, they are NOT recompiled, and thus ensure maximum compatibility.

THIS IS NOT A ROM - it is only a kernel. You need to have a firmware already on your device. You do NOT need to wipe anything for this patch. You DO need to read the instructions.

MAKE SURE YOUR PHONE CAN ENTER DOWNLOAD MODE USING THE KEYCOMBINATION WHILE BOOTING BEFORE FLASHING CF-ROOT (or anything, really)

Donate

There have now been over 200.000 downloads of CF-Root for various devices, and many more if you include ROMs, kernels, etc that use it. Don't be a leech, buy me a beer (and use the "Thanks" button!)

Features

- The kernel is fully stock and taken from the original firmware, with just the following added:

- Root

- Superuser 2.3.6.1

FROYO ( CF-Root < 2.4 versions )

---- Busybox 1.15.3 or 1.17.1 (if not mentioned in the filename it is 1.15.3)

---- "2e" recovery (can flash unsigned update.zip's)

---- Integrated fix for ClockworkMod's nandroid (2.5.0.4+)

GINGERBREAD ( CF-Root >= 2.4 versions, JVK and newer )

---- Busybox v1.16.2androidminimal (from CWM)

---- Integrated CWM 3.0.0.5 / RFS

CF-Root v4.3 (JVT and newer)

--- Superuser updated to v3

--- Kernel is now in "insecure" mode (rooted ADB shell)

CF-Root v4.4 (JW4 and newer)

--- SuperSU

--- ro.secure=1, patched adbd to act as if ro.secure=0

Instructions (short)

- Flash CF-Root-xxx-vX.X.tar (from the attached zip) as PDA in ODIN, without repartition. Done.

Instructions (long)

- Follow these instructions to the letter. Do not touch any buttons or checkboxes that are not listed below to touch!

- Unzip the attached CF-Root-xxx-vX.X.zip

- (USB) Disconnect your phone from your computer

- Start ODIN

- Click the PDA button, and select CF-Root-xxx-vX.X.tar

- Put your phone in download mode

- (USB) Connect the phone to your computer

- Make sure repartition is NOT checked

- Click the START button

- Wait for the phone to reboot

- Done (if it took you more than 30 seconds, you need practise!)

Instructions (alternative if you are already running CF-Root 2.5 or newer)

- Copy the zip file to your SD card

- Stop sharing SD card with computer over USB, unplug the cable, etc

- Applications -> CWM -> Flash kernel. Select the ZIP file on your SD card.

- Done

Other kernels

Replacing CF-Root with other kernels (speedmod, voodoo, etc) and vice-versa sometimes works, sometimes it doesn't. I don't have a list.

When going from CF-Root to another kernel, root will usually stay, while 2e recovery will be lost (unless the other kernel also includes it), but there should not be issues.

CF-Root is made to be applied on a stock kernel. Going from a lagfixed kernel to CF-Root usually does not work. Unlagfix first.

Voodoo

If you are running the latest Voodoo, you probably do not need CF-Root at all. Voodoo has the basic root features in place, but not the applications. Voodoo does not come with 2e recovery, but it does come with CWM, so there is no need for 2e on Voodoo. To get Superuser and Busybox on Voodoo, simply open Market and search, download, and install them ! Voila !

ClockworkMod on FROYO ( CF-Root versions < 2.4 )

CF-Root is ClockworkMod compatible, it does not include CWM itself. It uses 2e recovery, which means it can flash unsigned update.zip's, like CWM.

To use CWM, either place the update.zip in the correct location ( /sdcard ), or install it through the ROM Manager application.

When you boot into recovery, you will get the 2e recovery, even if CWM is installed. It does not boot directly into CWM (though it may do so when you boot into recovery from the ROM Manager application). Select "flash update.zip" in recovery to start CWM.

Important note:

The very first time you do this on a ROM, it will usually not work. The phone will reboot normally after you flashed the update.zip. You need to reboot into recovery a second time and flash update.zip again. Then you will be launched into CWM. After this, it will work the first time you select it.

ClockworkMod on GINGERBREAD ( CF-Root versions >= 2.4, excluding JV1 on which CWM is broken )

CF-Root includes a special version of CWM3, modified to work with RFS. CWM3 by default does not support RFS, koush' versions are all based on ext4. The RFS compatibility is done with heavy scripting, the same method used on CF-Root for Galaxy Tab. For SGS CWM3 is also recompiled from source with some slight modifications to handle key input correctly.

CF-Root/CWM3 is NOT compatible with ROM Manager! Manage/perform your backup/restores from CWM directly.

- Booting into recovery will immediately give you CWM. The standard recovery is completely gone.

- A "CWM" icon is added to your applications, which will reboot your device into recovery mode (CWM).

- ADB is functional in recovery, however it may take up to a minute for it to start up after booting into recovery.

- When connected to ADB in recovery, you need to use "rootsh" command to get root, instead of "su". This will not prompt you, it will just give you root. Obviously the "rootsh" command does not work when booted normally.

- Version jumped from 1.3 to 2.4 to keep the cross-device CF-Root versioning in-sync (CF-Root is also available for Galaxy Tab).

- If you wonder where your bootup/shutdown sounds have gone, CF-Root probably removed them to make sure it has enough space available.

- ( CF-Root versions < 2.6 ) Make sure to boot up your device fully at least once before flashing CF-Root. This is because the device may have some code it needs to run at first boot. CWM disables this code.

CWM Manager on GINGERBREAD ( CF-Root versions >= 2.5 )

Because of incompatibility with ROM Manager, I wrote and included "CWM Manager". This is a new app (as of March 30, 2011) and beta. You can find it under Applications -> CWM. It is much faster to use than manually booting into CWM and selecting these options.

Features:

- Boot to CWM

- Backup firmware

- Restore backups

- Delete backups

- Install APKs ( CF-Root versions >= 2.8 )

- Flash CWM3 update.zip's

- Flash kernels (zImage, zImage in TAR, zImage in ZIP, zImage in TAR in ZIP)

Note:

If you flash a different kernel, CWM Manager may remain installed. However, functions may not work, because they need kernel compatibility ! At this version of CWM Manager this does not produce errors, it just doesn't do what you expect it to :)

Tweak Manager on GINGERBREAD ( CF-Root versions >= 2.8 )

CF-Root includes a number of tweaks that are applied on startup. From CF-Root versions 2.8 and up a "Tweaks" application is included you can use to select which tweaks to apply.

Ext4 Manager on GINGERBREAD ( CF-Root versions >= 2.8 )

CF-Root supports ext4 mounts for the main mount points. Converting between rfs and ext4 however requires a secondary external package (which you can find in the download area a great many posts below this one), because it is all too large to fit inside the kernel. Download the APK from below, put it on your sd card, start CWM Manager, select "Install APK", find the APK and tap to install. Now you can use the "ext4" app to convert between filesystems, manually check the filesystem, etc.

Obviously you should revert back to rfs before flashing a new stock ROM. A lot of custom ROMs support ext4 as well, but it is still advised to revert to rfs before installing them.

Please note that when first using the tool to convert, you will probably notice /system is not converted. If this happens, it is because /system does not have enough free space for the extra space overhead of ext4. You will need to free up some space on /system before the conversion will succeed.

Features:

- Show current filesystem status

- Convert between rfs <=> ext4 and back

- Manual fsck

- Selects either internal or external sdcard for temporary storage, depending on which has the most space

- Automatically reverts on conversion failure

- If it tells you to PANIC !, please do so

Custom boot / init scripts on GINGERBREAD ( CF-Root versions >= 2.8 )

CF-Root will execute the following scripts if present, in the order listed:

- /system/etc/init.d/* (there can be many files here, no extensions! use #!)

- /system/bin/customboot.sh (busybox sh)

- /system/xbin/customboot.sh (busybox sh)

- /data/local/customboot.sh (busybox sh)

Please make sure you chown / chmod the scripts correctly so they can be executed.

Custom boot animations and binaries on GINGERBREAD ( CF-Root versions >= 2.9, broken in 2.8 ! )

CF-Root also supports custom boot animations:

- /system/media/bootanimation.zip

- /data/local/bootanimation.zip

CF-Root v3.0 and up also support:

- /data/local/bootanimation.bin

Installing busybox over the included version on GINGERBREAD ( CF-Root versions >= 3.0 )

It is possible to install a custom busybox over CF-Root v3.0 and newer. However, this is not without risk. CF-Root makes heavy use of scripting, and many CF-Root scripts rely on the internal busybox version. If you do install a seperate busybox version (always use "stericson" installer!), install it to /system/

x

bin. Installing it to /system/bin will mess things up for sure. Even if you do that part right, it may still break CF-Root, so make sure to make a backup before trying.

Notes

- (FROYO) ADB in recovery is flaky. Sometimes it works, sometimes it doesn't. If you go into ClockworkMod it usually works, though.

- (FROYO) An older version of BusyBox is used (in some versions) because the newer versions drive me absolutely crazy with throwing color codes into the shell while it isn't supported.

How ?

I wrote my own toolchain to ease patching of initramfs, and that is what all this is based on. Took me a few days to get it to this state. If this works right, however, next time it will probably take me a few hours tops :)

Help! I don't know which file to pick! The filenames confuse me!

First thing: don't panic! It's all rather easy, and you won't easily do something bad! I am personally attentive to use the exact same version as the ROM I am running, but it's not that important.

First, go to Settings -> About phone -> Build number. It should say something like FROYO.xxJPy. It's primarily the JPy that we are interested in. Try to match that with a download link available in this (and the next few) posts. Some of the downloads dont just have JPy file name format, but are called xx_xxx_JPy.

Let me explain that. Samsung isn't always very precise in naming/marking their different (leaked) firmwares. CF-Root's are modified kernels, the filenames explain in more detail which exact firmware ROM the base kernel was taken from, for those experts who understand.

If you are not one of those people, go back to the JPy thing. The "y" in JPy is 0-9, A-Z. If they run out of numbers, they use letters. So A would be 10 (9 + 1), while Z would be 35 (9 + 26). Find the one that is closest to yours, if yours is not present, and flash that one.

The truth is, these kernels, they don't differ all that much. It's quite likely that the very latest version (at time of writing: JPY) will work perfectly fine on your ROM. There are some small differences, but using a different version is unlikely to cause serious issues. The closer the versions are, the less likely there are to be issues, BUT it is still quite possible that the latest version will work better for you than the matching version (or not!).

If you are just installing CF-Root to flash a custom ROM like Darky, make sure you have ROM Manager already installed, ClockworkMod flashed, then simply install the latest CF-Root, reboot once normally, then reboot in recovery and run the Darky update.zip. In this case it does NOT need to be a near match at all!

Download

LOOK WELL AT THE FILENAMES, MAKE SURE YOU ARE GETTING THE RIGHT VERSION !

DOWNLOADS CONTINUED IN NEXT POSTS !

CF-Root-JPH-v1.0.zip

CF-Root-JPH-v1.1.zip

CF-Root-JPK-v1.1.zip

CF-Root-JPM-v1.2-Busybox-1.15.3.zip

CF-Root-JPM-v1.2-Busybox-1.17.1.zip

CF-Root-JP6-v1.2-Busybox-1.15.3.zip

CF-Root-JP6-v1.2-Busybox-1.17.1.zip