A picture speaks a thousand words.. Hence, summarizing my experience from the previous two days, below is the graphical overview of new Android kernel flashing steps:
Android kernel flashing – graphical overview
Key to the above figure:
- Items in RED : things to be downloaded from the internet.
- Boxes in GREEN : Step#1 of the new kernel install – making flashable kernel zip.
- Box(es) in WHITE : Step#2 of the new kernel install – installing modules.
- Boxes in YELLOW : a step producing multiple things, and used individually.
A post after ages.. and we begin a new journey into the world of (Linux’s cousin) Android kernel hacking.
Presently, have taken baby steps in this field involving:
- building the kernel from source using default defconfig of my device. Thanks to cheatman for the kernel source for my test device.
- Thanks to excellent explanation provided at this xda link, kernel build was almost a cakewalk!
- Kernel build produces a zImage, which is a compressed image of the kernel. Next step involves packaging the kernel into a form that a custom recovery installed in your Android devices can read it (FYI, I am currently using CWM Recovery).
- Kernel packaging involves the following steps:
- Extract ramdisk (or, initramfs on older devices) from an existing boot.img. This can be obtained from freely downloadable flashable kernel zips corresponding to one’s device.
- Use this ramdisk along with the built zImage to create a new boot.img
- Create a zip out of this boot.img and META-INF folder that was obtained from flashable kernel zip in 1).
- The linux tools for performing the above can be obtained from this link.
- Once the zip is ready, copy it to your sdcard, boot to recovery and select option : install from zip and select your flashable kernel file.
Finally, a screenshot from my device 🙂
Screenshot of new kernel install
A major problem am facing presently is that WiFi on this device is not working since the new kernel install. Will try to figure out the issue and post an update soon.