Update on My Teracube 2e Running LineageOS

I’m almost exactly one week into my experiment of running LineageOS on a Teracube 2e and want to provide an update.

If you missed my previous post, this experiment is my attempt to migrate from iOS to Android. I’m leaving iOS because of privacy concerns. Jumping from Apple to Google because of privacy concerns would be nonsense so this experiment requires using Android without Google services and applications. So far I have been able to do that, with the exception of needing access to the Google Play Store to install applications that aren’t available in F-Droid. I’m using Aurora Store to access the Google Play Store with some semblance of anonymity.

SD Card

The first thing I want to touch on is the SD card. SD card support in Android is a hot mess. Inserting an SD card into a phone running LineageOS, assuming the card isn’t already formatted, will trigger a popup asking how to format the card. The two options are portable or adopted. Selecting portable will format the SD card in a way that allows it to be swapped between devices. The upside to portable storage is that the SD card can be removed from the phone and inserted into another devices such as a laptop. The downsides are that many applications have poor if any support for using a portable SD card (Spotify, for example, kept losing songs it downloaded and stored on the SD card) and the data stored on the card isn’t encrypted.

Adopted storage is poorly documented. The best explanation I could find is this Reddit post. Choosing to format the SD card as adopted storage will cause user files to be stored on the SD card. Applications can also be moved from internal storage to the SD card if it’s formatted as adopted storage… and the developer of an application specifically enabled the functionality. If the developer doesn’t enable the functionality, then the application cannot be moved to the SD card. See what I mean about SD card support being a hot mess?

Formatting an SD card as adopted storage comes with a few downsides. The most notable is that removing the SD card from the phone can cause all sorts of odd behavior. Since the SD card is treated as an extension of internal storage, the phone expects the SD card to be present at all times. Another downside to adopted storage is that the SD card can no longer be used by other devices. Inserting the card into another device, even another Android device, will result in the device seeing it as corrupted. The upsides to adopted storage is that the data stored on an adopted card is encrypted and applications that poorly or don’t support portable SD cards will likely work well with an adopted card since they will see the card as internal storage.

My needs have been better fulfilled by formatting the SD card as adopted storage.

Potato Quality Cameras

In my initial impressions post I noted that the cameras on the Teracube 2e are bad even when compared to cameras on many other devices in the same price range. The Teracube 2e has three cameras: a front facing camera and a wide angle and normal camera on the back. Most camera applications that I test detected and could use the front facing and normal rear cameras, but didn’t recognize the wide angle camera (which isn’t much of a loss because that camera is the worst of the three). Open Camera can detect and use all three. Moreover, I’m able to squeeze the most out of the cameras with Open Camera. Dropping the exposure compensation by 0.50 EV (so the value is -0.05 EV in Open Camera) has lead to the least terrible photos on the normal rear facing camera for me. I’m not a photographer so your mileage will likely vary (and if you are a photographer, you will be disappointed by the cameras on the Teracube 2e).

Navigation

In the turn by turn navigation market Google Maps is the undisputed king. Apple Maps comes in second, but it’s a far second. Google Maps requires using Google, which I’m trying to avoid, and Apple Maps isn’t available on Android.

I had a three hour drive today and decided to test two applications: Organic Maps and Magic Earth. I came across Organic Maps in a Reddit post created by an individual asking for an alternative to Google Maps and Magic Earth when I was testing /e/OS (Magic Earth is included as part of /e/OS). For my test I used Organic Maps on the way to my destination and Magic Earth on the way back. Both applications use OpenStreetMap data, provide voice turn by turn navigation, and allow you to download maps locally on your device (a nice feature for me since I find myself in areas with weak or nonexistence cellular signal frequently).

Organic Maps is open source whereas Magic Earth is closed source. Even though it’s closed source, Magic Earth has a much better privacy policy than Google Maps (and probably Apple Maps) so it’s a step up in terms of privacy. Both applications chose nearly identical routes (I checked the route in both applications when I left and when I returned). The chosen routes were sensible. Magic Earth advertises that it uses crowd-sourced traffic information when creating routes, but I was unable to test that functionality since I was driving through rural Wisconsin and Minnesota where traffic is seldom heavy. However, it’s something to keep in mind if you’re driving somewhere that experiences traffic congestion. Magic Earth provided me superior search results. Organic Maps wasn’t able to find my destination when I entered the address, Magic Earth was. I also preferred the navigation interface on Magic Earth.

Neither application gives everything Google Maps and Apple Maps provides. But I found both to be serviceable for my trip. I give Organic Maps a point for being open source, but prefer the overall experience of Magic Earth.

Odds and Ends

SD card support, the Teracube 2e cameras, and navigating on Android without Google were the three major topics I wanted to cover. However, I want to close with a brief list and description of some of the applications that I’m using. All of them function without Google Services installed.

Aegis Authenticator is a one time password (OTP) two-factor authentication application. It’s open source, encrypts stored tokens, and backups encrypted tokens to a chosen destination (I configured it to backup to my Nextcloud instance). It can also be configured to require biometric authentication to open.

AntennaPod is an open source podcast client. Coming from the dumpster fire that is the latest iteration of Apple’s Podcast application, AntennaPod is like manna from Heaven. The interface is straight forward and it has so far done an excellent job of grabbing new episodes when they become available.

Bitwarden is my password manage of choice because it can be self-hosted. The Android client works almost exactly the same as the iOS client, which is to say it works well.

DAVx5 syncs my calendar, contacts, and to-do lists from my self-hosted Nextcloud server to my phone. Setting up the connection is a little janky because you need to start the process from the Nextcloud application, go to the DAVx5 application, and return to the Nextcloud application. But once the connection is setup, it stays running.

K-9 Mail is an open source e-mail application that supports PGP encryption.

KDE Connect connects an Android phone to a Linux laptop (I use GSConnect on my laptop because I use the GNOME desktop environment) and do things like send text messages from the laptop and sync the clipboard between the two systems. I highly recommend this if you use a Linux desktop or laptop.

OpenWeatherMap is a forecast application. I used to use Dark Sky, but Apple bought them and tossed the Android application down the memory hole. OpenWeatherMap has been a competent alternative.

QR & Barcode Scanner, as the name implies, scans QR and barcodes.

My Initial Thoughts on the Teracube 2e Running LineageOS

Since Apple decided to install spyware on iOS devices, I decided to finish my migration from Apple’s platform. I started my migration a couple of years ago because I didn’t like the direction Apple stared taking macOS (becoming more and more like iOS) or its computers (becoming more like iOS devices in that they lacked end user replaceable components). I planned to migrate from the iPhone once the PinePhone or another device capable of running mainline Linux matured. But as I noted at the start of this post, Apple forced me to move my timeline forward.

I started looking at available Android devices as soon as I read Apple’s announcement. I wanted Google in my life even less than Apple so my first criterion for an Android device was that it could be flashed with a Google free firmware like LineageOS. The most commonly recommended phones I came across for LineageOS were Google’s Pixel lineup. OnePlus devices were also popular recommendations. But both lineups tend to be higher tier, which means more expensive. My phone is really a glorified portable web browser, media player, and secure messaging platform. I don’t play games or anything else hardware intensive on my phone. Higher tier phones are wasted on me. The other downside to both of those lineups is that they cannot be easily repaired by end users. The FiarPhone lineup has always appealed to me because they’re designed to be repaired by end users. While they’re pricey, I’m willing to pay a premium for repairability. However, the FairPhone lineup is only supported on European carriers and I’m in the United States.

My search eventually lead me to a newer manufacturer called Teracube. Specifically the Teracube 2e. While the Teracube 2e isn’t as repairable as FairPhone devices, it does have a user replaceable battery. In addition to that it has a four year warranty and a flat flee of $59 for repairs (which includes screen replacements). The hardware specs aren’t great, but they’re appropriate for the asking price of $199.

There isn’t an official LineageOS build for the Teracube 2e, but an unofficial build is available. There is also a development build of /e/OS, which is a distribution built on LineageOS.

