As my iPhone continued to slow down with every update, the quest for a replacement began.
I’ve had iPhones for the past few years since my employer paid for them. But now that it’s time for me to buy a phone, the new shiny of iPhone is dim. The hardware is overpriced and it’s sourcing is questionable at best. Apple used to appear to be concerned about privacy when compared to other tech corporations. But every time I update, iOS will turn on iCloud or some other nonsense that I have to undo.
Stock Android with Google is obviously out of the question if you value privacy.
I had played around with CyanogenMod years ago. It has since been replaced with Lineage OS. The list of compatible devices is interesting. When you untick the “discontinued” checkbox, half of the supported devices disappear. Espescially puzzling was that some of the newest and presumably wide-spread devices, like the Samsung Galaxy S9, (released in 2018) are out of support.
From what was left, I zeroed in on the Moto G7 Plus. It is a new-ish phone (2019) and I was able to pick one up for about $120. The phone arrived with a USB-C male/male cord included. Unfortunately, I didn’t have the right adapters or a PC with USB-C. When ordering a cable, be sure to look for one that will transmit data; some cords are power only!
The first thing to install is adb and fastboot. After extracting, you are instructed to add a couple of lines to the bash profile. On Kali, the file is located at $HOME/.bashrc. After logging out and back in, adb was functioning.
Next up is to unlock the phone’s bootloader. Motorola is actually cool with this, although they make you create an account so that you have to agree to the CYA lawyer stuff. The instructions begin with having you download the Android SDK and USB drivers. Next you have to retrieve a numeric string from the device and enter that into the Moto website to receive an “unlock key.” This key is then emailed to you.
I was unable to get fastboot functioning on Kali. Attempting “fastboot devices” was successful, but “fastboot getvar all” would output a few lines before hanging. “fastboot oem get_unlock_data” would also hang with no output. I am sad to admit that after a few hours of fiddling with settings on Kali I was still unable. I instead moved over to a Windows machine.
On Windows, I installed the adb and fastboot tools again. I was able to use fastboot to get the codes and unlock the bootloader. Much success!
The next step is to use fastboot to get the LineageOS recovery image onto the device. This was also successful.
But this is where my progress came to a grinding halt again. I could not get adb to recognize my device. I went around and around for a few hours, trying different device drivers and versions of the tools. At some point, I removed the official Motorola drivers from my machine. The device now appears in device manager (when the device is in recovery mode) as “Alcatel ADB Interface.”
Once this happened, and once I was in recovery mode, the adb commands worked as intended and the rest was smooth sailing.
The problems I was having may have been due to my own error, admittedly. While purely concentrating on permissions, drivers, and software versions, the problem may have simply been that I was in fastboot mode instead of recovery mode the entire time.
So now I have a phone with a bare bones OS installed with the basics: a telephony app, contacts, browser, email, music, and camera. So how do you get apps?
A popular route for some is to use Gapps. Gapps installs the Google Play store for you. The entire point of this phone for me is to keep Google out.
F-Droid is a FOSS alternative app store. It has an app for just about everything. I grabbed weather, maps, podcasts, ProtonVPN, SkyTube, and a few others.
This left a few other apps to scrounge up like Signal, Spotify, Amazon, Etsy, and my banking app.
Signal and Spotify offer direct downloads of their .apk packages. I simply downloaded these onto a microSD and installed them that way. However, Amazon and my local bank do not offer their apps for download.
Enter APKpure. As of this writing, APKpure offers legitimate app downloads. I was able to get Amazon, Etsy, and Among Us (for research…).
Cell services work as expected. The only twist came with voicemail. The native voicemail app can’t interface with T-Mobile’s visual voicemail. The answer is another app, myVoicemail, again from APKpure. With this installed I had voicemail working, albeit within a separate app and with a download delay.
And now to the downsides. While I’m thoroughly happy with my new phone there are a few compromises. Most obvious is with the camera, or more precisely, with the camera software. Apple has proprietary HDR software which is able to take multiple rapid photos and combine them with lighting and object focus to create excellent pictures considering lens depth restraints. A better Samsung or similar phone will get better photos than my Moto but the software sets iPhone apart here.
The second minor complaint for me is that notifications for some apps don’t work without the Google services running. Apparently this is due to a recent change in LineageOS. I expect it will be resolved in the future, but for now some apps like Signal and ProtonMail won’t show notification badges.