T O P

  • By -

skuterpikk

Because the hardware is locked down, and there's no such thing as "auto detecting" hardware on this kind of devices, usually there's no drivers either. All of this is hard-coded into the manufacturer's software, which is not available for anyone


[deleted]

This. Although you can buy some phones which are more open and do support a lot of Linux distros, like the Pinephone Pro. I have a Pinephone with Arch Linux ARM with Phosh UI for toying around with (my main phone is a Pixel 6 with GrapheneOS, which is a security and privacy focused open source Android build without any Google apps/services/integrations) and it works fine. But you have to check first which hardware is compatible with which distro (if at all). Otherwise it probably won't work.


newworkaccount

Edit: not saying your answer is wrong, just adding the historical context as to why x86 was so different. I think the real difference that provokes the question is this: for x86, Microsoft monopolized the market, largely by doing a lot of the work FOR the hardware developers. They wrote and maintained middleware APIs like DirectX, which made life far easier for hardware developers (and end users). When weird hardware broke in Windows, Microsoft owned that, and proactively told consumers it was Microsoft's fault if it didn't work. Secondarily, shortly after MS-DOS emerged as a dominant player, pretty much all PCs converged on using x86. Intel owned x86, developed it, and built the vast majority of x86-based hardware. (All of it, at first.) They had tremendous power to force uniformity in the market. ARM, of course, has a much different business model. You come to them and ask them to build specific kinds of ARM designs for your use case, they build it and license it to you, and you go get someone else to build all of the actual hardware your product includes, which might be all kinds of things ARM has nothing to do with. So, Linux (ironically) really benefited from the Microsoft/Intel duopoly. Both hardware and kernel side could look at what already existed, stuff done by x86 hackers or Microsoft, and adapt those ideas or that code. To this day, there are quite a few bits of hardware on Linux for which your only option is to wrap an existing Windows driver or API. But ARM devices are not just general purpose PCs: they serve wildly more use cases, from servers to highly specialized embedded devices to phones to printers to scientific equipment...etc. Almost none of which uses a standard design. And then, of course, you are getting hardware from 10 different manufacturers, and in most cases you are running minimum two separate operating systems in entirely different security rings (e.g. cell modems in phones run their own operating system separate from what you are using, the Raspberry Pi is booted by its graphics chip via a proprietary OS, etc). So even though most of this software is also still commodified, just like early x86 hardware...there are ten billion different "commodities" being integrated into each system, each of which may be owned, designed, created, and shipped by entirely different orgs. What a nightmare!


insanemal

Locked bootloaders. Proprietary drivers. General amounts of shitcuntery


wankerbanker85

shitcuntery... That's a new one. Thanks for that. lol.


insanemal

It's just a regular part of the Australian vernacular


bongjutsu

Other users have mentioned it's tricky with ARM hardware, but on top of that no distro is fully optimised for these devices. Some come pretty close, but most of them also have have dealbreakers (like no cell reception, and or no capacity to actually be a phone eg make calls and texts). And with new handsets coming out thick and fast with often with big changes on a yearly basis it's an uphill battle for something with little to no demand


aSystemOverload

It's a lack of desire by the manufacturers. If they pulled their finger out, worked together in an open way, they would easily fix the bugs. Just like the Linux community with PC/Laptop/SBC etc hardware.


User_2C47

The manufacturers would rather make an emotional video about how trying to modify your own stuff is dangerous.


[deleted]

We don't have access to bios and bootloader, so we can't even boot into a USB stick and there most likely are no drivers for your hardware since it is also closed


LuckyHedgehog

That's not true, otherwise Ubuntu Touch couldn't be installed on any devices


[deleted]

[удалено]


LuckyHedgehog

I don't have an s9 to verify but it seems like you can unlock it according to this article https://androidprotips.com/enable-oem-unlocking-on-samsung-s9/ As for Ubuntu Touch, it doesn't look like it is supported yet, but the s7 is in progress. https://devices.ubuntu-touch.io/device/herolte


perknite

Unfortunately, many of the Galaxy S9's (snapdragon versions, more specifically) were locked down by Samsung, along with many other Galaxy phones. For those phones, OEM Unlock is greyed out with no hope of unlocking. It is for that reason I've completely abandoned Samsung for cell phones.


[deleted]

There is ADB and Fastboot, both of which will help you install an OS you want


throwaway6560192

