There are many desktop operating systems, including several open-source ones built around Linux. On phones, though, it seems like almost everyone uses either iOS or Android. Why haven't more independent or fully open-source mobile operating systems become widely adopted? Are projects such as Android, Ubuntu Touch, postmarketOS, Mobian, or GrapheneOS filling that role, and what makes it so difficult for alternatives to compete?
4 Answers
Open source alone does not guarantee adoption. Desktop Linux benefited from relatively standardized hardware and users who were willing to configure their systems. Phones are tightly integrated devices, and people generally expect everything to work immediately, including calls, cameras, payments, navigation, and messaging. Alternative systems can be useful, but they often support only a limited selection of phones or require compromises.
The biggest reason only a couple of systems dominate is the network effect. Users want the apps they already rely on, developers want to target platforms with the largest audiences, and manufacturers want an operating system that already has mature hardware support and an app store. A new system would need to solve all of those problems at once, which is expensive and difficult even if the software itself is technically good.
There actually are several alternatives, including Ubuntu Touch, postmarketOS, Mobian, and Arch-based phone projects. The challenge is that a phone operating system needs much more than a user interface: it must support many different processors and devices, cellular modems, cameras, graphics hardware, power management, app distribution, and security updates. Most manufacturers do not provide complete open drivers, so supporting hardware is a major obstacle.
Android is already largely open source and uses a modified Linux kernel. Projects such as GrapheneOS build on the Android Open Source Project while changing parts of the system to improve privacy and security. So the open-source phone ecosystem exists, but it is often based on Android rather than being a completely separate platform.

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures