2

If I want to install Windows on, say, a bare-metal Thinkpad X1 Carbon with no OS, then I can buy Windows and install it. Windows includes numerous drivers. If there are any necessary drivers missing, I can normally get them from the manufacturer, use the Add Hardware Wizard, and install them.

But, if I want to install Android 6.0 "Marshmallow" on, say, a Samsung Galaxy S Relay 4G, then things are not so simple. It's true that I could (theoretically) download and install some random Nexus ROM shipped by Google. But such a ROM includes far fewer drivers, and in fact may not allow my phone to boot up at all. And there's no UI for downloading and installing signed drivers downloaded from hardware-manufacturer websites.

Why does Android not include any driver-installation wizard?

And how does Android deal with a USB On-The-Go ("USB OTG") device, if it doesn't know how to communicate with that particular USB OTG device?

6
  • 3
    Stack Overflow user "eski" has added in Stack Overflow chat: "Since Android is open source, the answer to your question might just be that 'nobody has had time to yet'. Or 'you haven't yet'." Commented Oct 12, 2015 at 3:30
  • 2
    Samsung (and indeed all the OEMs) have a vested interest in obsoleting your device as fast as possible so you buy a new one. They aren't getting any money when you do an OS upgrade so they have no interest in supporting it.
    – pjc50
    Commented Oct 12, 2015 at 8:35
  • 1
    I don't have enough info to make this into a good answer, so I'll just leave it here: The Add Hardware Wizard is a Windows feature. Android OS is based on Linux. Microsoft maintains a driver database that powers their wizard. Since Linux is community-developed, there's no unified repository. Also each Android model technically runs a different OS, and a custom-flashed device runs a different OS than a stock device does. A driver that works on one device may not work on the next. Commented Oct 12, 2015 at 12:44
  • @immibis: Of course you can add hardware to a phone. You can add it using USB On-The-Go, Bluetooth, infrared, or SDIO. Commented Oct 13, 2015 at 1:33
  • I'm voting to close this question as off-topic because it's asking about design decisions -- questions for Google, not us. Commented Oct 13, 2015 at 5:12

2 Answers 2

8
  1. On desktops and laptops, drivers are a necessary evil. Hardware is often user-serviceable and prone to changes, and there is a huge variety of possible combinations. On phones and tablets, this isn't quite so. You can't really change the hardware easily. It's entirely safe to disallow driver installation since you don't really need it.
  2. It is a lot easier to break ARM devices than x86 with messed-up drivers.
  3. Drivers on Android must be written for specific kernel versions and all. This is easy to do for a manufacturer, but hard to get right as a user.
  4. Most USB On-The-Go devices are USB interfaces, for which drivers are included.
  5. Driver installation requires root access, which is disabled by default on the vast majority of Android devices.
  6. Allowing driver install exposes a massive surface for the installation of rootkits and other malware. And, in fact, such malware can persist across devices wipes and firmware upgrades.

We will likely see some kind of driver installation if Project Ara takes off. But I imagine it will be along the lines of each component having its driver loaded onto it and installing when attached, as opposed to allowing the installation of arbitrary drivers found on the Internet.

1
  • 2. seems arbitrary. Also it depends more on the isolation mechanisms the Operation System provides if a low quality driver will "break" your device.
    – Flow
    Commented Nov 1, 2015 at 15:17
1

The same reasons a Windows phone does haven't an "Add Hardware Wizard" either.

  1. Phones have harsher legal requirements to follow than regular Ultrabooks/PCs. In the US for instance, there is 911 emergency service/geolocation, Amber alerts, Tsunami/Tornado/emergency alerts (that can turn on the phone when the power is off), and supposedly NSA backdoors (according to Snowden). Also, there is the real possibility that a manufacturer could be sued if people were to lose their lives because of a cell phone malfunction. In part, this could explain the fact that the code of the network radio is often just a binary blob (despite the fact that open source activists like Richard Stallman are really not happy about it).

  2. Phones have traditionally been cash cows for carriers and content providers (or even Apple). This is the reason why the industry, the copyrights lobby, and the government/Library of Congress do not even want you to have root access to your own phone (unless you've been explicitly given permission by your carrier/manufacturer). In other words, you do not own your own phone. They own your phone. This is also part of the reason that you do not have "Add Hardware Wizard" on smart phones. Having root access is usually associated with having the responsibility of securing everything with your own device (even the installation of new drivers). Not having root access anymore just means that it's no longer your responsibility or privilege to do so.

2

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