MeeGo 1.1 running on HTC's HD2

While bored today, I decided to take a look at getting MeeGo running on the HTC HD2.

The HD2 is very similar to the Nexus One hardware-wise, and MeeGo is already known to run on that, but as far as I know, nobody had ever got it running on the HD2. I set to work, and a few hours later we were up and running!

I followed the instructions at MeeGo's MSMQSD wiki page as I'd done previously for the Nexus One. I didn't deviate much from the instructions at all, except for having the kickstart file produce an ext2 image.

Using the latest kernel from Ubuntu for HD2, and a slightly modified initrd.gz from the same package, I combined these with the MeeGo rootfs image, and with a little tweaking I got as far as the homescreen.

I cannot get the touchscreen working for whatever reason (I'm a n00b, go easy on me), but I did install Android's adb daemon so I can get a shell over USB (which is how I ran the apps in the screenshots below).

Plenty of things aren't working, the touchscreen being the most egregious, like WiFi, graphics acceleration, etc. But it's a start. Anyway, MeeGo is finally running on the HD2, so I thought I should share the story :-)

The HD2 seems unique in its hacking potential, as it can run Windows Mobile 6.5, Windows Phone 7, Android, Ubuntu and now MeeGo - if you ever get a chance to pick up one of these devices, do!

Update:

I have the touchscreen working mostly now, using a different kernel. I'll update this post when I have real info.

Update 2:

Touchscreen and WiFi are now both functioning, but neither are working properly (touchscreen registers clicks as drags, and wifi won't assign an IP address to the interface after connecting). Working on it…

Update 3 - VIDEO!:

Mount iPod nano 6G Resource Partition

When you run extract2g (-4 -A) against the iPod firmware.MSE file, you end up with nine partitions. Eight of those are encrypted, so not much use right now (asides disk.fw and osos.fw, which you can force-boot using iRecovery). The ninth partition is the resource partition, which is not encrypted, so you're able to extract the contents (a FAT16 disk image, no less).

Use the following command to strip the header and extract the file:

dd if=rsrc.fw of=rsrc.img iseek=2 count=284672

(If you're not working from the 1.0/36A00403 firmware bundle, you can strip the first 1024 bytes from the rsrc.fw file, and run fdisk on it to find the sector count - 'fdisk -e rsrc.fw'. For the 1.0 bundle, the sector count is 284672).

Double-click the resulting .img file on Mac OS X to have it mount so you can browse it. There's not a lot of interesting stuff there (fonts, etc), but there are two files of interest: SilverDB and SilverImagesDB. SilverImagesDB contains all the image resources for the OS; wallpapers, icons, buttons, etc, including some curious leftover pieces like camera shutter images.

'Silver' I presume is the name or codename of the UI framework on the iPod's Pixo OS (similar to how 'Purple' was used to describe iPhone apps).

Maybe once we find a way to flash a modified rsrc partition back to the iPod (remember, it's not encrypted) then you should, in theory, be able to modify wallpapers and other images/resources.

iPod nano 6G iRecovery

After musing with James Whelton about his iPod nano homescreen hack (http://nanohack.me/), I set out to see if there was anything interesting you could do to the iPod.

Discovered what may be DFU mode: hold down the restart buttons until you get a black screen (it reboots twice) and iTunes sees the device and alerts you.

Afterwards, modified iRecovery to work with the iPod nano (had to add its DFU/Recovery USB ID) and allow it send files, and tested with some files I had extracted from the iPod nano 6G firmware (using the extract2g tool somewhere from http://www.freemyipod.org/ ).

disk.fw and osos.fw work (one boots disk mode, the other boots to a homescreen). The other files make the nano boot to a white screen, but go no further.

So, basically, it seems we can send encrypted firmware files to the iPod, and have them execute, similar to what is used to jailbreak the iPhone. If the nano rejects the file (i.e. unsigned, invalid), it reboots.

While this by itself isn't that cool, hopefully the info will inspire someone else to finally hack this thing and give us custom 'apps'.

Make sure to click '720p' to see what's going on.

Carriers vs Walled Gardens, WP7 Edition

Finding the whole 'carriers and manufacturers can have their own app store section' situation on Windows Phone 7 quite interesting.

Basically, the carriers and manufacturers of the devices can offer their own exclusive free/paid apps to their customers only, and have a dedicated category in the Marketplace for such. Furthermore they get access to the native SDK so can do things way beyond what apps built with the public WP7 SDK can do (i.e. DLNA streaming, augmented reality, hardware access, etc).

For example, LG offers an application on the Marketplace (that only their phones will see) that allows you change APN/carrier settings to match any market in which LG has a device; something you can't do with the standard APN settings on Windows Phone 7. There are definitely some other very cool free apps from LG;

You can also re-download any of the bundled apps (that you may have deleted when buying the phone).

It's a fascinating solution to the carriers-have-no-power situation on iOS, and carriers-have-too-much-power on Android. I think it's the perfect compromise.