Compiling Android Kernel for Droid Incredible C

This assumes:

  1. You have a Verizon Droid Incredible C
  2. You have the Android NDK, which contains a cross-compiler toolchain, in order to compile the kernel.

  3. You have rooted your phone with unrEVOked, and hence have the ClockworkModRecovery recovery tool installed.

  4. The system you are compiling on is Linux

#Used android NDK cross compilation toolkit to compile.
#You have to export CROSS_COMPILE to be:

export CROSS_COMPILE=/path/to/android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-

cd /path/to/kernel/source

adb pull /proc/config.gz
gunzip config.gz
cp config .config
make oldconfig

#To customize:
make menuconfig

#GCC can compile in parallel on multiprocessor systems, so it works faster.
#The -j12 flag below can be optimized for your system. It is the number of threads to
#compile concurrently on. A good rule of thumb is to use a number that is near
#the number of cores on your machine times two. So if you have a 4 core machine,
#you could use -j8; two threads per core.
#If you leave it as is, it shouldn't hurt anything but the compile process may not
#be optimal.

make -j12 EXTRA_AFLAGS=-mfpu=neon && make EXTRA_AFLAGS=-mfpu=neon modules

mkdir DIST

cd DIST

cp ../arch/arm/boot/zImage .

# oldboot.img contains boot image backed up from clockworkmod recovery
cp /path/to/oldboot.img .

#Extract the ramdisk from the old image:
split_bootimg.pl oldboot.img

#port-blank.zip contains a blank update.zip skeleton to create
#a kernel update package.
mkdir update-zip
cd update-zip
cp /path/to/port-blank.zip .
unzip update-zip

mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel ../zImage --ramdisk ../oldboot.img-ramdisk.gz -o boot-new.img --base 0x20000000

mv boot-new.img boot.img
rm port-blank.zip

#copy the compiled modules
cd system/lib/modules/
cp $(find ../../../../../ -name *.ko) .

#zip up the image
cd ../../..
zip -r newboot.zip *

#push image to the phone
adb push newboot.zip /sdcard/

Now with clockworkmod recovery, turn off signed checking and flash the newboot.zip file:

Install zip from sdcard -> toggle signature verification (if it’s not off)

Install zip from sdcard -> choose zip from sdcard -> newboot.zip -> Yes

root menu -> reboot system now

WiFi Module

I was initially not able to use the WiFi module. However upon Googling, I found that I needed to use the android-ndk-r5b compiler, an earlier version than I was using. Once I did that, the WiFi module compiled correctly.