Here's a fun way that this project could be applied: Take a phone that has pretty good hardware support for postmarketOS. Install a bare bones pmOS image, plus this version of QEMU, and boot iOS on and Android phone. It probably would be possible to further customize QEMU to forward all the phone hardware (modem, Bluetooth, etc.) into the iOS VM.
Very amusing idea, but:
> Take a phone that has pretty good hardware support for postmarketOS
The first problem with this is finding a phone with postmarketOS that can both use the camera and take phone calls properly. I'd settle for that without the iOS/Android emulation...
A lot of snapdragon 845 phones tend to work fairly well no?
I'm not sure what the status of the newer devices is but those older oneplus 6/poco f1 era phones tend to work well with mainline kernel:
https://wiki.postmarketos.org/wiki/Mainlining#Supported_SoCs
As far as I know, the camera barely works on any device, including snapdragon 845 phones. Now I'm not saying the snapdragon 845 is unusable as a daily driver, but it is getting a bit long in the tooth, especially since the majority of what you run on a phone is browser engines, and web sites and web applications are not getting less demanding over time.
Ah yes. It appears that nothing has changed in the last decade for the Android ROM community. Still the same experience as downloading a custom ROM from "XDA Developers" for your HTC phone in 2016 and then finding out that it can't make phone calls and is bugged beyond comprehension.
Well, to be fair, postmarketOS isn't Android. For Android I've had tons of custom ROMs with no obvious hardware issues, mostly CyanogenMod variants, over the years. postmarketOS, though, tries to run stock Linux. It's a different ballgame.
The alternate approach is actually to utilize the fact that Android is relatively better supported and wrap Android components into a standard Linux userland, using a compatibility layer like libhybris with patched vendor kernels. It's pretty ugly but if you want Linux on phone now it's your best shot at a flagship experience.
> it's your best shot at a flagship experience.
Is the Librem 5 really that far behind still?
Well, I don't have one, so I can't say with great certainty. I did, however, have a Pinephone Pro, and the experience wasn't great for a few different reasons. The Librem 5 is apparently faster, but it seems like it's not that much faster, so even if the experience is better I'd suspect it's not ready for most people. I think that's a real shame because it feels close and the target they're chasing (usable daily driver) isn't really moving as fast as it once was, but compared to a very cheap Android phone, the relatively-expensive Librem 5 is weak in almost every dimension. I considered buying it anyways... but I know damn well I can't daily drive it yet.
> It appears that nothing has changed in the last decade for the Android ROM community.
The exception: GrapheneOS. I installed without hassle over USB via my web browser (!).
Pixels are well-supported in general. It helps that they're essentially Google's reference devices.
As for flashing over USB, any device can do that thanks to WebUSB. All a website needs to know are the device identifiers for ADB mode, recovery mode, and fastboot mode.
I'd say building an image capable of booting on the phone is much harder than altering the GrapheneOS installer to actually flash that image. The process is extremely similar for most devices.
AFAIK GrapheneOS flashes everything from fastboot (i.e. no recovery step). Implementing adb sideload protocol shouldn’t be too tricky though.
I'm running a custom ROM on a Galaxy S8 (so without project treble) and I've been pleasantly surprised!
Even something as niche as the swipe on fingerprint sensor to pull notifications drawer down still works!
Everything from phone calls, camera, fingerprint, all the essentials work pretty much flawlessly.
Which custom ROM?
If it’s just for fun, sure. However in practice this would be incredibly inefficient and not a usable device by any means, plus it would be a tremendous amount of work.
Kinda like paravirtualization? That sounds like a fun project!