How to tell if the phone you’re considering is any good if you put custom roms on it?
Checking that it has a LineageOS build is a good first step. But it’s still a gamble. Not everything works for all phones out of the box, and sometimes the optional Google Apps flashing is assumed and that will paper over any cracks or not working features without it. It makes me wish there was something like protondb for android phones. Lacking that, here is my experience running LineageOS (with microG instead of Gapps) on a OnePlus 6 (and to a lesser degree a OnePlus 3).
The OnePlus 3 that I bought last year was my first properly de-Google-fied Android device I had ever had: No Gapps, no Google play services, just LineageOS. Which is still “Google” according to a friend I met at the 2019 OggCamp but I challenge anybody to explain to me how and why, as no data is being passed to Google’s servers. Anyway, the OnePlus 3 was shortlived. I killed it to death with my own clumsy butterfingers after it ended up on a tile floor. Shortly afterwards, I bought a used OnePlus 6 that has lasted so far 6-7 months.
In the past I had flashed several phones mostly out of curiosity and a desire for playing with root (cue “Boss of Me” by They Might be Giants). After a couple of years with GooglePhones, I wanted a purge for slightly different reasons:
- less crass commercialism and junk
- a simple, functionalist aesthetic devoid of branding
- being disturbed and distracted less
- less tracking
In a sentence: Less is more.
And since I’m not that idealistic, a good lineageOS target seemed a better deal than proper FOSS phones (Volla, Pine, etc.) because a) a decent used model is much cheaper for better hardware, and b) I know what applications are available to me on F-droid and I didn’t care to invest time in learning smartphone all over again.
So, this is a strange kind of review. A good phone to me is not marked by the features that leave smartphone enthusiasts breathless but one that works reliably and in as boring a fashion as possible.
On this and the OnePlus 3 I have opted for the LineageOS + microG images. microG is an attempt at making a Google Play Services replacement that does not rely on proprietary services. Basically if an application relies on Google APIs there’s a chance microG can fool it into thinking that everything it needs is available on the phone. It is not included in mainstream LineageOS because the maintainers have objections to signature spoofing which is apparently required for microG to work.
There are advantages to having microG over not having microG if I don’t have Gapps installed but for my use case none of them are major. Firstly, microG mimics some Gapps APIs so some Gapps dependent applications are fooled. The maxim about not all and not all the time applies. Secondly, in addition to mimicking the Google location output API, it also works with Mozilla’s Location Service as an alternative source of location hints.
I think it’s the latter that’s the main attraction for me. Any incremental bonus over pure GPS matters when you don’t have access to Google location precision. As for the former… I do occasionally crack and install apps from Google’s app store through Aurora or similar – WhatsApp on a recent trip abroad among others – but as a general rule I live on F-droid feed and needless to say, those cannot have Gapps dependencies.
I have performed no tests, so sadly I’m unable to say if it makes an appreciable difference, both in terms of location precision and in terms of proprietary apps not crying about missing Google. But as far as I can tell, it does no harm and might do some good. I have contributed to Mozilla’s project many times – collecting and uploading cell tower location information – so they should know my local area by now.
The OnePlus 3, bought in the summer of 2021, was the first smartphone where I attempted this sort of thing. I declared it a success at the time but a charge lasting the whole day was a rarity. Location in particular would suck the juice right out of it. I’m happy to say that the OnePlus 6 is a vast improvement. Being used devices both of them obviousy means that I cannot say if this is mostly a difference in previous owners. However, the fact that even actively using location on the OnePlus 6 is not a battery death sentence leads me to think that LineageOS sips gentler from the 6 than the 3. If I forget to charge it over night, I can generally get by the next day, assuming generally light use.
Location on LineageOS with microG is never going to rival Google performance. I believe that thanks to microG the phone can rely on tower signals in addition to pure GPS signals but I’m not that into the technical details. I can say that it feels like the best non-Google location experience I have had, simply in that it doesn’t require me to be standing in an open field before it will give me a fix. Walking outside in a middle size town and I will usually get a location after a few seconds. Inside is trickier but then I usually know where I am when I’m inside. I have yet to test it in a major city where GPS will likely be totally drowned out but I’m going to Warsaw in a month and will update afterwards.
There is what I suspect is a bug where I cannot get any location no matter how good the conditions are. The fix is fortunately simple: Reboot and it will get it. To me it’s not a dealbreaker having to reboot once a week but reasonable minds may differ on that.
One of the reasons that I opted not to go all out freedom phone – e.g. a Pinephone or a VOLLA – was the lack of 802.11ac. Because of some driver/license constraints, neither of the two have chips with ac wifi, only n. I still remember the first laptop where I replaced the n network card with an ac model. It’s hard to go back to that once you have gotten used to ac.
Still, I found the wifi performance of the OnePlus 3 deeply underwhelming and I suspected that something was off. An rsync job of a few hundred megabytes would takes minutes. I don’t know exactly what proprietary bits end up in lineageos or how, but I’m guessing there’s a blob gap between the 3 and the 6 with the latter as the winner. At any rate, this does not apply to the OnePlus 6. A quick speedtest.net test over my wifi confirmed that it is capable of several hundred Mbs/s.
LineageOS is pretty mature. A tablet that stopped getting updates over a year ago and will live forever on LineageOS 16/Android 9 (includes Gapps) does crash occasionally, provoked by a web page or just mood. The OnePlus 6 has reboot-crashed maybe 3-4 times in about 6 months and once – without much provocation – it hard crashed to a black screen saying QUALCOMM in red text and some error message or other. However, it is nowhere near the point where I do not consider it completely dependable as a daily driver.
I am not in a position to compare much else, like camera support etc. For sure, my photos look less glamorous than those from iphone owning friends but that could just be the subject matter. I don’t play mobile games other than Wordle so I cannot testify to graphics driver support.
The hardware buttons – including OnePlus’ customary don’t disturb slider – were supported on both phones. As are the fingerprint detector to my surprise. I have owned several laptops with fingerprint unlockers and none of them have ever had linux support. On reflection, that would have required either alternative open source drivers or a vendor that cared to make proprietary drivers for linux. All that’s required here is for the android drivers to be allowed to be distributed, a somewhat easier bar to clear. I am surprised at how much I have found myself using and appreciating the feature.
The OnePlus 6 has received a drip feed of updates since I installed it and early this summer it asked me to do a manual update (i.e. flashing a new image from my PC) so I could continue on LineageOS 19 (aka Android 12) rather than the version 18, that I had started it on. Obviously maintainers come and go but it feels like somebody out there still cares for this device and hopefully will for a good while longer. The microG folks (or probably their cron jobs) are also really quick to build their version on top of mainstream LineageOS as soon as updates appear upstream.
As for the original install/flashing, it went by as painlessly as could be expected. Obviously the usual caveats apply – really, really read through everything on the wiki before flashing, and double check that the device is the exact one that the firmware applies to – but as long as you’re aware of that and reasonably comfortable with the process it’s no harder or worse than any custom rom flashing job.
Basically, I think the OnePlus 6 is about as close to the perfect candidate for anybody looking for a boring phone. For 1000 kr. (about 130$/€) I got a really nice, only slightly used model that I hope/expect to last for two years, hopefully longer, depending on updates and butterfingers. You can definitely go cheaper and still accomplish everything a boring phone should – e.g. the OnePlus 3 that I got for half as much – but more recent hardware is more likely to get updates for longer and the savings tend not to match the age difference. In other words: Saving 65€ does not make up for a battery that’s been used for two years longer, even if all the other differences didn’t matter to me.
I started this “review” saying that I had opted not to go with a real linux phone. Which is true. I feel like there are so many other things I would rather invest my time in than having a toddler-as-phone that I would need to worry about constantly.
However, what if somehow the model I am now using a daily driver should somehow be replaced in that slot by something newer and fancier? But still be working (i.e. not claimed by the tile floor)? Well, before settling on it, I did check the PostmarketOS enchilada device page. And the Ubuntu Touch device page. And hey, support for the OnePlus 6 on those OSes is pretty good. Which just adds to the appeal. Right now, all I want for it is boring, but someday it might actually get used for something fun and exciting.
person holding android smartphone © Denny Ryanto, Unsplash license