Xiaomi POCO F1 (xiaomi-beryllium)/sxmo

From postmarketOS

Sxmo on the poco f1 has an issue with call audio on the newest release of postmarketOS that requires a workaround (installing the sxmo-common-pulse package). Please see: https://gitlab.com/postmarketOS/pmaports/-/issues/1821

This page is an abridged version of a blog post. The blog post was moved to the postmarketOS wiki so users can help update the info. Please improve the technical details, add your own use-cases for this device with Sxmo, and improve the grammar including removing the first person.

For information about how other devices work with Sxmo, see Sxmo device support page.

Sxmo on the poco f1. Note the notch does not obstruct the UI.

Unlocking the bootloader

To unlock the bootloader: you must insert your sim card into your poco f1, make a Xiaomi account with your phone number, and beg Xiaomi to unlock your device via the proprietary windows only application [1]. Xiaomi’s unlocking application did not detect that my poco f1 was connected and I had to install the “Mi PC Suite”. I downloaed Mi PC Suite from here but be advised that the website is not served over https and overall kind of suspect. I used this program because I could not find a reliable source for the USB drivers for this device after searching for hours. Unlocking the bootloader took me 4 hours in total and it was a painful experience. I will probably have to reinstall windows on my burner laptop.

I was told that Xiaomi sometimes makes people wait a couple of weeks to unlock their phone and during that time, they must use the phone with the simcard installed. In other words, an even bigger privacy nightmare than what I went through. Luckily, I didn’t have to deal with Xiaomi denying my unlock request.

Flashing TWRP to my phone via fastboot was trivial.

Installing PostmarketOS

PostmarketOS gained support for calling in the stable branch after I got my poco f1 and the distro has prebuilt images for the poco f1. However, I like customizing my install via pmbootstrap and followed the wiki to find out which panel my device had and made sure pmbootstrap installed the right image. Overall, installing postmarketOS+Sxmo with full disk encryption was no issue.

Notch

The notch was a bit annoying but User:F told me I can add bar { gaps 43 0 } to my sway config to make sure the notch doesnt cover up UI elements. Ideally, we will have gap support preconfigured for users in Sxmo via our deviceprofiles [2].

Calling/Texting

Calling and texting work fine. DTMF tones used to not work but ModemManager now supports it.

Sometimes received texts appear multiple times in the text log but this might be a bug in Sxmo.

Suspend

Closely related to calling and texting is how the phone behaves when suspended. The phone will not wake from suspend when you receive a call or a text. As far as I can tell, the phone will not silently drop received calls or texts while it’s in suspend. Overall, the battery life on the poco f1 with Sxmo lasts me all day and the phone works well in suspend. The phone connects to wifi very quickly when coming out of suspend. In contrast, on the pinephone, I would wait forever for the radio to connect to wifi.

Web Browsing

The web browsing experience on the poco f1 with Sxmo is very smooth. On the pinephone, the performance was so bad that I stopped using my phone. This was very healthy for me but when I was out at a restaurant, I would often have to use my friend’s phone to read the menu. No more with the poco f1! I can use firefox with all the privacy friendly addons I love and still have a very smooth experience. No matter the benefits of the pinephone, I cannot give up the superior web browsing experience on the poco f1.

Bluetooth

The Bluetooth devices connect quickly and the audio quality is good on the poco f1.

Audio Speakers

Aside from the slight echo the caller on the other side will hear, call audio is perfect on the poco f1 and much better than the pinephone. However, the audio on the speakers is too low when playing media from firefox/mpv. This is an issue with pipewire on the poco f1 [3].

PulseAudio works fine.

Dino/Neomutt/Everything Else

I would often run out of ram and cpu on the pinephone. It’s nice that postmarketOS uses musl which aims to have safety under resource exhaustion. However, I had to close firefox/dino on the pinephone if I wanted to play gnome-chess or open some other app even on a lightweight UI like Sxmo. With the poco f1’s octacore cpu and 6 gb of ram, I no longer have issues with opening heavy webpages or opening multiple apps. According to the postmarketOS wiki, some versions of the poco f1 have 8 gb of ram. I have the 6 gb version and it works great for me.

Video playback

I can watch 1080p videos in mpv smoothly without issues.