Why does Android require porting to each device, unlike Windows? Or rather, why isn't there a way to simply download a setup program for pure AOSP and install it in any device?

I already read this question, and it says that Android requires specific porting to each device configuration (hardware setup) to even work at all. But my question is, why was Android designed in such a way that requires modification of its base source to suit the device hardware (adding drivers, etc)? Why doesn't it support installation of original AOSP from Google with basic drivers on any hardware, which can then be enhanced to work better with device-specific drivers from the manufacturer?

In contrast, Windows has been designed such that the same setup program can install it on any variant of a hardware configuration. You can come up with a configuration that no one has ever come up with before, and Windows will most likely install and run on it just fine. The chances of a complete failure to run Windows on a particular configuration are extremely low and likely only because of niche hardware.

Even if the correct drivers can't be found for a device, Windows will attempt to find the closest match for the device and attempt to run the device in a basic mode anyway - and the user can then upgrade to the correct driver after Windows installation is complete. And the chances of certain devices failing completely may be higher but still very low, and such failures can usually be resolved by installing the missing drivers.

By contrast, Android doesn't even have a concept of "driver installation", but drivers are added at the source level in a process called porting, which leads to many different ROM variants, including stock ROMs from device manufacturers, and vanilla ports like CyanogenMod, MUIU, etc. This brings the problem that if no one is porting Android for your device, you don't have a ROM to install on it (except the stock ROM it came with) - unless you build one yourself.

I understand that Android is fundamentally very different from Windows and even Linux (which it's based on), and I don't mean to compare apples with oranges. I merely want to understand why such a paradigm shift in device support was necessary for Android.


1 Answer 1


Windows has been built for working on multiple device types and has the ability to load drivers from removable devices and from a big online reposity (Windows Update). Windows has MANY inbuilt drivers.

Android is much smaller (which is better for smartphones. So you have to include drivers and other device specific things in your ROM.

  • 1
    Basically a very short summary of the links :)
    – ADTC
    Nov 13, 2014 at 13:38

Not the answer you're looking for? Browse other questions tagged .