Tried installing Lineage OS on two different phones today. Turned out neither was really possible while having a reasonably recent version.

Android derivatives are so... weird. Having to build a whole "image" to start your world with? It's a nightmare.

I can still install GNU/Linux on machines that are 15 years old and they still generally boot and run. And I don't need to build a separate "installer" per machine.

How the fuck did phones get THIS BAD.

Like, if the build system already built it for you, you're kind of ok, but how that system was built is kind of a weird and mysterious and troubling process.

Show thread

@cwebber with X86 as a standard starting point, it's relatively easy to make things work. Various iterations of RISC processors and a million proprietary peripherals glued together with proprietary drivers makes the process a bit more difficult

@cwebber phones are prettycheap, so it's a lot cheaper for hardware companies tothink they're special and are "disrupting" something.

Disrupting my life, assholes.

@teslas_moustache @cwebber I wonder how much of this is attributable to the "IBM PC" being the de facto standard and everyone else working to release "PC compatible" systems

makes you wonder if the reason mobile OEMs today don't make the same effort towards standardization is that they're no longer scrappy upstarts who can't afford to sink effort into the OS; they think they can get away with creating everything and (somehow?) don't realize what an awful job they're doing

@technomancy @cwebber @teslas_moustache it's this exactly.

It's not that we let phones get bad, it is that we never made them get good.

@cwebber It's like Android is designed and developed by a company that can throw thousands of CPUs at building the operating system.

@liw @cwebber Try bulding Chromium. That takes more than half a day on your laptop. ;)

@frainz @liw @cwebber I remember the days when I could build in less than half a day on my now 10 years old desktop PC. ^^

@cwebber PCs with a BIOS had a way to output abd input characters to the screen not entirely different from a serial port. Phones have none of this, an OS is expected to have the correct graphics drivers and all the assets such as fonts just to display that it's booting. And then, a touchscreen is a horrible as your only input device. To get the serial port equivalent you need some kind of 'app', which requires tons of assets, code and last but not least working hours.

Besides this, every phone is different and there's really no standard way to make an bootleg OS like there was on the PC or others.

I'm probably wrong and contradictory in a multitude of ways, but the last good phone was the Nokia N900.

@cwebber you're doing it all wrong. You're supposed to download some rom from somone with an animated anime avatar in a forum

I mean, this is clearly documented..

@joeyh @cwebber That's what I did. It gave the sacrificial* Windows machine a virus in the process, but everything is probably fine now. Except my phone is no longer supported by LineageOS, so I've got that going for me.

* In this story the Windows machine has been retconned into being sacrificial.

@cwebber For GNU/Linux, one can be reasonably confident of being able to install it on a large range of hardware. For LineageOS, I think one needs to buy specific devices for it to be viable. (I got a Samsung Galaxy S5 because of its being very well supported on LineageOS.) It's non-ideal, to say the least.

Maybe PostmarketOS will eventually make phones more like laptops in this regard.

@cwebber it’s somewhat changing with project treble but it’s still entirely shit

@cwebber isn't it because of the blobs? I remember pine64 complaining about how hard it was to find a cell radio that didn't have an NDA.
Postmarket OS seems to use a later version of GNU/Linux when ported to phones but it's still faily new

@cwebber "How the fuck did phones get THIS BAD."


@cwebber Have you tried to dissect the build system? I'd actually love to take a closer look, but it's such a huge thing... The base AOSP is not really any different. I built it once to see how it works, and I wasn't even sure whether it built correctly. Neither was I certain that the meta-git-tool had pulled all the sources. xD I'm just glad the Lineage OS team is still supporting my device and maintaining fairly recent patches / releases.

@cwebber I believe it's because phone hardware is too varied. So you need to be in luck that there's a dev with your exact model who made a device tree with the right settings to build a kernel, recovery and ram disk. From there the actual android stuff is less device dependent, assuming the (proprietary) binaries for your device adhere to Google's hal specs.
Android is Apache licensed, so device manufacturers don't need to publish code when they tinkered with the hal.

@GidiKroon Yeah, and the hardware manufactures seem to be rather interested in maintaining this state of disarray. In fact, desktop hardware isn't any less varied (that's my intuition, no stats), but it is usually built around a standard, which allows you to have more portable driver code. Manufactures have tried to achieve Android-like fragmentation with weird firmware for years I think, but the architecture of standards around the desktop seems to subsist.


