@@ 0,0 1,136 @@
+#+BEGIN_EXPORT html
+<h1 class="page-title">Sxmo on the poco f1</h1>
+<p class="date">Published 2022-04-17 on <a href="/">Anjan's Homepage</a></p>
+#+END_EXPORT
+#+OPTIONS: toc:nil
+#+OPTIONS: num:nil
+
+Recently, I tried to upgrade the modem firmware on my pinephone and failed.
+As far as I know, the modem on my pinephone is broken.
+I have a developer edition of the pinephone pro but the mainline kernel doesnt even have reliable charging working [fn:6].
+
+On the look out for a replacement device, I saw [[https://twitter.com/joelselvaraj95/status/1478971761127350275][the poco f1 and oneplus 6 have gained support for calling in postmarketOS]].
+Since I am tired of dealing with pine64 hardware and the Librem 5 is too expensive, I decided to pick up a poco f1 for 150 Canadian dollars.
+So how is the experience?
+Overall very good and I have been using it as my daily driver for 2 weeks.
+
+Here are the details:
+
+* Unlocking the bootloader
+
+Going through the process of unlocking the bootloader, I am reminded why I was so excited for the pinephone and Librem 5.
+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 [fn: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 [[http://pcsuite.mi.com/][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.
+
+Consulting the postmarketOS wiki for the [[https://wiki.postmarketos.org/wiki/OnePlus_6T_(oneplus-fajita)#Fastboot_Mode][Oneplus 6/6T]], Im not sure if the bootloader unlocking experience is better on the Oneplus 6.
+
+[[https://twrp.me/xiaomi/xiaomipocophonef1.html][Flashing TWRP]] to my phone via adb was trivial.
+
+* Installing PostmarketOS
+PostmarketOS gained [[https://postmarketos.org/blog/2022/04/18/v21.12.4-release/][support for calling in the stable branch after I got my poco f1]] and the distro [[https://postmarketos.org/download/][has prebuilt images for the poco f1]].
+However, I like customizing my install via pmbootstrap and [[https://wiki.postmarketos.org/wiki/Xiaomi_Poco_F1_(xiaomi-beryllium)][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.
+
+* Initial Setup
+
+I used =rsync= to copy my =$HOME= directory and =/etc/apk/world= from my pinephone to the poco f1.
+The notch was a bit annoying but Vitali64 told me I can add =bar { gaps 42 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 [fn:7].
+
+#+CAPTION: Sxmo on the poco f1. Note the notch does not obstruct the UI.
+#+NAME: fig:sxmopoco
+[[../images/sxmopoco.jpg]]
+
+Calling support for devices other than the pinephone is supported in the git head of sxmo-utils when callaudiod and pipewire is installed.
+I installed the git head of sxmo-utils and ran =apk add callaudiod pipewire=.
+
+* What do I do on my phone
+
+I use my phone for the following things:
+1. Calling and texting
+2. Firefox: reading rss via [[https://miniflux.app/][miniflux]], watching videos via invidious/sxmo's youtube script, and reading fediverse posts
+3. Dino: messaging friends and family on XMPP
+4. Neomutt: reading emails
+5. mpv: listening to music with my bluetooth headphones
+
+
+* The Experience
+
+** Calling/Texting
+Calling does work with a caveat - sending DTMF tones doesnt work.
+As such, you cannot interact with robocall systems.
+This has been reported to upstream [fn:2] and someone in the SDM845 mainlining postmarketOS chat said they will eventually fix 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 quicker and the audio quality is better 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.
+I am not sure whether this is cause of a bad configuration on my part and I will have to try out phosh to test.
+
+** 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 [fn:3].
+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 [fn:4].
+
+** Video playback
+
+I can finally watch 1080p videos in mpv smoothly without issues.
+
+* Conclusion
+
+I will be daily driving my poco f1 while I wait for the pinephone pro to gain mainline support in postmarketOS [fn:5].
+Other than the robocall issue, I don't find any of the issues to be "show stoppers".
+It would be nice to have the camera working and gps working on the poco f1 but the experience is impressive so far.
+The main issue I face day to day is the DTMF tones.
+Sxmo users can expect better support for poco f1 and other devices as a result of me having a non pinephone device to test.
+
+If you want to help support the SDM845 mainlining effort, see the postmarketOS wiki page https://wiki.postmarketos.org/wiki/Qualcomm_Snapdragon_845_(SDM845).
+We are very close to the days when we can buy cheap phones like we do cheap Thinkpads off ebay and install a privacy respecting OS.
+
+* Footnotes
+
+[fn:7] https://todo.sr.ht/~mil/sxmo-tickets/494
+[fn:6] The whole point of having a "Linux phone" is to have a mainline kernel that can be support forever. I really don't want to use a heavily patched kernel.
+
+[fn:5] And probably after pinephone pro has mainline support in postmarketOS since the poco f1 is faster than the pinephone pro.
+
+[fn:4] 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.
+
+[fn:3] http://musl.libc.org/about.html
+[fn:2] https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/543
+https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/542
+
+[fn:1] https://lineageosroms.com/beryllium/#unlocking-the-bootloader