I tested /e/OS first, but I couldn’t stream audio over Bluetooth. My Bluetooth headphones would connect to the phone, but there was no way to make the audio play over them. Since I use my phone to play music in my car through a Bluetooth to FM transmitter (my vehicle predates built-in Bluetooth and also lacks an aux input), Bluetooth audio is an important feature to me. Besides the Bluetooth audio issue, I only have nice things to say about /e/OS. It’s worth a look if you’re in the market for a Google free Android firmware.

After /e/OS I installed and tested the LineageOS firmware linked above. So far it is working well. Bluetooth audio works. Wi-Fi calling doesn’t work, but that’s a known issue that is being worked on by the developer (and clearly stated upfront). I live in the middle of nowhere so my cellular signal is crap at best and nonexistent in my basement. But I don’t make many standard cellular calls so I can wait for the functionality to be implemented. I also ran into an issue with the Android version of Apple Music. When I played music through Apple Music, it would begin stuttering horribly after a short while. Everything I’d read online lead me to believe that the Android Apple Music app was a shitshow so I wasn’t too surprised. I installed Spotify and so far it hasn’t given me any issues (I was planning to migrate from Apple Music to Spotify eventually because the latter provides an official Linux app, but that timeline has been pushed up too).

So far my experience, which only a week (hence this post is an initial impression, not a review), with LineageOS on the Teracube 2e has been positive.

The Teracube 2e hardware has so far fulfilled my needs. The device isn’t as fast as my 2020 iPhone SE, but it’s also not as expensive (the base 2020 iPhone SE is twice as expensive). There is 64 GB of onboard storage, which isn’t enough for me. However, it has an SD card slot (a novel ideal that no iOS device has). While the hardware in the Teracube 2e only officially supports SD cards up to 128 GB, I installed a 256 GB card (this one) and it has been working flawlessly (if you want 256 GB of storage on the 2020 iPhone SE, you will have to pay $549). Like the 2020 iPhone SE, the Teracube 2e also has a fingerprint reader that makes unlocking the device faster (but I have my doubts that it’s anywhere near as secure as the iPhone fingerprint sensors).

The Teracube 2e also includes a couple of features that I consider nice bonuses. First, it has an indicator LED. Rather than turning on the entire screen for a few second to show that a notification has been received (as my iPhone does), the Teracube 2e blinks an inoffensive (in other words it doesn’t light up the entire room) white LED. That takes me back to my Palm Treo days (I really miss Palm OS). Another added bonus is the standard headphone jack. You can plug in any set of headphones without needing a dongle.

I’ve only found a few dings against the Teracube 2e. The first and most obvious one is its potato quality cameras. I wouldn’t normally ding a $199 device for having crappy cameras, but there are devices in this price range with better cameras. This isn’t a major problem for me because I only use my phone camera for documentation purpose (for example, taking a picture of wires before disconnecting them). But if you rely on your phone camera for even semi-serious photography, you will find the Teracube 2e lacking.

Another ding against the Teracube 2e is the lack of a silence switch. This is a feature that I fell in love with back when I was carrying a Palm Treo. It has also existed on every iPhone that I’ve owned. Having a simple physical switch on the device that lets me silence the phone is convenient. The last ding against the phone is the design of the SIM slots. Inserting a SIM into the phone is easy. Getting a SIM out again is a challenge. I wish there was an eject button like the one that ejects the SIM tray on an iPhone. This isn’t a major issue though because I don’t regularly insert and remove SIM cards. But it would have been nice when I was switching between the Teracube 2e and 2020 iPhone SE on the first day.

I’ve been getting along well with LineageOS. I haven’t encountered any showstopping problems, which is somewhat surprising to me considering I’m running an unofficial beta build. It doesn’t include Google’s proprietary applications (although they are available separately if you need them), which includes the Play Store. This can be worked around though. First, there is F-Droid, which is a store for open source Android applications. If you need applications from the Play Store (which I do), there is the Aurora Store, which allows you to install free applications from the Play Store anonymously (it might work for paid applications, but I don’t need any of those).

