Even with android custom ROMs like Lineage, support eventually ends. Meanwhile, you can just slap on linux onto any old computer and its still getting the latest updates. 🤔
Why not just do the same thing with phones? Forever phone updates? 👀
Locked bootloaders and non-standardized binaries reqd to boot hardware.
Long story short, profit.
The not so short versio is that each manufacturer along the supply chain decides for how long they want to provide updates, the following manufacturer can’t provide updates that the previous manufacturer doesn’t. And so it goes until you get a phone that has 3 years of software updates and 5 years of security updates and that’s it.
For example, you might buy a phone from google, they buy electronic parts from maybe Qualcomm and a few others. Say Qualcomm decides that it won’t be profitable to provide driver updates to the SoC past 7 years and critical security updates past 10 years. At this point even if Googke really wanted to, they can’t provide anything past that as they would not be able to update the Qualcomm driver. But google has otger providers with maybe shorter support windows, abd they have their own costs and updates to make. So Google decideds that for them it won’t be profitable to provide support past 5 years and security updates past 7 years. So now you get a phone which will be unsupported after 7 years, and here comes the big difference between phones and most computers. Phones have a locked bootloader and usually a custom SoC. Locjed Bootloader means that you can’t just install another OS that might still provide some support, and the custom SoC means that any driver support will have to be only for this specific device.
So with an old laptop you might have a custom motherboard, but the cpu, gpu, ram, wifi, sound, etc will all be off the shelf, so if some linux developer makes some sort of driver support for your wifi card, it will also apply to all other laptops with that wifi card, but for a phone this won’t work, let alone even be viable since the bootloader is locked.
Simply put, no right to own and profit chasing means that no one really cares if your phone is a security and usability nightmare after a few years.
Driver issues. For starters, ARM is protecting its Mali drivers like a dragon.
Windows is designed to work on a very wide range of specs, so older devices as well as low-end newer devices should be able to run it.
That’s even more true about Linux. Many popular distros can be run on a raspberry pi, a 20 year old MacBook, or a state-of-the-art gaming desktop.
It’s less true about macOS because Apple has more control over the hardware so they can be pickier. Mobile developers also have more control over the hardware and can be pickier, although that’s less true about Android than iPhone.
in the case of Android, it comes down to the proprietary driver modules that are compiled for certain kernel versions. As newer versions of android are released with newer kernels, the closed source modules fall out of step. If the drivers for these components were open source anyone could recompile them for any Linux kernel. It’s usually up to the device manufacturer working with the likes of the chip makers to release newer module versions for their hardware. OEMs dont want to support their hardware beyond few years, so you’ll hopefully buy a new phone.
The postmarketOS community (and some of the android community) works pretty hard trying to bring mainline kernel support to devices, which enables them to run generic Linux kernels, or conceivably newer versions of android than the OEM has released. But this involves reverse engineering support for this hardware.
We need some regulation that makes driver APIs and a linkable compiled version of drivers mandatory to be available upon request.
The APIs are part of the Linux Kernel, so you’d be forcing the Kernel to completely change their development policy of internal breakages being allowed. That’s a no-go.
Not necessarily. The drivers in the kernel are already released and free to use and can be linked to as long as the software linking it retains the GNU license or can claim that it’s a separate service (such as an API or separately installed service) or it has to be installed afterwards like proprietary nvidia drivers.
Either way the source code is released and if the drivers want to retain the proprietary license they the community can make a way to download and compile the driver for the current OS after install. This will save a ridiculous amount of dev time and make Linux phone OS development much easier.
There’s really no way to do this without making the whole driver source-available, as there’s no way to update it to a new Kernel without full source access. That’d be great, but the manufacturers will fight tooth-and-nail against that, especially since the drivers can contain trade secrets.
Simple. We let them get away with it. Compare:
“Your PC is out of date” “Don’t be stupid, it’s only 2 years old and still works fine” with
“Your phone is out of date” “OK I’ll buy a new one”.
There needs to be a lot more of Answer A to Statement B.
The stupidity with phones gets even worse when you consider the hardware in them and how little of it people really use… Androids are literally pocket-sized laptops.
Install Tasker and you’ve got a pretty serious workhorse.
Install Termux and it’s next level. Especially if you use proot to install a full Linux environment.
Computers have systems (BIOS, EFI, ACPI) that give the people who make the machine responsibility for providing a standard, publicly-defined way for the OS to enumerate the hardware, and to use the hardware in a basic way even if the OS has never heard of it. Linux can get a kernel panic on the screen even if it has no idea what your GPU is, because EFI understands it and Linux understands EFI. It is set up this way partly because there’s a real possibility of hardware being added or removed, partly because people routinely mix and match parts, and partly because IBM mistakenly designed a good system that was easy to work in and not one that kept them in business.
Phones (and phone-derived systems like the Raspberry Pi and other single-board computers) don’t implement a standard. The hardware and its boot process assumes tight integration between the hardware and the software, usually to the point where the bootloader refuses to load anything not signed by the device manufacturer, unless it is satisfied that it has been given that manufacturer’s permission to be unlocked. (Computer secure boot implementations generally trust, for example, Microsoft, as well as the machine owner, who can load their own keys.)
Instead of the CPU developers releasing example EFI implementations, they release forks of the Linux kernel that they maintain as long as that chip is the latest chip they sell, and then fork off the mainline kernel again for their next chip. And the device makers ship devices by starting with the chip maker’s kernel, customizing it for the device, giving it a “device tree” that tells it everything that is supposed to be in that particular device, and shipping it. For a few years they port patches from the current kernel onto this forked kernel, and then they stop. With no standard to develop software against, and no documentation for what’s in a device and how to use it like there is for the standard’s interfaces, the only practical way to run software on a device is to start with that patched kernel.
Mainline Linux refuses to adopt and maintain the chip and device makers’ low-quality, chip-and-board-specific kernel changes (often because they break the kernel for other uses), so you can’t generally use a mainline Linux kernel instead. If you tried to tease out and improve the device-specific patches to the point where mainline Linux would take them, the device would be hopelessly outdated by the time you were done and you would have dozens of job offers to occupy your time as a highly skilled embedded Linux developer. The work is not practical given the tiny number of people who would benefit from it for a particular device, and how little it pays off compared to just buying a new device with a more up to date forked kernel available.
“Maintaining” a device for LineageOS or other open software eventually collapses under the weight of mainline Linux’s changes and the necessary chip and device maker patches no longer being practically reconcileable.
Part of this is because the device has to connect to cellphone towers where the radio equipment is on its own lifecycle path and eventually replaced.
Eventually the feature set of a device is too outdated for the carrier’s network to syooort it.
Developer time is limited and so there is little to no value using that time to support very old hardware that would be WiFi only.
On Mobile OS updates are tied to firmware updates while on PC they’re completely seperate. Its also a severe issue on Arm based Linux PCs, if they loose support or worse never had Linux support they can be nearly impossible to use.
This is changing. Microsoft is trying to restrict Windows 10 -> uploads based on having a user-hostile TPM module to make PCs more locked down, just like phones.
Wasn’t microsoft the only phone manufacturer to ship a standard uefi on their devices? I mean before they eventually scraped what was left off of nokia.
user-hostile TPM module
I mean, the module itself is fine. Some linux distros can also take advantage of that with full disk encryption, instead of putting keys in the ram, store in in TPM which make it harder for keys to get extracted if it gets stole while on.
But of course microsoft is gonna try to use it nefariously for some DRM stuff.
It would be fine if we lived in a utopia, but not fine when corporations have the power to require that you use one, or else you can’t use their services.
So far the only companies making you use one are the multiplayer gaming companies that are using TPMs for hardware IDs to ban cheaters and expensive corporate software using them for remote attestation on hardware the company owns.
If you’re salty about the whole Windows 10 thing, you’ve got until at least October 2027 until Microsoft drops support for it (security beyond the 10 year window announced at the launch of Windows 10 cost like 5 bucks a month though) or you can install an OS from someone who’s still willing to maintain support for old hardware, like Google’s ChromeOS or maybe Linux.
It’s only really a problem if you’re unwilling to pay for (or pirate) updates and are afraid to separate yourself from the large corporations building your current OS.
I don’t think this is going to change the overall situation, it’s just a single point new system requirement, like the plausible GPU was for Vista.
Now, if they start expiring the old TPMs every few years, and Windows 12 needs a TPM 4.0 or something, then this will change the overall situation. At least on the Windows side.
The fact that perfectly capable PCs aren’t getting security updates is just part of it. Once Microsoft and other corporations can ensure that your computer is no longer completely controlled by the user (as the TPM ensures) they can start locking it down, first in the name of security, but then just like how some phones have apps that you can’t uninstall, or how printers force you to use name brand ink at a huge markup.
Yeah, a TPM is, essentially, a piece of bondage gear. It’s shackles put on you to try and convince someone else of what you can’t do. It has niche applications but it’s not a valid thing to require of the general population.
Have you got some sort of Bill Gates bondage kink?
PC operating systems are, at least to a broad degree, generic. That’s because a huge amount of backwards compatibility is built right into the PC architecture, much to the delight or chagrin of everybody depending on who you ask. There’s silicon on your processor’s die right now that’s doing fuck-all except ensuring that if you were struck by the perverse urge, you could boot MS-DOS 1.0 onto it even though it’s virtually guaranteed that you never will.
Phone operating systems absolutely are not generic, because each phone model is basically unique unto itself in terms of what hardware is in it, and backwards compatibility is not in any way a design goal. Furthermore, the entire package has to be rolled into a single unified ROM image.
There are proprietary core components in phones, notably their SoCs (systems-on-a-chip) and modems (which are often built into the SoC) which their designers jealously guard and are loaded down with patents and other IP restrictions. This hardware requires closed source drivers which must be updated or at the very least recompiled for new kernel versions if the OS is to be updated. That’s for Android, anyhow. It’s even worse for Apple devices, because they’re entirely closed and Apple is in total control of both the hardware and the software. At least they bother to support their own devices with updates for quite some time, but even they’re not absolved of fuckery – see, for instance, the deliberate slowing-down-with-updates scandal from a few years ago.
If nobody is providing source code or compatible binaries for the core hardware your phone needs in order to work, at minimum it’s going to be impossible to update your device beyond the kernel version that was last supported on it, even with a custom ROM. And all of this is before getting into locked bootloaders and other chicanery that prevents you from running your own code outside of user space on the hardware even if you had the code to run.
At the end of the day: The hardware vendors are absolutely not interested in providing driver support to end users or source code to anyone, and the handset makers and most especially the cell service carriers, at least in the US where the majority of people buy or lease their phones from said carriers, literally have a vested interest in dropping support as soon as they can get away with it. That’s because rolling out updates to oodles of individual phone models costs money to do, but they only make more money off of you by selling you a new phone.
I’d like to point out that this:
see, for instance, the deliberate slowing-down-with-updates scandal from a few years ago.
this never happened. What you may be referring to is Batterygate where they would intentionally throttle older devices based on their age and presumed battery degradation in order to give the devices a longer life span. The roll out of which did not go as smoothly. The articles also mention that since iOS 11 / iPhone 11 the phones have better battery management and monitoring.
My 11 Pro that I have bought in 2020 April is still working as well as on the day of purchase. This is after one battery swap in 2024 April, when battery degraded below 80% capacity and the system announced that performance would be throttled. It is expected that the 11 Pro lineup will retain new updates until at least 2026 September.
Now here’s the thing: these newer iPhone Pro models age so well, with just a battery swap every ~3-4 years, I wouldn’t be surprised if some movement in the EU will step up to force legislation on extending support for them. But still, six years of support is pretty good compared to most other vendors.
Because they are incentivizing us to buy new phones. It’s not a technical reason it’s a capitalism reason.
Wasn’t one of the phone companies found to be purposely slowing down older phones with each new update
Apple aggressively throttled CPUs when new models came out.
They claimed it was due to age of batteries and to prevent overheating. But then Samsungs started exploding and I think people just let it go.
Not sure if they still do it or not.
Not so much overheating as dropout. Batteries lose both energy capacity and power capacity over time. If you draw too much current from an older battery, its voltage will drop significantly and possibly prematurely shut down the phone.
Lowering peak current (by slowing down the phone), can prevent your phone from shutting off while it still has like 20% capacity left.
Considering Apple was doing battery replacements for like $60 (before bumping to $100), and this was a setting that could be turned off, I think the only real crime was enabling it by default and not properly informing users.
Everyone dunks on Apple for throttling older batteries but the fact is this was super pro-consumer move. It prevents the phone from randomly powering off because the SOC tries to pull a burst of energy that the battery is too tired to output, and resets following a battery replacement, plus nobody notices the throttling except under synthetic benchmarks where you actually have performance numbers to see the handful of percentage points of performance difference. AND after this kerfuffle they added a toggle switch where if you so prefer random instability on an aging battery over 2% slower turbo performance you can choose to have that.
the exploding has nothing to do with this throttling tho.
That was Apple
“Battery degradation”
I mean… that’s a true thing that happens and must be compensated for unless you want your phone to randomly die at 20%. Android phones do it, too. I’d rather my phone slow down at 10% than have it just cut out and die.
It wasn’t slowing down the phones at different battery percentages, they were essentially derating the hardware under the premise of battery management, and iirc they got called out and said “you’re right, but buy new phones anyway, yours are old.” I don’t recall the specifics, but it just seemed super shady.
With that username, I trust this answer completely.
and now people , some of thema re. realizing the current iteration of phones, iphones, samsungs are really no different from the last few generations.
Operating systems for computers are generic, operating systems for phones are specific
This is the crux of the problem, there is no single repository where a mobile operating system has been made to generically work anywhere
Even for Linux there is a end of life for devices: https://linuxiac.com/linux-kernel-to-drop-support-for-legacy-i486-and-early-586-cpus/
The difference to phones is that around Linux everything is open source so that some poor shmuck ho still has this old computer and is capable can keep supporting it for everyone. When it comes to phones it’s much more difficult because a lot of the parts are closed source. Similarly to Mac OS and Windows.
It won’t last forever though…
A lot of the non-upgradability is the pursuit of smallest form factor. But then everyone throws a case on it anyways. Miniaturization has diminishing returns and we hit that long ago with laptops.
Eventually we’ll hit it with phones, and then it’s just a matter of time till a solid “base” with swapable components come out. There’s been a couple already, but they still require a sacrifice of size or speed/power.
That’s why manufacturers are trying to push us to watches or glasses. They need to shrink the form factor to keep up the (insanely profitable) strategy of selling a brand new unit every 2 years.
Eventually we’ll hit it with phones, and then it’s just a matter of time till a solid “base” with swapable components come out. There’s been a couple already, but they still require a sacrifice of size or speed/power.
I’d honestly argue that we’ve more or less hit it already, since a lot of phones over the past few years haven’t really changed from the template of being a black glass rectangle with some buttons on it.