I'm making a smartphone OS for my personal use. Gonna opensource under GPLv2 once ready.
OS kernel is Alpine Linux from https://postmarketos.org/ The entire userland is custom: graphics is on top of drm, kms, gles2, FreeType. Audio is on top of ASIO with just a few third party libraries like soxr, fdk-aac, minimp3. IPC is mostly domain sockets, input is raw input, wifi is controlled through wpa_supplicant.
Most of the code is in C#, .NET 5. Only 25% of code in C++, either SIMD heavy math like vector spline tessellation, or to consume libraries like FreeType designed to only be usable from C.
Got 2 devices to test, ARM64 Pinephone, and ARMv7 LG Hammerhead.
Graphics stack is good by now, works on both. The only large missing piece is accelerated video decoding. The highest level was inspired by MS WPF, with XML instead of XAML, and a variant of CSS for styling. Performance is OK, uses couple percepts CPU while rendering animations at 60Hz, because GPU-centric architecture all the way down. Found a freelancer to help with GUI design, so far so good.
Audio is in progress: mp3 playback works, capture and high-level mixer controls missing. Too bad the LG lacks Linux kernel drivers so I'm only testing these pieces on Pinephone.
After the audio, gonna start integrating GSM modem: being able to call people is one of the use cases I care about.