Hi everybody,
I’ve been unable to make sense or gain better understanding of the Android update system, so I’m asking here.
Coming from the linux desktop, there’s two main parts of the system: the kernel and the userland. I could simply update the kernel without updating userland and vice-versa.
But does it work the same way on Android? Why are we so dependent on OTA updates from the individual manufacturer? I understand that microcode is proprietary and can come only from the device manufacturer, but aren’t kernel updates and userland decoupled from this (for devices which support project treble and GKI)? Can’t I just run a different FOSS launcher, get the upstream GKI kernel and run it with the microcode offered by the manufacturer?
What consists of an Android “version”? Can’t I just not update the microcode beyond what the manufacturer provides, and instead keep updating the kernel (by “kernel” I mean GKI and not the actual linux kernel) and userland and in essence keep updating my android version?
I’m probably missing some fundamental understanding of android here, which is why decided to ask here. Thanks for your help!
Is that also how custom ROMs like LineageOS do it? My phone (Nothing Phone 1) isn’t supported anymore and it has really annoying issues that I’d like to fix by becoming the maintainer for that ROM but I have no idea how that whole thing works and where to find how to do this.