4 ms·
I'm having a heckuva time reading the tea leaves on GKI. On the one hand, we might actually be able to upgrade kernels! Neat, overdue, necessary. S24 has 7 yea
by jauntywundrkind 3y ago
I'm having a heckuva time reading the tea leaves on GKI.
On the one hand, we might actually be able to upgrade kernels! Neat, overdue, necessary. S24 has 7 years of updates! Why & what changed? Well, there's decent upstream support. Ok, so they can keep the computer running. But the phone is basically a whole second system, and GKI promise to let them keep the phone parts running along as is, while the computer part changes. This is cool.
I'm a bit scared though too. We're opening a pandora's box where a good portion of the computer's drivers are no longer running on Linux. How many of the upstreaming efforts that are now underway will be undermined by folks running vendor blobs against the stable & closed Google Kernel Interface, instead of the changing & GPL Linux Kernel Interface? GKI seems like an insane threat to mainstream winning; it's a totally parallel constructed world designed to avoid the need to mainstream, and that's basically a horror.
I'd love to see a Google Kernel Interface run on a non-Android device. If I can run a Debian phone & have all the fancy bits and bobs work, I won't feel so bad about GKI. But it feels like GKI is custom-bred for Android specifically, and that Google is pulling off the mother of all Embrace, Extend, and Extinguishes against Linux, is finally going to subvert & dethrone the Linux kernel by wrapping it & making everyone target that (& have the wrapper be ultra-coupled to Android).
- zozbot234 3y agoGKI is short for Generic Kernel Images. Android kernels have always been heavily forked compared to mainline, this is not a new feature of GKI's. And if anything, the distance is shrinking over time, not getting larger. It's not Google's fault that manufacturers' BSP's tend to rely on proprietary blobs, that's always been common throughout the embedded ecosystem. > If I can run a Debian phone & have all the fancy bits and bobs work, I won't feel so bad about GKI. You can try Droidian, it's a Mobian fork configured to run as a GSI. You'll be running proprietary kernel modules and relying on Android's low-level layers (which is a somewhat unstable arrangement, since we don't know how these may change in future devices) but at least the system level and UX will be a plain Linux userspace.
- mschuster91 3y ago> It's not Google's fault that manufacturers' BSP's tend to rely on proprietary blobs, that's always been common throughout the embedded ecosystem. If there is one entity that could have changed this years ago, it was Google, especially after Microsoft ditched Windows Phone. Look, I'm no friend of big corporations strong-arming their will around, but in this case it might have been good for once. Instead, you get a hellscape of Samsung messing around deep in Android Core (as everyone who wants to develop a long-running background app is likely to hit), and rooting being an extremely painful process that will brick about half the apps on your phone.
- jauntywundrkind 3y agoGood reply, thanks. I agree, the distance between Android and mainline has been shrinking and that's wonderful to see. Agreed again, no one has been upstreaming a good amount of their work; that's the state of the world. I'm not totally willing to absolve Google of all fault/responsibility here, but I understand-ish. I'm still not sure though that GKI doesn't let us backslide, doesn't let folks do even more closed, doesn't reverse some of our gains. As for Droidian & the ilk; I'm happy these exist. At the risk of once more going over the top though: I feel very differently about running my own Linux userland hoisted far atop a tower of controlled, locked-down platform I don't have access to, than I do having actual access to devices. It's wild how not our own our devices are. Maybe I can run a userland, but if I cant coordinate bluetooth devices and audio and display outputs myself, it's not really a good userland. And if Google SafetyNet is underfoot controlling my most personal machine forever, well, that's a sad shitty anti-user feature the future is being consigned to.
- charcircuit 3y ago>We're opening a pandora's box where a good portion of the computer's drivers are no longer running on Linux. What do you mean by this? Device drivers are still running on Linux. >How many of the upstreaming efforts that are now underway will be undermined by folks running vendor blobs against the stable & closed Google Kernel Interface Keep in mind that the KMI (kernel module interface) is only stable within the same LTS release. When upgrading to the next LTS there can be breakages since Linux still hasn't made a stable API for out of tree developers to use. >instead of the changing & GPL Linux Kernel Interface The interface is the same normal interface as any other kernel modules. It's up to the kernel module's developers if they wish to use GPL exported symbols or not. >GKI seems like an insane threat to mainstream winning I see it as being mostly neutral as it's goal is for being able to deliver security updates to phones by just swapping out the kernel. It's slightly beneficial in the sense that the code for the initial startup of the system has to be upstreamed since the kernel has to be able to boot far enough to get to the point where it can load vendor kernel modules. >it's a totally parallel constructed world designed to avoid the need to mainstream The world where there is code that can not be upstreamed already exists. GKI is about cleaning up the boundary of where upstream code lives and where third party code lives making each piece more modular. >I'd love to see a Google Kernel Interface run on a non-Android device As mentioned by a sibling GKI stands for Google Kernel Image and you could run it on a non Android device if you wish as it's open source including information like what version of the compiler should be used. >& have the wrapper be ultra-coupled to Android There is no wrapper here. There are a few additional patches to the kernel that add some hooks for vendor kernel modules to use, but kernel modules do not have to go through a wrapper.