I’ve finally ditched my iPhone

Image credit: https://foto.wuestenigel.com/hand-throwing-mobile-phone-into-trash-can/

This isn’t a post about Android being better than iOS, nor is it a post about Google being better than Apple. I distrust both companies and their respective ecosystems equally, instead this is a post about an adequate intermediate step on my journey towards not having to deal with either party entirely.

I really like iOS and my iPhone

I got my first iPhone back in 2008 when I signed a way too expensive contract to get my hands on an iPhone 3G at my local O2 shop.

It was just what I needed as a uni student juggling my studies and working a full time job in my local pub, as the connectivity and productivity apps allowed me to catch up on my uni work while on my lunch break or walking home from work at 2AM.

For the most part I’ve always had an iPhone. There was a brief stint between 2012 and 2014 when I had a couple of Nexus phones as they were cheap, had a small form factor and lacked the bloatware I associated with Android.

I eventually went crawling back to Apple after using an iPhone 5S for app development and it was around that time that the form factor of phones shifted to valuing larger models and the iPhone 5S was the perfect size for me (the original iPhone SE with it’s high spec tech in a smaller body was my favourite phone ever and was great until the planned obselence kicked in).

Since that iPhone 5S I’ve not been back to Android as I became more and more conscious of the data collection that Google was doing on those devices and burying my head in Apple’s sand felt like a good mitigation of that risk.

Almost a decade later that sand has shifted and my head has been uncovered as Apple’s privacy hypocracy becomes more transparent with there being a push to enable device-side scanning of content.

While I’m completely for the prevention of the creation and distribution of child sexual abuse material I feel that there’s a slippery slope by enabling this type of device-side scanning.

As someone living in the UK I feel like it’s only a matter of time until the government (current and future) use the normalisation of this scanning to increase the scope of what’s being scanned.

So with my tin-foil hat firmly on my head I’ve been looking into alternative ways I can balance enjoying smartphone ownership with not having my data harvesting for advertisers or having my door kicked in by the thought-police because I downloaded a political meme that disagrees with the ruling government.

Linux on Mobile

Shortly after the announcement of Apple’s scanning plans I came across an article about the PinePhone and how the device was built to run a mobile Linux OS natively instead of requiring a bridge between the device and the OS like it does on repurposed Android devices.

The device was cheap enough (about £200 after import taxes) for me to want to give it a try and I was really impressed by what the device offered given the price point.

Being able to boot the OS from an SD card enabled me to try out a number of distros but I found Ubuntu Touch to be the best fit for my needs as the UI was consistently compared to the other distros that try to force KDE or Gnome to render windows in a mobile-friendly manner (which often fails).

During my exploration into the different mobile Linux options I started to see the dependencies that I have on specific apps for things like banking (I use a mobile-first bank for my current account), password management (I had used LastPass) and cloud storage (I was reliant on iCloud).

I was able to take some steps to remove these dependencies but I was never able to find a means of reliably solving the banking app issue.

One potential solution to the banking app issue was to use Waydroid which allows for Android apps to run in a way that feels like any other app on the phone but there are a few pain points with using it:

  • Because Waydroid is essentially an Android emulator that allows it’s apps to be executed from the host OS’s launcher it means that launcher gets littered with Android system apps and you’ll often have two or more apps for things like ‘System’ but no idea which one is for the host and which one is for the Waydroid installation
  • Waydroid being an emulator means that it requires a beefy enough processor and enough RAM to run it, something that the PinePhone I had struggled with
  • There’s no app store installed alongside Waydroid so you’re dependent on downloading APKs to run under it and those APKs need to be sideloaded into the emulator to do this
  • Waydroid support on Ubuntu Touch wasn’t mature enough when I tried it originally so there were a lot of crashes, although in subsequent releases this has improved

After being really impressed by Ubuntu Touch and realising that the PinePhone lacked the resources to allow me to try it out fully I decided to invest in a second-hand OnePlus 6T as that device had pretty good support, had decent hardware specs and admittedly I like the teardrop ‘notch’ it has.

While Ubuntu Touch itself is really slick on the OnePlus 6T I was still unable to put my Waydroid related concerns to rest so I decided to try again after a few more releases.

LineageOS

While waiting for the Waydroid based solution to mature I ended up reading up on different Android distros that could be installed on the OnePlus 6T and happened to come across LineageOS and the MicroG framework.

