On the 4GB model firmware the boot.img is a gzipped cpio initrd archive "signed" with a rockhips specific header/footer and the kernel.img is a raw kernel image also "signed". This format is commonly mentioned on the internet as being generated with RK2918 SDK < 2.0.
The 8GB firmware uses a newer RK2918 SDK, 2.1, which packs the kernel and initrd images into a single boot.img, similar to the image generated by Android's "mkbootimg" utility. You can actually extract the kernel/init contents using the split_bootibm.pl script. Unfortunately the RK2918 boot.img uses an extra CRC field which is validated by the booloader. A boot.img generated by the regular "mkbootimg" will not allow the device to boot. This limits the ability to use custom ROMS.
Luckly the bootloader from SDK 2.1 can boot from boot.img/kernel.imgs as generated by the SDK < 2.0.
In short, to modify an 8GB model kernel, split the boot.img, change the initird/kernel as desired, sign them with rkcrc (signature for the SDK<2.0 format), flash, and reboot.
Step by step:
cd ~
git clone git://github.com/lamegopinto/rk2918tools
# Check the rk2918tools/README for build requirements
cd ~/rk2918tools && make
cd ~/tmp
~/rk2918tools/img-manager.py dump boot
~/rk2918tools/img-manager.py dump kernel
cp -a boot.img boot.img.orig
~/rk2918tools/split_bootimg.pl boot.img
mkdir -p ramdisk && cd ramdisk
gunzip -c ../boot.img-ramdisk.gz | sudo cpio -i
# Change the ramdisk as desired
sudo find . ! -name "."|sort|sudo cpio -oa -H newc|gzip -n >../newinitrd.gz
cd ..
# Repackage
~/rk2918tools/rkcrc boot.img-kernel kernel.img.new
~/rk2918tools/img-manager.py write kernel kernel.img.new
~/rk2918tools/rkcrc -k newinitrd.gz boot.img.new
~/rk2918tools/img-manager.py write boot boot.img.new
~/rk2918tools/rkcrc boot.img-kernel kernel.img.new
~/rk2918tools/img-manager.py write kernel kernel.img.new
~/rk2918tools/rkcrc -k newinitrd.gz boot.img.new
~/rk2918tools/img-manager.py write boot boot.img.new
# Reboot device
~/rk2918tools/rkflashtool b