One of my biggest gripes with iOS is that backups require either a computer running iTunes or an iCloud account. I used iTunes running on my 2012 MacBook Pro to perform local backups because I didn’t want to upload all of my data to Apple’s servers. Booting up a computer periodically for a single task is an annoyance. Fortunately, LineageOS solves this by allowing me to backup my phone to my self-hosted NextCloud instance using Seedvault. My NextCloud server is automatically backed up by my backup server so I get snapshot backups using this method.

I enjoyed some conveniences back when I ran both macOS and iOS such as the ability to receive and send text messages from my laptop. I lost those convenience when I moved to a Linux laptop. I’m happy to say that I’m enjoying those conveniences again with LineageOS, KDE Connect, and GSConnect. KDE Connect is an Android application that enables a number of features such as the ability to share a clipboard between a desktop/laptop and an Android device and the ability to send and receive text messages from a desktop/laptop. GSConnect is the GNOME plugin that interfaces KDE Connect on the Android device with a desktop/laptop running the GNOME desktop environment (for KDE users there is an application called, surprisingly, KDE Connect). I ran into a bug where leaving the Run Command option enabled in GSConnect causes the GNOME desktop to freeze for a second every few seconds. Disabling that feature fixed the problem (there is a bug report open about this and I did leave a comment on it).

Overall my initial impression for this setup is good. Google free Android builds are probably the least terrible option at the moment for smartphone users who care about their privacy. There are several Google free distributions of Android to choose from including LineageOS, /e/OS, GrapheneOS, and CalyxOS. The latter two are only support on Google Pixel devices though (technically CalyxOS supports Xiaomi Mi A2, but only for Android 10).

A Do It Yourself Future

I would assume that most people who read Nineteen Eighty-Four understand that the Party is supposed to be the bad guy. However, most politicians and a large number of corporations seem to believe the Party is the good guy and should be emulated as closely as Snes9x attempts to emulate the Super Nintendo Entertainment System.

It seems like every day we see news of new surveillance technologies either being mandated by politicians of voluntarily implemented by corporations. The two entities aren’t always intentionally working in tandem. Many of the surveillance technologies implemented by corporations are done for profit. Google and Facebook for example have business models dependent on surveillance. But sometimes they two entities are working in tandem. The Pegasus spyware is an example of a protect developed by a corporation for the obvious intent of selling to governments interested in surveilling individuals. Then there are the gray ares. Apple’s recent decision to install spyware on iOS devices to ostensibly detect child pornography is an example of something that was likely implemented at the behest of politicians but not mandated (yet).

Unfortunately, the situation is unlikely to get better before it gets worse. There’s too much money to be made by spying on customers and politicians’ power necessarily depends on surveilling citizens. Does this mean you will have to give up technology entirely? Will the Hutterites and Amish be the only free people left in a few years? Not necessarily. There is an option to utilize technology without subjecting yourself to constant surveillance. That option is to do it yourself.

This is really an extension of my self-hosting advocacy. For a long time I’ve preached and practiced self-hosting online services. It’s much harder for Google to surveil your e-mail if you host your own server (of course Google can still surveil your conversations with Gmail users). However, at the current rate of things the do it yourself strategy will have to be applied to technological products other than online services. For example, there is no longer a privacy respecting smartphone readily available to consumers. Your only option is to buy a device that both allows you to flash custom firmware and is supported by privacy respecting firmware.

The laptop and desktop market at least has a few privacy respecting options like System76 available, but beyond those boutique manufacturers you can’t trust the default operating system shipped with most computers. You need to install an operating system that you can trust such as a Linux distro or one of the open BSD flavors like OpenBSD and FreeBSD. There is also the issue of surveillance technology baked into the hardware. Just installing a trustworthy operating system isn’t enough if the hardware itself is spying on you too. In that case you’re going to have to build your own hardware to some extent. This will require many of the same skills as building a computer does today except instead of choosing parts for performance, you’ll need to choose parts for lack of baked in surveillance technology.

If you want an automobile that won’t spy on you, you’ll likely need to either maintain automobiles that were manufactured prior to surveillance mandates or learn how to disable installed surveillance technology. Mind you that either strategy could and most likely will be declared illegal. In that case you will need to spoof the surveillance technology in such a way that it isn’t tampered with in a detectable manner or can be quickly restored to a fully functional state if you need to take the vehicle in for an inspection or repair.

