[Upgrading, Modifying and Unlocking] statussticks:
Thanks for your response robo buddy. I have done some poking around myself over ssh and a sshfs mount. After researching a bit about 'standard/common' Android filesystem layouts, I'm starting to think the stock ROM on this phone is pretty screwy. There is only one flash memory block device (/dev/block/mmcblk0), and it is partitioned into nearly 20 different slices:

Device Boot Start End Blocks Id System	Analysis
/dev/block/mmcblk0p1 * 1 40 20 4d Unknown	?
/dev/block/mmcblk0p2 41 640 300 45 Unknown	?
/dev/block/mmcblk0p3 641 266880 133120 c Win95 FAT32 (LBA)	contains fat16 volume with arm9 radio software
/dev/block/mmcblk0p4 266881 7634943 3684031+ 5 Extended	extended partition
/dev/block/mmcblk0p5 270336 294911 12288 6a Unknown	?
/dev/block/mmcblk0p6 294912 688127 196608 83 Linux	/cache
/dev/block/mmcblk0p7 688128 696319 4096 63 GNU HURD or SysV	?
/dev/block/mmcblk0p8 696320 702463 3072 58 Unknown	?
/dev/block/mmcblk0p9 704512 712703 4096 46 Unknown	?
/dev/block/mmcblk0p10 712704 718847 3072 4a Unknown	?
/dev/block/mmcblk0p11 720896 727039 3072 4b Unknown	?
/dev/block/mmcblk0p12 729088 1515519 393216 83 Linux	/system
/dev/block/mmcblk0p13 1515520 3088383 786432 83 Linux	/data
/dev/block/mmcblk0p14 3088384 3096575 4096 47 Unknown	?
/dev/block/mmcblk0p15 3096576 3112959 8192 48 Unknown	?
/dev/block/mmcblk0p16 3112960 3153919 20480 60 Unknown	?
/dev/block/mmcblk0p17 3153920 3162111 4096 6c Unknown	?
/dev/block/mmcblk0p18 3162112 3325951 81920 83 Linux	/cust
/dev/block/mmcblk0p19 3325952 7634943 2154496 6b Unknown	/HWUserData (vold? mounted to /mnt/sdcard)

Partitions 1-4 do not end on cylinder boundary

This is a dump using fdisk with some minor comments at the end of each line. So my question is... where the heck are the 'boot', 'system', and 'recovery' partitions? This layout doesn't make any sense. Where does the bootloader find 'boot.img' at startup?

On top of that, I'm trying to make sense of all this Android jargon. I'm on 64 bit Arch linux with a dev setup and ADB communication with my U8665 working. Found a file "open source-kernel-2.6.38.6-U8815- Gingerbread.tar.gz" on the Huawei website. Contains what appears to be the source for the kernel version running on my U8665 right now. Many comments by authors who appear to be employed by Huawei. Grepping the source tree for 'U8665' nets results in a file 'fs/proc/app_info.c':

{ /* machine_arch_type s_board_id hw_version_id */
...
{MACH_TYPE_MSM7X27A_U8655_EMMC, "MSM7225A_U8665", "HD2U8655M"},

Searching google for the string "HD2U8655M" nets the device's PTCRB certification of some kind ..?

Ahem. I'm not exactly sure where to go from here. I am wondering if I can somehow compile this kernel along with CM 7 and build an image that way. From what I can understand from what I've read, this phone supports the ARM7 instruction set and has an Adreno GPU, so it's possible to eventually support ICS/JB..

P.S. I have some references to research I've been doing, but alas the forum wont let me insert hyperlinks until I make 10 posts :(

Edit: Alright, so I went further. mmcblk0p15 and mmcblk0p16 contain android images..

[jon@lavos U8665]$ split_bootimg.pl mmcblk0p15
Page size: 2048 (0x00000800)
Kernel size: 3521448 (0x0035bba8)
Ramdisk size: 701945 (0x000ab5f9)
Second size: 0 (0x00000000)
Board name:
Command line: console=ttyDCC0 androidboot.hardware=huawei
Writing mmcblk0p15-kernel ... complete.
Writing mmcblk0p15-ramdisk.gz ... complete.
[jon@lavos U8665]$ split_bootimg.pl mmcblk0p16
Page size: 2048 (0x00000800)
Kernel size: 3501096 (0x00356c28)
Ramdisk size: 1690977 (0x0019cd61)
Second size: 0 (0x00000000)
Board name:
Command line: console=ttyMSM0,115200,n8 androidboot.hardware=qcom
Writing mmcblk0p16-kernel ... complete.
Writing mmcblk0p16-ramdisk.gz ... complete.

So p15 is 'boot' and p16 is 'recovery', right? I should be able to build a ClockworkMod image with one of these kernels and then either fastboot flash it to recovery or just dd it into the proper device, correct?