Funny, the comment types here are the same as on Youtube:
- “I still run Android and it is totally fine, will never switch Android just got worse!”
- “Well, money”
- “Companies need to support phones longer”
- “I just use LineageOS on that device”
- Misinformation
Google really needs to decouple the hardware from the OS. There’s no good reason newer Android couldn’t be installed on older phones.
Google doesnt do anything here. The OEMs need to port the Android kernel to older hardware.
They often just support one LTS kernel.
But Android even supports the LTS kernel for 6 years now.
You can run new android on an old kernel, see lineageos
Yes and this is not secure. The kernel runs as root.
You can, but often you lose certain APIs or need to fall back to software compensation for stuff that’s supposed to be hardware backed. Custom ROMs won’t pass validation without fixing this, but custom ROM users probably don’t care as much. There’s no way commercial vendors will be able to push Lineage to mobile networks or get access to the Play Store through official means.
Wrong. Google had multiple projects like Treble to decouple the software from the hardware. What happened with it?
Google develops Android and thus is responsible for it’s update scheme. They already changed it quite a bit in the last years with GSIs and Project Treble but there’s still no real seperation that would allow the same drivers and hardware blobs to be used independent of the Android Version or updating the Android version without these needing to be included every time.
That’s what needs to change.
Their own phones have support for the mainline kernel. It is the vendors that dont want to upstream their drivers and produce half-proprietary garbage they dont publish, so nobody can update these devices.
But Googles decides, that that is possible. I fthey changed the structure to enforce a seperation there’s nothing that would keep Android updates from those devices. Put all hardware and device specific stuf in a seperate layer and have it accessible to the updatable system. And it’s not like these vendors have an alternative to go to
Could you elaborate?
Android uses Linux, a monolithic kernel. You cant just separate drivers.
I also heard that OEMs write horrible drivers, which wouldnt work on a microkernel without maaajor porting issues.
And there are Linux distros with rolling releases, where the drivers stay where they are and the OS around them gets updated without issue. I’m sure the smart people at the Android team could do something similar
The drivers are in the kernel, kept updated with every release. As I said, pixels at least boot with mainline kernel support, but the Android kernel is modded.
And then manifacturer use out of tree drivers as core part of their kernel.
Yes I know the manufacturers do, but there’s no reason for the drivers to be replaced when the kernel is updated, you could hold them separately or reapply them after an update
Google develops Android, but vendors fork Android. Google can’t update Samsung’s Android because they’re not the same code base. The situation is not dissimilar to the relationship between Debian and Pop_OS, or Arch and CachyOS. Google (Debian, Arch) can patch their repos and distribution, but if Pop and Cachy update their copies, their users won’t get any updates.
Out of frustration about this, Google is pulling more and more stuff into Google Play Services, like the Chrome runtime, the location framework, contact tracing, you name it. Many open source enthusiasts absolutely hate that, but it’s a direct result of vendors not applying freely available patches to their ROMs.
Google offered (and to some extent still offers) to make updates for vendors, but almost nobody bought phones that came with their ROMs. Vendors didn’t want Google’s ROM because their software is the only reason to pick their glass bricks over their competitor’s. That’s why only cheap, pretty shit budget phones still carry Google’s ROM these days.
With GSIs, Google did actually write a HAL that should make binary drivers compatible across versions. The custom ROM I’m currently using doesn’t even seem to package these drivers, they’re left in the /vendor partition and loaded like normal. Some drivers need to be linked against the specific kernel because they’re devices Google hasn’t thought to make an abstraction layer for yet, but things like camera drivers are now decoupled.
This is why GSIs exist in the first place. Unfortunately, the lack of upstream kernel code from companies like Qualcomm means that power management and some other hardware is completely broken if you just flash a GSI on a random phone.
A big problem with specifically Samsung phones is that Samsung refuses to load their camera firmware if you’ve unlocked the bootloader on some phones. The entire OS is designed to make the camera work regardless of ROM image, but Samsung chooses to sabotage alternative ROMs anyway. Google can’t fix that.
The kernel is the problem