16

Are there any technical or others reasons why Android is still a firmware and not an OS which can be just installed without a lot of hassle?

Why there is no universal image which could detect appropriate drivers (kernel modules), partition NAND in some standard way and configure boot loader to boot updated OS version?

What stops Google from making a real (less firmware-like) OS (an OS for small ARM, x86 etc. devices)?

3

4 Answers 4

12

What stops Google from making a real OS (an OS for small ARM, x86 etc devices)?

It is a "real" OS.

Why there is no universal image which could detect appropriate drivers

How do you detect drivers that don't exist? Someone has to write them. Unlike PCs, phone hardware varies wildly, largely because it isn't feasible for end users to construct their own from parts and size constraints. Customized parts instead of interchangeable ones and special chipsets mean very specific drivers are needed, and an OS can't just ship default ones. Imagine the bloat as well — someone with a cheap HTC phone with 20 MB for apps doesn't have room to host drivers they don't need.

and configure boot loader to boot updated OS version

Bootloaders also vary wildly between devices; you'd have to get all the manufacturers on board in order to use a single one, and manufacturers are unlikely to want to give up their power in that area.

5
  • 3
    … but they could make distribution with very modular kernel and then install just needed stuff. PC hardware also varies from pentium with buggy CMD640 IDE to Core i7 with usb3. They could make installer which reads VendorISs:DeviceIDs from existing OS on device and then just compiles kernel on QEMu and then just transferes it to device with new stuff. I guess you right even if it's possible for a person to just use menuconfig to make good enough kernel for specific device, that is hardly can be made automatically by some script. Mar 7, 2012 at 6:28
  • 1
    @OleksandrBolotov: Bear in mind that the Linux kernel also contains a large number of open source driver implementations that are compiled when you run a build. The vast majority of the drivers used by mobile devices are proprietary, so even although you certainly can build Android from source for any device given enough time, you'd have to implement all the drivers. In addition, Google may run afoul of intellectual property agreements if they did this themselves (I don't know for certain but it may certainly be in their contracts with various manufacturers). Mar 7, 2012 at 14:23
  • 2
    @OleksandrBolotov I certainly agree that they could do something to mitigate the issues, but we can only assume that the issues are why they don't ;). I think speculating further would be beyond our scope. Mar 7, 2012 at 18:09
  • 2
    Yes, tl;dr it's a driver issue. Someone has to make the drivers.
    – Bryan Denny
    Mar 8, 2012 at 14:54
  • By design, or the perfect scenario per se, the kernel would contain all the drivers, while the Android OS is universal, both could be flashed separately, or flashed together in a bundle as stock firmware (which we see a lot today). If the kernel was separated from OS, could we be able to flash kernel-less AOSP directly onto any device that has its manufacturer kernel flashed first? Maybe this already exists? Idk Mar 11, 2016 at 21:15
4

In order to provide what you seem to be asking for, an additional layer (or a more robust)of abstraction would have to be added to the operating system so that it would be less tightly coupled to the hardware. Adding this would require more memory and consume more CPU cycles on a platform that has little of either to spare.

0
2

Google's ongoing lawsuit with Oracle!

Google does have a plan for bringing Android to PC's - but it's not quite what you are envisioning: Google wants to add the Android execution environment to Chrome. Android could -with a lot of work - by made to be installable on PC's, but bringing it to Chrome instead means it could be easily deployed to 25% of all computers immediately (25% being Chrome's ~ market share).

If you don't believe me, look at the smoking gun e-mail that Google is currently fighting to keep out of lawsuit - it refers to Google needing Java for Chrome.

I'm not suggesting that Google is going to suddenly drop Java if they lose the lawsuit - they are way too far committed to Java to do that - but they would like to at least know what the terms of using Java are going to be before they take a step that would significantly increase their dependence on it.

4
  • 2
    Google just suffers from bad decisions made long time ago by Android Inc. That was such a horrible idea to use Java for app development on NEW OS. Wasn't it obvious enough that Java is just a proprietary trap and they even don't need it to make non-java VM bytecode for Dalvik. I guess they just have traitors in management that explains everything. Mar 7, 2012 at 20:34
  • 1
    It would seem that adding the Android execution environment to Chrome might not be that hard if this is anything to go by... bluestacks.com - Android apps running on a Windows desktop! Apr 19, 2012 at 20:39
  • 3
    Do you have any evidence for all of this, or are you just speculating wildly?
    – Dan Hulme
    Jul 4, 2013 at 8:42
  • Certainly, much has changed since I wrote this answer. Most importantly was Pachai replacing Rubin and associated re-org at Google. All the signs seemed to change after that, and IO13 was much different than IO12: clearly they are now pushing Chrome as a mobile platform in-of-itself, so I no longer believe they will bring Android to Chrome.
    – Tom
    Jul 4, 2013 at 15:18
1

Other people than Google are working on porting it to the x86 platform already. If you check out the Android-x86 Project you can see various builds available albeit for a limited number of hardware devices. I tried to download a couple of the images and get them running in VirtualBox on my computer (CrunchBang Linux based on Debian on Dell Latitude D520) but couldn't get it to load. You might be able to, though. GL!

You must log in to answer this question.

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