I'm sorry to announce that I gave up on the Fairphone series and switched to a Google Phone (Pixel 4a) running CalyxOS.

  1. Problems in fairy land
  2. Do no evil, do not pass go, do not collect 200$
  3. CalyxOS: success
  4. Migrating data
  5. Known problems
  6. Conclusion

Problems in fairy land

My fairphone2, even if it is less than two years old, is having major problems:

Some of those problems are known: the Fairphone 2 is old now. It was probably old even when I got it. But I can't help but feel a little sad to let it go: the entire point of that device was to make it easy to fix. But alas, because it's sold only in Europe, local stores don't carry replacement parts. To be fair, Fairphone did offer to fix the device, but with a 2 weeks turnaround, I had to get another phone anyways.

I did actually try to buy a fairphone3, from Clove. But they did some crazy validation routine. By email, they asked me to provide a photo copy of a driver's license and the credit card, arguing they need to do this to combat fraud. I found that totally unacceptable and asked them to cancel my order. And because I'm not sure the FP3 will fix the coverage issues, I decided to just give up on Fairphone until they officially ship to the Americas.

Do no evil, do not pass go, do not collect 200$

So I got a Google phone, specifically a Pixel 4a. It's a nice device, all small and shiny, but it's "plasticky" - I would have prefered metal, but it seems you need to pay much, much more to get that (in the Pixel 5).

In any case, it's certainly a better form factor than the Fairphone 2: even though the screen is bigger, the device itself is actually smaller and thinner, which feels great. The OLED screen is beautiful, awesome contrast and everything, and preliminary tests show that the camera is much better than the one on the Fairphone 2. (The be fair, again, that is another thing the FP3 improved significantly. And that is with the stock Camera app from CalyxOS/AOSP, so not as good as the Google Camera app, which does AI stuff.)

CalyxOS: success

The Pixel 4a not not supported by LineageOS: it seems every time I pick a device in that list, I manage to miss the right device by one (I bought a Samsung S9 before, which is also unsupported, even though the S8 is). But thankfully, it is supported by CalyxOS.

That install was a breeze: I was hesitant in playing again with installing a custom Android firmware on a phone after fighting with this quite a bit in the past (e.g. htc-one-s, lg-g3-d852). But it turns out their install instructions, mostly using a AOSP alliance device-flasher works absolutely great. It assumes you know about the commandline, and it does require to basically curl | sudo (because you need to download their binary and run it as root), but it Just. Works. It reminded me of how great it was to get the Fairphone with TWRP preinstalled...

Oh, and kudos to the people in #calyxos on Freenode: awesome tech support, super nice folks. An amazing improvement over the ambiance in #lineageos! :)

Migrating data

Unfortunately, migrating the data was the usual pain in the back. This should improve the next time I do this: CalyxOS ships with seedvault, a secure backup system for Android 10 (or 9?) and later which backs up everything (including settings!) with encryption. Apparently it works great, and CalyxOS is also working on a migration system to switch phones.

But, obviously, I couldn't use that on the Fairphone 2 running Android 7... So I had to, again, improvised. The first step was to install Syncthing, to have an easy way to copy data around. That's easily done through F-Droid, already bundled with CalyxOS (including the privileged extension!). Pair the devices and boom, a magic portal to copy stuff over.

The other early step I took was to copy apps over using the F-Droid "find nearby" functionality. It's a bit quirky, but really helps in copying a bunch of APKs over.

Then I setup a temporary keepassxc password vault on the Syncthing share so that I could easily copy-paste passwords into apps. I used to do this in a text file in Syncthing, but copy-pasting in the text file is much harder than in KeePassDX. (I just picked one, maybe KeePassDroid is better? I don't know.) Do keep a copy of the URL of the service to reduce typing as well.

Then the following apps required special tweaks:

I tried to sync contacts with DAVx5 but that didn't work so well: the account was setup correctly, but contacts didn't show up. There's probably just this one thing I need to do to fix this, but since I don't really need sync'd contact, it was easier to export a VCF file to Syncthing and import again.

Known problems

One problem with CalyxOS I found is that the fragile little microg tweaks didn't seem to work well enough for Signal. That was unexpected so they encouraged me to file that as a bug.

The other "issue" is that the bootloader is locked, which makes it impossible to have "root" on the device. That's rather unfortunate: I often need root to debug things on Android. In particular, it made it difficult to restore data from OSMand (see below). But I guess that most things just work out of the box now, so I don't really need it and appreciate the extra security. Locking the bootloader means full cryptographic verification of the phone, so that's a good feature to have!

OSMand still doesn't have a good import/export story. I ended up sharing the Android/data/net.osmand.plus/files directory and importing waypoints, favorites and tracks by hand. Even though maps are actually in there, it's not possible for Syncthing to write directly to the same directory on the new phone, "thanks" to the new permission system in Android which forbids this kind of inter-app messing around.

Tracks are particularly a problem: my older OSMand setup had all those folders neatly sorting those tracks by month. This makes it really annoying to track every file manually and copy it over. I have mostly given up on that for now, unfortunately. And I'll still need to reconfigure profiles and maps and everything by hand. Sigh. I guess that's a good clearinghouse for my old tracks I never use...

Update: turns out setting storage to "shared" fixed the issue, see comments below!


Overall, CalyxOS seems like a good Android firmware. The install is smooth and the resulting install seems solid. The above problems are mostly annoyances and I'm very happy with the experience so far, although I've only been using it for a few hours so this is very preliminary.

comment 1

I bought myself the Pixel 4A a few weeks ago as well. Did you consider GrapheneOS? I'm currently giving stock Android a spin, but have debated whether in the future I'd want to try GrapheneOS or stick with the slightly more traditional setup of CalyxOS.

For OSMAnd, I initially ran into a similar problem. I plugged my old phone into my laptop via USB and used adb-sync to slurp down the entire net.osmand.plus directory. After installing OSMAnd on the new phone, I plugged it in to my laptop and pushed that directory back out. That restored everything on the new phone: tracks, waypoints, even map tiles, voice files and the travel wiki stuff. (Pushing maps etc out over USB was much faster than downloading it fresh on the new phone via wifi.)

But then I wanted to use Syncthing to sync the net.osmand.plus/files/tracks directory with my laptop. I promptly ran into the silly Android filesystem permission limitations. Eventually I figured out that in the OSMAnd settings I could go into "Data storage folder" and select the "Shared memory" option. That moved the folder to /storage/emulated/0/osmand, which I guess has looser permissions. I now have Syncthing configured to sync /storage/emulated/0/osmand/tracks. It can read and write to that folder. Everything works great.

Comment by Pig Monkey
OSM shared storage FTW!
OMG that just worked. I just went into Settings -> OSMand Settings -> Data storage folder and picked Shared memory. I chose "do not move", OSMand crashed, and then on restart everything was back up magically. Amazing. Thanks Pig Monkey, whoever you are! ;)
Comment by anarcat