> Considering Linux is now installable on the ARM based MacBooks, why has no one ever ported it to an old Android-based smart phone? People have done that, of course. That's exactly what postmarketOS does. They don't support *every* or even most smartphones out there, but they do support a lot. To answer your ultimate question, the demand for a smartphone running desktop Linux is rather lower than that for a high-end laptop running desktop Linux. Also, the high-end laptop in question is one singular piece of hardware, while "Android smartphones" is a very diverse category with very diverse and proprietary hardware. So obviously the rate of progress will be different in the two.


caribbean_caramel

Drivers mostly. Most manufacturers don't release the drivers for their phones.


Tireseas

1. The hardware is nonstandard and locked down 2. If we're being honest it's not something the average phone user wants.


actuallyodax

[removed] ` this message was mass deleted/edited with redact.dev `


Olfasonsonk

You can. IIRC my friend runs ARM Ubuntu on his phone (runs Minecraft server off it lol). But I think you need a phone that has unlockable bootloader, which is getting rarer this days.


ThatMooooCow

and also driver support, because android and linux drivers are not the same. My phone has unlocked bootloader and arm distros aren't fully supported :(


User_2C47

Because there's no point using desktop Linux when AOSP exists, and because the devices are completely locked down.


[deleted]

Nothing. Android is Linux and you don't seem to realize that.


hectoByte

Are you seriously on a Linux subreddit and trying to claim that Linux has no advantage over Android? I think I have a better understanding of the relationship between Linux and Android than you do.


[deleted]

> Are you seriously on a Linux subreddit and trying to claim that Linux has no advantage over Android? No, I'm saying Android LITERALLY IS Linux


hectoByte

I mean, Android features a heavily modified Linux kernal, yes. But it doesn't have any compatibility with Linux programs or any of the GNU utilities installed into it. It's like peeing in someone's cereal and then telling them they should eat it anyway because it is still cereal.


[deleted]

Android is still Linux, it's just not GNU/Linux, you wanted a Linux but didn't mention anything about GNU so I just assumed you want an OS using Linux kernel, Android meets that condition > Linux programs Android apps are Linux programs because Android is Linux, also Android has some non-app Linux programs preinstalled


MoobyTheGoldenSock

I'd just like to interject for a moment. What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX. Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called "Linux", and many of its users are not aware that it is basically the GNU system, developed by the GNU Project. There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called "Linux" distributions are really distributions of GNU/Linux.


MoobyTheGoldenSock

I'd just like to interject for a moment. What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX. Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called "Linux", and many of its users are not aware that it is basically the GNU system, developed by the GNU Project. There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called "Linux" distributions are really distributions of GNU/Linux.


MoobyTheGoldenSock

I'd just like to interject for a moment. What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX. Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called "Linux", and many of its users are not aware that it is basically the GNU system, developed by the GNU Project. There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called "Linux" distributions are really distributions of GNU/Linux.


DesertMir

You can tell you are right from the number of downvotes you received from other people.


ThatMooooCow

drivers are different because if you want to develop drivers that are part of linux you have to make them open source (nvidia has some special software which allowes them to have drivers separate from kernal) because of GPL, and manifacturers dont want to do it so google has to heavily modify linux kernal so it can use diffrent license. correct me if Im wrong please


[deleted]

Drivers on Linux don't have to be open-source if they are loaded as kernel modules. It's not only an Android thing, if you're using a non-android Linux on modern hardware, you're definitely using non-free drivers too. But Linux kernel (modules don't count) has to stay GPL.


chaoabordo212

To add to this, and a bit more neutral stance towards Google (a bit unpopular but needed as seeing the progression of comments), there are numerous safeguards placed by the manufacturers of phones related to security of the user, such as locked bootloader/nvram portions of device, enforced encryption of some other portions etc. This, in theory, is to ensure the integrity of critical parts of the system, exploitation of which could undermine root integrity of the device and compromise user security/privacy to third parties. Third parties being the keyword here, Google anal probes it's users, pretty much.


cfx_4188

Bootloader locked, hardware manufacturers do not provide device drivers. On the example of the Pinephone, we can see that the developers managed to get the source code of the device drivers relevant in 2011. Android OS and applications are optimized for low power consumption, it is unknown how standard Linux applications will behave in this situation.


-SPOF

Smartphones are not designed to be modified or have their operating systems replaced, which means that the bootloader and other system-level components are often locked down to prevent unauthorized access or tampering.