The understatement site has an enlightening survey on how (US) phones have (or haven’t) been able to be updated to later versions of Android.
Last May, I covered the same topic and concluded that consumers have expectations that probably aren’t viable. I also mooted the idea that maybe OEMs might abandon major upgrades and only provide bug fixes. This turned out to be very contentious and I got a lot of angry feedback! Since then, upgrades have made many older Android devices easier to program for developers so I now I see the failure of this track of thinking.
Nevertheless, I know it’s very difficult and not financially viable for some OEMs to upgrade phones. Their source control practices and types of change to Android (within rather than on top of) make adding older Android version specific bug fixes and enhancements, to newer versions of the OS, difficult. It’s a problem waiting for a clever solution.