I understand the frustration in Google not solving this sooner, but from your comment it seems like they have solved it (with Android 9) and you still seem annoyed?
And as I replied to another comment, that is only one example among many.
I could write about Java 12 support, audio API, the constant changes in background processes, the multiple reboots on the UI framework, how NDK is handled and plenty others.
And if they did that, instead you would have just bought a phone that was stuck on Android 6
> made OS updates a requirement of the Android licence contract
Now you're being contradictory. You want to force manufacturers to always update to the new Android versions. But you ALSO want to make Android 7 require specific hardware features. How could these requirements work together?
That is something Google could do to actually solve things - make the OS binary compatible (rather than requiring device manufacturers to recompile) with driver blob plug-ins. It would require a change to the Linux driver ABI model but without know anything about Android I kind of assume they've already done that.
The first part of your solution conflicts with the second. You cannot both require new hardware for an OS version and require OS updates for old hardware.
And as I replied to another comment, that is only one example among many.
I could write about Java 12 support, audio API, the constant changes in background processes, the multiple reboots on the UI framework, how NDK is handled and plenty others.