For those unwilling to unable to do the work themselves, they will be dependent on black market dealers who can. The upside is there is already a black market for surveillance avoidance and it will expand as surveillance becomes more pervasive. But the days of being able to buy a technological product and be reasonably sure that it isn’t spying on you are over (they’ve been over for a while, but the situation is continually becoming worse).

Apple Adds Big Brother to iOS

There are two dominate smartphone operating systems: Google’s Android and Apple’s iOS. Google’s business model depends on surveilling users. Apple has exploited this fact by making privacy a major selling point in its marketing material. When it comes to privacy, iOS is significantly better than Android… at least it was. Today it was revealed that Apple plans to add a feature to iOS that surveils users:

Child exploitation is a serious problem, and Apple isn’t the first tech company to bend its privacy-protective stance in an attempt to combat it. But that choice will come at a high price for overall user privacy. Apple can explain at length how its technical implementation will preserve privacy and security in its proposed backdoor, but at the end of the day, even a thoroughly documented, carefully thought-out, and narrowly-scoped backdoor is still a backdoor.

[…]

There are two main features that the company is planning to install in every Apple device. One is a scanning feature that will scan all photos as they get uploaded into iCloud Photos to see if they match a photo in the database of known child sexual abuse material (CSAM) maintained by the National Center for Missing & Exploited Children (NCMEC). The other feature scans all iMessage images sent or received by child accounts—that is, accounts designated as owned by a minor—for sexually explicit material, and if the child is young enough, notifies the parent when these images are sent or received. This feature can be turned on or off by parents.

When Apple releases these “client-side scanning” functionalities, users of iCloud Photos, child users of iMessage, and anyone who talks to a minor through iMessage will have to carefully consider their privacy and security priorities in light of the changes, and possibly be unable to safely use what until this development is one of the preeminent encrypted messengers.

I’ve been pleasantly surprised by the amount of outrage I’ve seen online about this feature. I expected most people to praise this feature out of fear of being labeled a defender of child pornography if they criticized it. But even comments on Apple fanboy sites seem to be predominantly against this nonsense.

This move once again demonstrates the dangers of proprietary platforms. If, for example, a Linux distro decided to include a feature like this, users would have a number of options. They could migrate to another distro. They could rip the feature out. They could create a fork of the distro that didn’t include the spyware. This is because Linux is an open system and users maintain complete control over it.

Unfortunately, there aren’t a lot of options when it comes to open smartphones. The options that do exist aren’t readily accessible to non-technical users. Android Open Source Projects, which are versions of Android without Google’s proprietary bits, like LineageOS and GrapheneOS don’t come preinstalled on devices. Users have to flash those distros to supported devices. Smartphones developed to run mainline Linux like the PinePhone and Librem 5 still lack stable software. Most people are stuck with spyware infested smartphone. Exacerbating this issue is the fact that smartphones, unlike traditional x86-based computers, are themselves closed platforms (which is not to say x86-based platforms are entirely open, but they are generally much more open that embedded ARM devices) so developing open source operating systems for them is much harder.

Collective Punishment of Automobile Owners

Congress slipped a provision into the infrastructure bill that will requires vehicles developed after 2027 to detect if the driver is drunk:

The U.S. Congress is debating about a massive bill titled “Infrastructure Investment and Jobs Act,” and it includes a provision that makes it mandatory for cars in the future to have an advanced drunk and impaired driving prevention technology. What makes it interesting is that the bill actually stipulates 2027 as the year for its implementation, which is not very far. As Vice points out, these are not retro-fitted devices but actually standard fitments that go in during the manufacturing process.

I can’t wait until even entry level vehicles cost $100,000 (in today’s dollars, not in future dollars severely devalued from today’s money printing efforts) on account of all of the sensors needed to ensure that drivers aren’t drunk, high, tired, infected with a respiratory illness, dizzy, overweight (it takes more fuel to move around more weight and that makes Mother Gaia cry) or otherwise deemed unfit for the road. It’s always nice when politicians in Washington DC decide to punish everybody (in this case by increasing the cost of vehicles) for the actions of a handful of people.