The definitive guide on hacking the Nexus 4, part 4: How to install a custom kernel
The definitive guide on hacking the Nexus 4, part 4
Legal disclaimer: We are not responsible for any damage or loss to your device or computer system. Therefore, should you decide to follow these steps, you do so at your own risk and peril and agree to hold us harmless from any damage or loss you may experience. Should you disagree with the foregoing, please do not read any further.
What is a kernel?
You may not hear this term that often, but all operating systems have a kernel. Windows has one. OS X has one. QNX has one. Android has one. A kernel is the software abstraction layer that acts as a bridge between the device’s hardware and its applications, as shown below. Nearly all actions you take with your phone interacts with the kernel at some level. The Android kernel is based off of Linux’s kernel, but they are quite different at this point. You don’t really see the kernel or touch it, but it’s always there working in the background. When you play with your phone, you interact with the graphical user interface (which does nothing by itself without the kernel). As soon as you touch the screen, make a call, run an application, the application makes a request to the kernel which allocates memory, cpu resources, interacts with hardware through drivers, etc.
This is how a popular kernel developer explains what is a kernel.
Why do you want to install a custom kernel?
Kernels control everything from the screen brightness, battery management, CPU management, therefore some kernels are optimized for increased performance (by overclocking the CPU or GPU) while others are optimized for increased battery life. You can underclock your CPU in order to get a few days battery life. The graphical user interface may be more sluggish, but you can tweak until the settings are just the way that you like it. We’ll discuss how to optimize your kernel for extended battery life in part 8.
How do you install a custom kernel?
There are various ways to install a custom kernel. The “classic” way is to download the kernel (usually in in a zip file) and to flash it in ClockworkMod recovery (the same way that you would install a custom ROM–we’re not going to do this below, but feel free). This is how you would do it. Once in recovery, select “wipe cache partition“, select “Yes”, then select “advanced”, then select “Wipe Dalvik Cache“, then select “Yes” again. Once finished, click the back button to go back to the main recovery menu. On that menu, select “install zip From sdcard”, then select “choose zip from sdcard”, then go to /sdcard/ and select the downloaded zip file and let it run its script. Once the script is done, select “reboot system now”.
Alternatively, you can install an app called Kernel Manager Pro ($3.92) which allows you to install various different different kernels specific for you phone right in Android. We’ve never tried this app, but a quick glance at the reviews tells us that the app has some stability problems. Therefore, it’s hard to recommend at this time, but feel free to give it a try.
There are two other kernel apps that we can recommend for Nexus 4 users. The first is called Faux123 Kernel Enhancement Pro ($4.97) and the second is called franco.Kernel updater ($4.99)–this is the one that we’ll be using below. Each of these apps is specifically designed to work with the Nexus 4 (along with a few other devices) and they currently have an average rating of 4.8 on 5.0–which is outstanding. It may seem like a lot of money for such an app, but we think that the sheer convenience of being able to update your kernel from Android is worth the cost.
Franco kernel vs Faux123 kernel?
Which kernel to choose? That’s a tough question to answer. There are many different kernels for the Nexus 4. Therefore, it’s really up to individual preference. If you ask this question in an Android forum, many will tell you “try the different kernels and decide for yourself”. Such a response is not very useful or friendly, but it’s probably the correct answer. Nevertheless, even if there are a lot of kernels out there, from our observations, Franco and Faux123 are the two most popular kernels for the Nexus 4. Therefore, we’ll limit our comparison to these two choices. You can read more about Faux123′s kernel here and about Franco’s kernel here. From what we can tell, if you would like to overclock your phone, go with the Faux123 kernel as you can overclock the CPU up to 1.9GHz (from 1.5GHz). Overclocking is not currently supported by the Franco kernel. The kernels are pretty similar in a lot of respects. You can tune the color gamut for the Nexus 4 in both kernels (therefore, you don’t need to buy an app such as this). We’ll discuss how to make the colors displayed in the Nexus 4 to be more bold–like the LG Optimus G in a future article. Interestingly, according to a small poll, franco kernel received 3x more votes than faux123, so it seems like if Franco is more popular. Also, we’re not that interested in overclocking the CPU (as we’re much more interested in extending battery life) therefore, in our example below, we’ll be showing you how install Franco’s kernel. Below is a brief comparison of both kernels.
Faux123 Kernel Enhancement Pro
How to install Franco’s kernel
1) Purchase and install the franco.Kernel updater app ($4.99) from the Google Play store.
2) You may see a request like below where Franco kernel will request root privileges. Click “Allow”.
3) Click on “Franco.Kernel updater”
4) Click on “Download latest nightly kernel” (it’ll be a number higher than r90)
5) Click “Auto-flash”
6) The app should start downloading the kernel.
7) Once you see the screen below, click on “Yes – BRING IT ON!” and your phone will reboot and load the new kernel.
8) Once your phone has booted, go into “settings”, then “about phone” and you’ll see something like below. It should say x.x.x-franco-Kernel-nightly, etc.
That’s it! Your custom kernel is now installed. We’ll explore more how to tweak the kernel to optimize battery life in part 8. Next up, we’ll discuss how to enable LTE in part 5.