How to Get Better Battery Life and
Performance on Your Android Phone with a
New Kernel
- Lifehacker article
You may have heard about how flashing a new ROM can improve your Android experience,
but flashing a new kernel is one of the best ways to improve your phone's performance,
battery life, and even add some saucy new features. Whether you know anything about either,
here's what you need to know to make it happen.
What Is a Kernel?
A kernel in an operating system—in this case Android—is the component responsible for
helping your applications communicate with your hardware. It manages the system resources,
communicates with external devices when needed, and so on. Android uses a variation of the
Linux kernel. A kernel is not the same as a ROM, even though you install them in mostly the
same way. A ROM is a bit more all-encompassing. It's the operating system you use on your
phone, the software your phone uses to get things done—the kernel is the bridge between that
ROM and your hardware. All ROMs come with a kernel installed, but you can install a third-
party one if you like—and that's what this post is about.
What a New Kernel Can Do For Your Phone
Flashing kernels isn't quite as talked about as flashing ROMs, but it can do a ton for your
phone, namely in the way of battery life and performance—though it can also add extra
features to your device, too. Here are some things to look for when choosing a new kernel.
Better Performance and Battery Life
This is the big change a new kernel can bring to your device. I'd separate these into two
categories, but they're so intertwined that you really need to consider both when picking a
kernel. There are a bunch of different kernel features that contribute to this:
Clock Speeds: In a very basic sense, higher clock speeds will improve performance on your
phone. Flashing a new kernel allows you to overclock your phone, using higher clock speeds
than the manufacturer intended. They can also let you reach lower clock speeds, so you can
underclock your phone when you aren't using it, thus saving battery life. Your kernel will
only give you the option to do so, however; if you want to overclock, you'll have to flash the
kernel in question and then use something like SetCPU or CPU Tuner to tweak the clock
speed.
Voltage: Higher clock speeds use up more battery on your phone because they require more
voltage. However, some ROMs come with lower voltage limits, which means your phone
will run just as fast, but use up less battery. Some will even overclock and undervolt your
phone, though all of this comes at the expense of stability—if you notice that your phone
goes into a boot loop, or reboots at random times, you'll want to either lower your clock
speed or upgrade to a kernel with a higher voltage. Some ROMS have further sub-categories
in this section, like Hybrid Adaptive Voltage Scaling (HAVS), which can be better for battery
life (at the risk of stability) and Static Voltage Scaling (SVS), which keeps your phone at a
steady voltage.
CPU Governors: Different kernels can support different CPU Governers, which manage the
way your phone ramps up or down its clock speeds as you use it. There are a few different
kinds you'll see, including Conservative, which focuses on battery life by ramping up your
CPU very gradually when needed; Interactive, which focuses more on performance and
smoothness by scaling up the CPU faster; InteractiveX, which is like Interactive but scales
the CPU down when your screen is off (for better battery life); and Smartass, which is similar
to Conservative but takes more factors into account when ramping up the CPU.
Task Scheduler: Kernels come with two different types of task schedulers: the Completely
Fair Scheduler (CFS) and the Brain F**k Scheduler (BFS). CFS kernels are designed for
regular phone use, like texting, web browsing, and otherwise multitasking apps on your
phone. Most stock kernels are CFS kernels. BFS kernels focus more on whatever app is in the
foreground, which is great for things like games but can be a bit laggier and a bit less stable.
These are the biggest features, but kernel developers add in all kinds of other tweaks to their
kernels when possible, whether its introducing a more efficient file system, making the RAM
more efficient, and so on. Again, they should list the tweaks in their description, so read up
on the kernels for your specific device to learn more. I'd also recommend checking out XDA
user mroneeyedboh's HTC Evo 4G kernel starter guide, from which much of this information
comes.
Extra Features
Kernels can also add full features to your phone, or fix other issues that the manufacturer
hasn't attended to yet. For example, while a lot of phones support Wi-Fi tethering out of the
box, some—like the Motorola Droid—don't. If you find your phone isn't letting you tether
using apps like Wi-Fi Tether, you might need to flash a new kernel that supports Wi-Fi
tethering on your device. Kernels for Samsung phones can add support for a feature called
Backlight Notification (BLN), which, coupled with an app, can turn your phone's buttons into
notification lights.
Keep an eye out for features you don't want, too. For example, some HTC kernels come with
a feature called Superior Battery Charging, or SBC, that can overcharge your battery for
better life—but is likely to shorten your battery's life at best, or make it unstable at worst. I'd
avoid kernels with this feature. You should also watch out for kernels that disable certain
features of your phone—since some features are manufacturer-specific, you won't be able to
get them in other ROMs or kernels. A good example of this is HDMI support on the EVO
4G.
Again, just make sure you research all the kernels available for your device, and know what
you're getting yourself into before you flash. Most phones should have a large forum thread
somewhere on XDA or RootzWiki that lists all the kernels available for their device. Make
sure you choose a compatible one, too—the version of Android you're running determines
what kernels you can use, so make sure you don't flash a Sense kernel on an AOSP ROM
(like CyanogenMod), and make sure you don't flash a Froyo kernel on a Gingerbread
phone—they won't play nicely together.
How to Flash a New Kernel
Once you've found a kernel you want to flash, download it to your device. It should be in ZIP
format. Flashing a kernel is almost exactly like flashing a new ROM. You'll need to flash a
new recovery to your phone, like ClockworkMod, which you can flash with ROM Manager.
Put the ZIP file on your phone's SD card, then start up ROM Manager and go to "Install
ROM from SD Card". Choose the kernel's ZIP file and continue. Note, however, that some
kernels require that you flash them through your recovery mode instead of with ROM
Manager—so once again, do your due diligence on its home page before you go a-flashin'.
The main difference between flashing a ROM and flashing a kernel is that you do not want to
wipe your data. Wipe the Dalvik Cache only, and back up your ROM if desired (I highly
recommend doing so, in case something goes wrong). Other than that, you should be golden.
If you haven't flashed a ROM before, I recommend reading up on that first—but if you're
familiar with that process, flashing a kernel shouldn't be a big shock to the system.
Flashing a new kernel can sound pretty dramatic, but it's actually quite simple—and it's very
easy to try out a bunch of different kernels before settling on one. Whether your preference is
battery life, performance, or extra features like color tinting, you have a whole lot of choices
to further tweak your Android experience. Got any other kernel-related wisdom to share, or
have a favorite kernel for your device that you can't live without? Let's talk about it in the
comments.
Title image remixed from an original by Ildi Papp.