The problem isn't the carriers, or manufacturers either. Android itself is architecturally flawed, as well as iOS. Their design is monolithic. You can't patch it or update it piecewise. Each "update" is almost always an entire software reload. Desktop OSes, like Windows are modular. If a flaw is found in a browser control, Microsoft can just update that control, without having to recompile everything and forcing everyone to reload the entire OS. Manufacturers are unable to patch their old phones because they can't separate the parts that support the phone's unique features from the common code that is flawed, The OS won't let them! iOS isn't much better. However, Apple is a sole source and uses its dominant position to bully the carriers to adhere to their update process if they want to sell iPhones.