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.
@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.
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
@cwebber It's like Android is designed and developed by a company that can throw thousands of CPUs at building the operating system.
@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..
@cwebber it’s somewhat changing with project treble but it’s still entirely shit
@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.
@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.
C a p i t a l i s m
@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.
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.
@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.
@cwebber this is probably too early-stage to fix any actual problems for you, but have you seen https://samuel.dionne-riel.com/blog/2019/08/21/mobile-nixos-the-present-and-future.html
@telent I hadn't!
@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 maybe /e/ has got you covered? https://gitlab.e.foundation/e/wiki/en/wikis/devices-list
@cwebber Lack of standardization is one reason. x86 machine are pretty homogeneous.
@cwebber When have mobile phones ever not been terrible?
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!