@cwebber Two huge companies created two isolated worlds with their own rules.
Interoperability and openness¹? — Never heard.

¹ Just publishing overly complicated and poorly thought out s/w, which will be abandoned soon, and nobody else will be able to maintain, is not openness I mean.

@cwebber Well, in their defense, phones did start in a much worse place. But things are "better" now but still awful and drawing innocents in to its gaping maw of gnashing teeth.

@cwebber They aren't bad, from that point of view. They're just not general purpose hardware you're supposed to install custom software on, much like most of the embedded computing devices in example in cars.

@z428 They *are* general purpose hardware, and it's definitely possible to build distributions that could be general purpose... it's that the kind of software OS'es that have been deployed (primarily Android) haven't been *build* to assume shared-general-purposeness as their foundation.

@cwebber I don't think it's just an Android problem. These days it looks just like even getting a particular device ready to boot a custom distribution greatly depends upon vendor, product line, sometimes product generation and at times some rather rude hacks to unlock and replace the boot loader, deal with device partitions right,make sure all hardware works again afterwards. That's not something a better distribution would be able to solve. It requires more open hardware.

@z428 @cwebber Yup, you experience this first hand with e.g. any of the ARM boards. I consider myself to be reasonably competent and I'm struggling to get vanilla Debian booting on a PinePro64, rather than downloading a random image from github.

Say what you like about PCs, but the idea of a standard interface between hardware and software – the BIOS – was a huge boon for hackers like us. The hardware being open doesn't help, it's having an open, standard interface between them that is key.

@mjog Yes, right, that BIOS / interface approach is exactly what I meant with "more open hardware". Pretty much all smartphones and tablets aren't designed like that at all.

Moreover, I have yet to meet a single ARM device that supports any kind of BIOS/EFI or other interface to boot, initialize board-specific nonsense, and find and pass control to an operating system. For any BIOS-backed system an OS distributor need only create one installer for a whole class of machines - eg. one AMD64 image for most desktops and laptops. Meanwhile in ARM land, you need a separate image for every board to deal with boot-time oddities.
@mjog @cwebber

@willghatch Yes, and that's what I meant with that "non-general-purpose-hardware" thing: The BIOS-backed class of systems are way more tailored towards (and suited for) such an approach. Most of the mobile devices, these days, at least to me look like specialized systems that are extremely locked-up and allow for thorough modifications only either for developers or in some cases if you manage to really "break into" your device and do something you're never supposed to do.

@mjog @cwebber

@telent @cwebber "Any device not allowing that is, simply put, not respecting the intelligence of the user." — well said

@cwebber this was exactly my experience with an old Samsung Galaxy S3 I'd picked up specifically for this.

It was legitimately easier to install Replicant, which is Android without the bits you need for most of the hardware to work 😂

@cwebber fair disclosure: my solution to the "all phones are terrible" problem is to buy second hand iPhones.

My rationale is they don't feed Google quite so much data, and I'm doing my bit for the planet by buying a second hand phone that isn't terrible instead of picking up the latest flagship.

@cwebber companies not caring if the changes they make to the kernel or other components get upstreamed at best, not releasing the changes altogether at worst. Loads of binary blobs required for the devices to even start, which make creating updates by 3rd parties hard/impossible.
Often sources are dumped without a line of documentation.
Just a few reasons off the top of my head.

@cwebber also, your 15 old PC has the huge advantage of standardized architecture, bootloader included!

@cwebber Lack of standardization is one reason. x86 machine are pretty homogeneous.

How the fuck did phones get THIS BAD.

One word. Google.

/e/ is at least it's ungoogled.
@cwebber When the hardware supplier also supplies the OS there is no incentive for them to conform to any discoverable and autoconfigurable interfaces. Just patch uboot to work on your quirky motherboard and hardcode the kernel to know your device tree.

If they are getting payed to ship with junkware there's even an incentive to ruin the platform for users trying to gain control over the OS.

Antifeatures. Thanks, capitalism.
>How the fuck did phones get THIS BAD.
There are reasons for why Linus Torvalds insulted google/android developers.
Sign in to participate in the conversation

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!