Smartphone usage must be pretty close to saturation point, in the developed world at least. Samsung, Apple etc release a new, expensive device every year, and it's natural that they are going to want existing customers to upgrade.
I think the only way Android users (of non-Google devices, that is) are going to get software upgrades is if Google somehow forces vendors to do it.
It might be enough for a single vendor to "break ranks" and go with treble to have a decent effect. Xiaomi did so with their large batteries, for example.
I'm more an Android guy, so I don't have an iPhone (except for testing on mobile apps I'm working on), and so I don't know what the update situation is like. But my (limited!) understanding is that when they release new iOS versions they are available at least a couple of generations back - is that correct? Or if you buy a network locked phone is it up to the network?
Depending on the nature of the update, iPhone updates are generally 3–5 generations back. Just on the iPhone side, iOS 10 has some level of support on the iPhone 7 (current generation); iPhone 6s (-1 year); iPhone 6 (-2 years); iPhone SE (slightly updated iPhone 5s); iPhone 5s and iPhone 5c (-3 years); and iPhone 5 (-4 years). That’s five generations of support for iPhone.
They are a little more aggressive with iPad and iPod touch deprecation, but I think that’s because some of those devices were built underpowered anyway.
iOS updates are pushed directly by Apple. There's also "carrier updates", which I believe are also pushed by Apple, that update network settings and enables certain features
when the carrier support them (VoLTE, Wifi-Calling, etc).
Smartphone usage must be pretty close to saturation point, in the developed world at least. Samsung, Apple etc release a new, expensive device every year, and it's natural that they are going to want existing customers to upgrade.
I think the only way Android users (of non-Google devices, that is) are going to get software upgrades is if Google somehow forces vendors to do it.