You might be able to pull off the kernel porting, if both devices are the same architecture (i.e. ARMv7), and the kernel has no drivers statically linked to it. For the first part, you can check /proc/cpuinfo on your device - generally any processor with the same feature set should work.
The concern, however, will be modules - the device drivers needed to run the underlying hardware (GPS, accelerometer, framebuffer, etc). You are likely not going to have the source for those, so if you are porting a kernel you must make sure the kernel version magic is identical - up to the minor and extra versions.