[HD2 Android Q&A, Help & Troubleshooting and Genera] LiFE1688:
I decided to write a simple guide for people who seems to have a lot of questions and difficulties with the new NAND Android Desire firmwares.

HD2 which has SPL3.03

There are people who are stuck with SPL 3.03 and cannot flash HSPL 2.08 into their HD2, there is a way to downgrade your SPL to 2.08 and lower.

1) Download Official HTC HD2 firmware, DO NOT DOWNLOAD version 3.xx only 2.xx or 1.xx

2) Extract RUU_signed.nbh using 7-zip

3) Rename RUU_signed.nbh to leoimg.nbh and copy to the root directory of your MicroSD card that is formatted in either FAT16 or FAT32

4) Power off your HD2

5) Holding the Volume Down button, Power up your HD2

6) Wait...

This will downgrade your SPL to 2.xx or 1.xx depending on which version of Official Firmware you used. It will also overwrite your RADIO and Windows Mobile Firmware

7) Download Radio 2.15.50 and upgrade Radio to 2.15.50

8) Run HSPL3 and update SPL to HSPL 2.08

9) Download MAGLDR 1.11 and install

You just updated your Radio to 2.15.50 and updated your SPL to HSPL 2.08 and then installed MAGLDR 1.11

10) Download LEO "Stock" NAND Android ROM and run DAF.exe (If you are using Windows 7 or Windows Vista make sure you run as Administrator)

You just Flashed your phone to NAND Android (Desire)

Updating your Kernel

Okay, honestly, this is a little more advanced for some people.

11) Download and install JAVA JDK

12) Download Android SDK R08 installer and install. (You don't really need everything, just the USB Driver and Platform-Tools (ADB)

13) Download [KERNEL][NAND] -=MDJ=- s9.2 [OC1536-SMARTASS-CIFS-CFS-UTF8]

14) Download APNS.7z from attachment

15) Extract Kernel and APNS file in same folder.

The following adb commands allows you to write files into your NAND to update your kernel

adb shell mkdir /data/boot
adb shell mount -t yaffs2 -orw,nosuid,nodev /dev/block/mtdblock0 /data/boot

This uses adb to write the new Kernel's zImage to your NAND

adb push zImage /data/boot/zImage

Remounts your phone's partition after you update your kernel

adb remount

This updates your new Kernel's modules which controls your WIFI and DATA and stuff...

adb push modules/bcm4329.ko /system/lib/modules/bcm4329.ko
adb push modules/tun.ko /system/lib/modules/tun.ko
adb push modules/cifs.ko /system/lib/modules/cifs.ko
adb push modules/fuse.ko /system/lib/modules/fuse.ko
adb push modules/msm_rmnet.ko /system/lib/modules/msm_rmnet.ko
adb push modules/nls_utf8.ko /system/lib/modules/nls_utf8.ko

This will install a list of APN so that your new Android phone will automatically install your APN instead of requiring you to manually type it in.

adb shell mkdir /system/etc/customer
adb push apns.xml /system/etc/customer/apns.xml

This will unmount your phone partition then remove the temporary folder

adb shell umount /data/boot
adb shell rmdir /data/boot

This will reboot your phone

adb reboot

Now all you have to do is reset your APN, and it should auto detect and fill in the APN information. (That is provided it is in the list).

Please note that this ROM is not rooted, so you might want to download z4root and use that to root the phone.

Thanks to the following people:

m-deejay

cotulla

hastarin

DFT group

cedesmith

cyanogenmod

xda-developers

... and their wonderful users.

... and whoever I might have forgotten!