The definitive guide on hacking the Nexus 4, part 4: How to install a custom kernel

space3

The definitive guide on hacking the Nexus 4, part 4
This is part 4 of an 8part series of articles on the Nexus 4. This guide assumes that you have already successfully installed the ADB drivers for the Nexus 4 (part 1), and that you have successfully unlocked the bootloader, rooted and installed ClockworkMod (part 2) and installed a custom ROM (part 3). This guide will describe how to install a custom Kernel.

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.

“Kernel is like the Engine, Electrical system and the Transmission to a car. The Library, Framework and the Apps [AKA ROM] are the body frame and the rest of the Car.” – Faux123

It’s not that important to understand what a kernel is. It’s sufficient to know that the kernel is the brain inside Android. If you’d like to know more about Android kernels, read this or this.

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.

Kernel Manager Pro
kernel manager kernel manager2

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.

Faux123
faux2 faux1

franco.Kernel updater
franco2 franco1

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.

franco.Kernel updater
Updates: Frequent
Builds: Stable/Test
Features: 4.2.2, Auto-flash, Detailed Changelogs, Backup/Restore, Governor Control, Adjust Min/Max CPU, Power modes, Vibration Strength, Voltage Control, Change IO Scheduler, CPU’s Online/Offline – Live Feed, RGB/Gamma Control interface, Full & deep IO scheduler tuning, Cores Management.

Faux123 Kernel Enhancement Pro
Updates: Frequent
Builds: Stable/Beta
Features: 4.2.2, Displays CPU/GPU Frequencies in Realtime, Adjust Governors, CPU Min/Max Frequencies, Voltage Control, GPU/CPU Overclocking, Adjust I/O, Vibration Strength Control, Sweep2wake Control, RGB/Gamma Control, OTA Updates.

How to install Franco’s kernel

1) Purchase and install the franco.Kernel updater app ($4.99) from the Google Play store.

Screenshot_2013-02-24-03-06-23

2) You may see a request like below where Franco kernel will request root privileges. Click “Allow”. 

Screenshot_2013-02-24-03-07-06

3) Click on “Franco.Kernel updater”

Screenshot_2013-02-24-03-07-18

4) Click on “Download latest nightly kernel” (it’ll be a number higher than r90)

Screenshot_2013-02-24-03-07-23

5) Click “Auto-flash”

Screenshot_2013-02-24-03-07-30

6) The app should start downloading the kernel.

Screenshot_2013-02-24-03-09-40

7) Once you see the screen below, click on “Yes – BRING IT ON!” and your phone will reboot and load the new kernel.

Screenshot_2013-02-24-03-11-33

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.

Screenshot_2013-02-24-03-12-36

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.

  • thedonj77

    Will the above process work for any kernel? Also when do I flash kernel, after my ROM and gapps are downloaded I assume?

    • Hippowise

      The process is pretty much the same with all ROMs (for all of the ROMs that I’ve ever seen). However, if you would like to be certain, read the ROM developer’s installation instructions. If the developer mentions that users should flash the zip file from recovery then the process is the same as I describe. Most people flash the kernel and gapps after flashing the ROM.Thanks

  • thedonj77

    No, as always, Thank you.

  • Felipe Cebada

    Hello, I have two questions:
    1.- I can install Franco Kernel even if I am using stock ROM (device rooted)?
    2.- If I have flashed the baseband and LTE is working in 4.2.2, by installing the Franco Kernel it will still working?
    Thanks in advance!

    • Felipe Cebada

      Ooops, I´ve seen that my first question is “one of the worse” that we can ask to Francisco Franco. Fortunately I am not asking it in that thread! Forget about it, jaja. I am still having the doubt of question 2 though.

    • Hippowise

      1) Yes. Custom kernels can be flashed on the stock ROM. You don’t need to use a custom ROM to use a custom Kernel.
      2) Yes. Installing a custom kernel will have no impact on LTE. We flash the Franco kernel every other day (whenever there is a new release).

      It’s no problem! If you have any other questions, please let us know. Thanks!

      • Felipe Cebada

        Hello!. Another question: once the Franco Kernel has been installed, the OTA updates of new Android versions will cease? Or should I expect to receive them anyway?. Thanks again!

        • Hippowise

          Hi Felipe, once you install a custom kernel, you won’t be able to install OTA updates. You may still receive notifications that an update is available, but you won’t be able to install it. That’s one reason, why I use a custom ROM, such as cyanogenmod. I get the android updates straight from cyanogenmod. For example, I was running cyanogenmod that was using Android 4.2.1 and Google released Android 4.2.2. About a week later, I receive a notification that I can update cyanogenmod. That latest update integrated Android 4.2.2. in cyanogenmod, so I don’t really miss OTA updates from google.

          • Felipe Cebada

            Thank you! I understand now why is convenient to install a custom ROM when also install custom kernel.

  • http://www.facebook.com/josef.izchaki Josef Izchaki

    What can i say? you are God sent!

  • http://twitter.com/thelastjess Jess Aguilera

    I’m very new to rooting I’ve had my N4 for 3 weeks now and I really want to root it. This is my first smartphone. So for this example the Franco Kernel is an app file? For some reason I thought I had to download a zip file and install a few things after I rooted the phone. Forgive my ignorance.

    • Hippowise

      Kernels typically come in a zip file that you can install from a custom recovery. If you buy the Franco app that I describe above, the android app will it install the franco kernel from android for you (so you don’t need to go into custom recovery). You can do it both ways.

      • http://twitter.com/thelastjess Jess Aguilera

        Oh I see, so the same goes with Faux123 Kernel Enhancement Pro app right?

        • Hippowise

          That’s right. I have both apps and switch between the kernels :)
          If you go from Franco kernel to faux kernel, make sure to flash the cyanogenmod kernel first or you may get stuck in a boot loop. Faux gives that warning on its instructions page as well. Good luck

          • http://twitter.com/thelastjess Jess Aguilera

            Awesome! I don’t have a kernel installed yet but I will be installing Faux123. If this is my first kernel do I still need to flash the cyanogenmod?

          • Hippowise

            I imagine that faux123 can be installed on stock rom, but you should check first to make sure. I’ve only ever tested faux123 on a custom rom, such as cyanogenmod, aokp, paranoid android, pacman rom.

          • http://twitter.com/thelastjess Jess Aguilera

            Cool I’ll look into it. Thanks for your help, I really appreciate it!!

  • that guy from there

    this worked on my sgh-t989D I tryed at my own risk and it workd