During my previous stint of Android ownership I had tried out the Android Open Source Project (AOSP) image on one of my old Nexus phones but found I ended up installing Google’s services anyway to do anything useful on it so the open-source drop-in for these offered by MicroG peaked my interest.

Before installing the custom ROM I read up on if the LineageOS + microG combination would allow me to run my banking app and was pleasantly surpised to see an existing thread about that very subject.

Installing LineageOS wasn’t as simple as installing Ubuntu Touch because I first had to upgrade the OnePlus 6T firmware and run the install against an Android 11 base, whereas Ubuntu Touch requires an Android 9 base.

In order to do the upgrade I had to re-install Oxygen OS onto the device which I did using the MSM tool that OnePlus provides for flashing images when the device is in EDL mode.

Once I had reflashed Oxygen OS 10 onto the device I then had to upgrade the OS to Android 11 but once that was finally installed and the device rebooted I was able to follow the rest of the steps in the LineageOS tutorial with ease.

Out of the box LineageOS comes with a few stock apps and F-Droid for downloading apps outside of the Google Play Store. Thanks to the work I’d done moving to more open-source and open-standard based solutions I was able to install a large proportion of the apps I needed using the F-Droid store.

For apps that need to be downloaded from the Google Play Store such as my banking app I found a really awesome app on F-Droid called Aurora Store which allows you to use an anonymous Google account to download apps from the Google Play Store, giving you the use of apps found there without the tracking.

The anonymity isn’t perfect though as there’s no means of setting a locale for the account so the search results aren’t as useful if like me the account used is in a different territory (the account I’m using is French so UK centric apps don’t rank high or sometimes don’t even show).

Migrating from iOS

The migration from iOS to LineageOS was made easier thanks to work I’d done previously to remove my dependency on iCloud and other services provided by Apple.

I’ll cover off the steps I took to do this:

  • I found alternate apps to those I used that only provided iCloud for data storage such as swapping Good Notes for Notability
  • I set up a NextCloud instance to replace my use of iCloud for file and photo storage. I also backed up my contacts and calendars to this instance as well as exports of app data for apps that supported it like Daylio
  • I moved to more open-source/open-standard based alternatives to proprietary apps such as swapping LastPass for KeePass (sync’d using NextCloud app) and Notion for Joplin (sync’d using WebDAV to NextCloud)
  • Where I wasn’t able to find open-source/open-standard solutions I found apps that provided the widest platform support and webapps
  • I was able to do all this on iOS and got to a point where I could just turn off iCloud on my iPhone. This proved I had removed the dependency and was free to move my data to other phone platforms

Once I had LineageOS installed I just needed to install the NextCloud app from F-Droid to retrieve my data from my instance, install KeePassDX to open my password database and I used the contacts backup on NextCloud to import the contacts into the Contacts app. For apps that supported data export I was then able to import the data into the Android version of the app.

I have been using a cloud based multi-factor authentication tool that allows me to access the generated codes across multiple devices as previously when moving between phones the worst part of the process has been disabling and re-enabling those.

The only app I encountered issues with was Daylio because I had subscribed to the premium version of the app on iOS but because LineageOS lacks the framework for handling subscriptions via Google Play I had to revert back to the free version. Luckily this didn’t impact the data import I did just my access to features.

There have been a few quality of life differences moving from iOS, notedly around the system apps, such as the lack of an inbuilt video editor in the LineageOS gallery app but this was easy enough to fix by downloading an app specifically for that cause. However considering we’re comparing open-source development with a trillion dollar corporation I think it’s OK to look pass this.

Summary

While I had hoped to have been able to move to a native mobile Linux based solution like running Ubuntu Touch on a PinePhone, LineageOS has given me the ideal intermediate solution that allows me to move away from iOS and software like MicroG, F-Droid and Aurora Store have allowed me to do that while evading the sauron-like gaze of Google.

Ultimately the key to being able to make the move was finding alternate apps that removed the lock-in for iCloud that the iOS ecosystem has and while I’ve gone down the self-hosting route there are cloud based means such as Tressorit.

Another avenue I might look into in the future is running custom ROMs on an iPhone (as this could mean a return to my beloved iPhone SE) but I have a feeling that this isn’t going to have same level of support as LineageOS.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Colin Wren

Colin Wren

Currently building reciprocal.dev. Interested in building shared understanding, Automated Testing, Dev practises, Metal, Chiptune. All views my own.