[Streak 5 Q&A, Help & Troubleshooting] TheManii:
It has a lot to do with the drivers, unless every phone was identical internally (or each generation identical internally) there are no drivers for that specific device.

PCs are much more standardized when it comes to hardware working with drivers. Most important components like video/audio/ I/O have standard fallback modes and their specific drivers. That's why you can install windows or linux or whatever on a system and at least expect it to boot and most of the stuff to work. They have generic drivers that will do the minimum required for it to function, but not much more.

From a user perspective drivers are much more diffucult with regards to *nix then with windows, this is especially true with regards to android (as it uses the linux kernel)

Windows has standardized (as in they have published the specs and adhere to it) driver frameworks and spend a good deal of testing time making sure 3rd party drivers will remain reasonably compatable. Usually it goes smoothly enough when releasing a new standard, when it goes bad you get what happened with vista where the drivers were the main cause of instability. Most of the time you can use drivers written for win 95 on win7 x86 and there's still a fair chance it might STILL work depending on how well the driver was written (this is a gross oversimplification, there's an entire class of win 9x drivers that wont work, but the other class will).

With linux driver compability is much less clear cut, many important drivers are available as source, and it's very possible (but requires a fair deal of planning ahead) to build a pc and only use source code drivers.

If something is only available as binary drivers you're at the mercy of the manufacturer to keep it updated and working.

This is why android is so difficult to roll out timely updates. The kernels in 2.2 are very different from 2.3/3.x and rewriting the drivers for it is what accounts for ~90% of the work (assuming your device is powerful enough to update in the first place)

The full driver sourcecode isnt often made available for android devices, so you either have to spend time writing your own or attempting to adapt the binary drivers to make it work. This is what is happening with streakdroid 2.x

The other critical point is that the bootloader must be willing to load 3rd party code.

There's a fair amount of devices that have had android ported to them because they were:

1) Able to load 3rd party code (either by hacking the bootloader or it allowing it on it's own)

2) They either had comparable drivers or were willing/able to write their own

3) There were enough devs to take the time to accomplish this in the first place

4) Android is open source so it's possible to write your own drivers in the first place (techinally all you might need is the driver sdk, but no mobile os has only a driver sdk available, it's either all or nothing)

Being open source has absolutely nothing to do with being able to install it on any device.

Winmo 6.5 is closed source (sorta, it's somewhat like shared-source) but it's just as easy to port over. But there's little to no interest to porting it to new devices.

Win8/arm might be like how windows is on the pc IF they keep drivers the way they are. If ms decides to incorporate them the way linux does it wont be any different then what android is experiencing now (though it's kinda unlikely, windows has always loaded drivers as seperate modules, and they're likely actively paying attention to that with win8)