I really want to turn this phone into my daily driver, so i started working on one of the features i would want in a daily driver, working GPS.
This is the current component support table of postmarketos:

i think audio is too complex for me, so i decided to tackle GPS, as you can see its currently listed as broken, but not anymore!
It really helped i have another FP6 running android, i could directly inspect how it was talking to the modem to get it working.
So i started pulling threads and here we are. I want to upstream this and i’m making an account so i can submit patches for modemmanager and libqmi, but i have never upstreamed something before, so advice is appreciated!
If you have a linux phone and want to use it as a daily driver, see if you can contribute it! this is how we build up the linux ecosystem.



I have no experience with mobile audio, but on the desktop it can be surprisingly simple (often just a matter of an ALSA quirk or two), so don’t discount it without looking into it.
Yeah, it’s likely just a buffer needs to be filled with amplitude samples, and sample frequency plus bit depth needs to be programmed (and volume). Then from there it’s just a matter of adding codecs to decode/decompress various audio formats from media (which would be the same code as on desktops, though complied for ARM or whatever instruction set the phone’s CPU uses).
Oh also, there’ll be determining the method it handles multiple channels (separate buffers or some sort of interleaving in a single buffer?).
And then adding virtual buffers can help with output device management, as each output might use a different buffer, so having apps writing their audio to a virtual buffer means your code can manage things like the user switching from phone speaker to aux cable or bluetooth (which is a whole other beast and involves encoding the audio to specific codecs to make up for the relatively low bandwidth available).
Though whatever is already there could add complexity, but my guess is it’s just a matter of matching memory mapped addresses up and then the existing linux audio code will handle the rest.