Thursday, July 7, 2011

Some of my current research on Android forensics and security requires the loading of custom kernel modules. In my previous post I detailed the steps required to compile and load custom modules on a rooted phone. I recently updated my rooted Evo to Android 2.3.3 Gingerbread and was frustrated to see that HTC has yet to release the updated kernel source code.

Using an adb shell I can see that the phone is running linux kernel 2.6.35.10.

Luckily, HTC has released the Gingerbread kernel source for another phone, the Desire HD, which runs the same kernel version. Assuming that the the kernels from the two phones would be very similar, I tried my hand at compiling the module for my Evo with the Desire HD source. It worked!

To compile a kernel module for the Evo with the Desire HD kernel source requires a few extra steps:

Modify Makefile at the root of the source. Change line 4 to read: EXTRAVERSION = .10-gc0a661b

Follow the steps outlined in my previous post to export the config from the Evo, prepare the kernel sources, and compile the custom module

These steps worked for my phone and my module, but your mileage may vary. It is unlikely that the kernels running on the two phones are identical, but hopefully the sources are similar enough to allow the functionality of your custom modules to work. Of course HTC will eventually release the official kernel sources for the Evo 4G, but it's anyone's guess when that will be.

UPDATE (8/9/11):// HTC has released the EVO 2.3.3 GB Kernel sources. See this post for details.

About Me

Joe is the Co-Founder of 504ENSICS Labs, a privately-owned firm that specializes in cutting edge research and development of tools and techniques for digital forensics and computer security. In order to keep current, 504ENSICS Labs also provides digital forensics, network, and application security services and offers training on the same