The open source driver stack for Snapdragon exists and is usable. However, it doesn't match the performance/functionality for devices it supports and it's ready a year or two after the hardware is launched rather than way before that which is what would have to happen...
Conversation
So, since it's not what gets shipped, it obviously doesn't get the same resources applied to it. Over time, it's getting better and getting more resources applied but it's unclear if there will EVER be a point that devices can ship with upstream kernel unless they use an old SoC.
2
I would happily use a crippled 5 year old SoC if it was going to continue to be sustainably manufactured.
I would even settle for wifi-only if I could have my 4 apps, open drivers, and decent secure boot.
2
That's essentially what you're able to get with a development board like 96boards.org/product/rb3-pl with AOSP support. Same SoC as the Pixel 3, but in the smartphone world this is already a past generation SoC and it'll be at Pixel 5 / 6 before the open driver stack could be ready.
2
If all the past efforts / partnerships hadn't been blown up by greed, GrapheneOS would likely already be using custom hardware based on a Qualcomm reference design. Could build with the actual vendor SDK / sources in our official builds and publish output in a usable format.
1
1
It was all massively set back. Still dealing with all of that stuff far more than focusing on the actual project. Pixels are the best currently available option and will probably remain as such, until we can get reference hardware produced for us and start customizing that.
2
1
Thanks for the insight as always. Lot to mull over but overall your arguments are sound.
I think I'll bang my head at coral/flame support in APV again in a couple months if no one beats me to it.
1
Everything that matters should work simply using the stock vendor image. Unpacking it and reassembling it is needed to start replacing the components with our own builds including our own SELinux policy, building as much as possible from source and omitting what isn't required.
1
If you want to get rid of blobs you don't want any of the unnecessary non-vendor-image components anyway. AOSP passes CTS with AOSP system image and stock boot/vendor. It's wanting to modify vendor that makes this more complicated than their officially supported approach.
2
If our approach was supporting many devices and not taking a particularly close interest in any of them, that's what we would be doing anyway. People haven't been interested in working through replacing everything in vendor with our builds, alternative implementations, etc.
2
The purpose of android-prepare-vendor is enabling that incremental work, but we only ever did a tiny bit of it, i.e. replacing SELinux policies and changing a few configuration files. Could be building lots from source without even adding CAF repositories but no one worked on it.