I did not know about Graphene... is that the new Copperhead? i actually like the fact that Calyx ships with microg, it's a compromise i would do myself when i would flash with LOS, in the past, so that's perfect for me (and it seems Graphene explicitely doesn't do that). Also: dang there are a lot of Android firmwares out there... LineageOS, Replicant, OmniROM, resurrection remix, Dirty Unicorns, now GrapheneOS? Let's just add postmarketOS in there fore good measure and I give up: I used CalyxOS because I knew those folks and was told the install was a breeze and it just works. They're nice and it's true: the thing just works.

Comment by anarcat

Yes, Graphene is the new Copperhead. After all the internet drama a couple years back that caused the Copperhead developer and business person split, the Copperhead developer started Graphene. Same guy, same basic idea.

I've been a Calyx Institute member for a few years, so technically I'm paying for CalyxOS. I ought to try it out one of these days.

Comment by Pig Monkey
Please get the Signal APK from


and you can avoid installing microG

(even Corona app from Fdroid works fine - as it includes microG internally).

Comment by Anonymous
re: microG

regarding avoiding google services: at this point, I gave up. i have other apps that do use that one, mostly anonymous, passive connection to google servers to tell the apps to wake up and do shit. it feels pretty close to harmless, and can even be wrapped in Tor if you're really worried about that stuff.

it's a tradeoff: i get good battery savings out of this, compared to each app doing its own similar polling.

also, installing the APK from that URL is more complicated, and harder for users to authenticate... so I don't recommend users do this anymore.

not sure what "Corona app" you are refering to here.

Comment by anarcat
CalyxOS on Pixel 4a

i started using it and enjoying it on my Pixel 4a. i researched a lot to work on it. i know this CalyxOS purpose is to DE google function or skip all the alternative service of Regular android apps. What i am doing right now is. i am flashed sunfish-factory-2020.09.22.12.zip which is older than the current one. after start i went to microG settings first Cloud messaging off then Google Device Registration and Safetynet off . then i logged in with Google account. it worked. then download vanced YouTube and did logging there too. then i downloaded Google maps ( yes i need this app because its perfect maps to navigate) from Apk mirror latest one . and installed it. in location privacy i choose google maps too. after everythig setup i turned on only google device Registration. it helps me to locate my location in maps. after everything is done i updated to lates update of CalyxoS For Contact backup i am using First of all, go to https://www.google.com/settings/security/lesssecureapps With your account and enable the setting When logging in with DAVDroid, Use "Login with URL and user name" -- Base URL: https://www.google.com/calendar/dav/your_gmail_id@gmail.com/events -- User name: your_gmail_id@gmail.com -- Password: Your Google account password after update i installed latest Google cam from apk mirror Currently i am using these apps Airdroid Amazon music Bitwarden ( for password management) Bluetooth Audio widget Google calender ( it supports ur google calender sync with the help of microG) Davx1 Google Drive ( some work related drive) Energy Ring Facebook Frost Gboard ( i need emoji in my keyboard so i cannot deny this google app) instagram Google app ( it dosent work but i can have weather clock widget on home) keep notes Google maps messenger yandex music ( for my backup songs) Google photos protonVpn Spotify telegram ( from fdroid) truecaller Vanced youtube yahoo mail WhatsApp For Snapchat there is a trick ( I downloaded Huawei app gallery then installed its snapchat app and Huawei service core app ) and i can now login to snapchat.

to erase google completely easily is hard for our daily life but i am trying to shift NextCloud Slowly .

i dont need Google service or extra things but yes its a smooth ram and i think i am getting more battery .

one thing i am missing is in recent i cannot select text .

Comment by jidpat ch
Created . Edited .