• Home
  • Blog
  • Contact
  • Projects
  • Content Mirror
  • Matrix Guide

  • Goodbye, Android

    September 6, 2022

    I've always dreamed of having a Linux phone for as long as I've been running Linux on my computers, but Android has always been the closest I've been able to get, although I haven't run stock Android in a long time. When I buy Android phones, I buy them specifically so I can flash LineageOS on them. LineageOS has no Google services whatsoever, making it much more privacy-friendly. The installation process for LineageOS is a little annoying though. Once you get it running, it runs great, but getting it running is not fun at all, to say the least.

    Up until very recently, I had a OnePlus 8 Pro, which just got LineageOS 19.1 support, the version of LineageOS based on Android 12. Unfortunately, you can't just upgrade by going into the LineageOS updater, you have to manually upgrade your firmware and then flash the new update. It was my attempt at this process that hard-bricked my phone [1]. So instead of getting a much-awaited upgrade from LineageOS 18.1 to LineageOS 19.1, I ended up breaking my phone altogether. I know I was tinkering with something that wasn't meant to be tinkered with, and I do accept responsibility for that. But at the same time, I think my accident highlights a few of the problems I have with the Android ecosystem.

    The first and most obvious problem is that Android devices are way too restricted. It is very difficult, or even impossible, to flash custom operating systems on most Android phones. Even if a custom operating system can be flashed, it is usually limited to an Android-based one that uses the stock binary blobs for drivers. It is pretty much unheard-of to run a mainline Linux kernel on most Android phones. This is totally unacceptable for me. If I purchase a piece of hardware, I want to be able to run the software of my choice.

    The second problem is that Android manufacturers offer no help to developers and hackers like myself. They purposely make the firmware files very difficult or even impossible to find, and flashing tools are few and far between. Android uses custom protocols to flash firmware and system images, and when the process breaks, you're left with something unbootable. You can't just open up the back and replace the storage; if you can't communicate over the USB port, you're totally screwed.

    The problem with Android itself is that the AOSP version is never just installed on a phone. Every manufacturer puts a custom version on, which has a ton of Google bloat, and a ton of manufacturer bloat, which manifests itself in the form of ads in the notification center, duplicate apps, and a ton of useless crap that can't be uninstalled or disabled. If you want to run pure Android, without any of the Google or manufacturer garbage, you have to mess with flashing custom operating systems, a process so risky that it can render your $800 device totally unusable. This, to me, seems very wrong. It blatantly disregards what a consumer actually wants from a phone. People just want phones that respect their privacy and don't show them ads everywhere, or come with duplicate apps. You shouldn't have to flash a custom operating system to get that.

    So what actually happened to my phone? Well, I was attempting a firmware update to install the Android 12 firmware. Somewhere during this process, the update failed, and left me with a brick. Firmware updates are risky even on a computer, but they should be totally independent from the operating system itself! Why does Android 12 need special firmware compared to Android 11? The fact that I even had to mess with firmware speaks to the fact that Android is a mess under the hood. It would be totally unacceptable if Linux or OpenBSD required a BIOS/UEFI update before updating the kernel. Phones should be no different. Phones should have a firmware that doesn't care about what OS is running.

    I think another problem I've had with Android before this whole firmware issue was that I never really had as much control. While possible, it has never been very easy to modify the Android experience. Sure, you can install custom launchers, and download Termux to get a shell environment, but you can't replace the notification center, or switch to a different settings app, or even manage your settings as a config file like real Linux can. You also can't just take a disk image of your interal storage, and restore it if something goes wrong.

    Because of all this, I've said for a long time that I've wanted my next phone to be a real Linux phone, but now that my Android phone has literally killed itself, that's even more true. Now I think I can safely say that I'm never looking back to Android. I don't feel comfortable running stock Android, due to privacy concerns, and it is obviously far too difficult to run custom versions of Android safely and securely. So, just like when I switched to Android from iOS all those years ago, a new phase in my digital life is beginning.

    But where do I go from here? What alternative is there to Android, and how does it solve the problems I have with Android? I've known about the PINE64 PinePhone for a while now, but I've never taken the plunge into purchasing one because I always just needed a phone that works, and from everything I'd read, software support on the PinePhone is quite lacking. But now that I literally don't have a phone that works, I think it's time to try it out. I've done my research, and I think a PinePhone running PostmarketOS would be a good phone for me.

    From everything I can tell, the PinePhone solves all the problems I have with Android. It is a lot harder to brick because it boots from a microSD card slot. If I accidently break my operating system or firmware, I just have to pop the back off, re-flash the microSD card, and reinstall. I don't need any special hardware or software tools to do that; I can just dd(1) a microSD card from OpenBSD, which is a huge bonus. Additionally, if I do happen to hard-brick a PinePhone, which I imagine would be rather impossible, I can buy a new mainboard for around $100, and replace it myself by just undoing a few screws.

    The PinePhone also has hardware switches for all the wireless stuff inside of it, and it has a user-replacable battery, as well as a headphone jack—all things that I have wanted in a phone for a long time now. I'm still upset that all the big phone manufacturers stopped putting headphone jacks on phones, as I hate bluetooth for its reliability problems, and security implications, among other things. I'm also upset that most phone batteries can't be replaced easily; you almost always have to either send your phone into the manufacturer, who will charge you way too much money, or you just have to get a new phone. I think it is a part of a scheme to get people to buy new phones instead of repairing their existing phones, and I don't like that at all. It's horrible for the environment, and it is generally just bad for consumers, who just want a reliable product.

    The best part about the PinePhone is that it puts the owner in control, not the manufacturer. I can replace any physical and software component inside of it myself, and have no fear of hard-bricking it in the process. I can run mainline Linux, and get all the benefits of that.

    Granted, the specs for the PinePhone are rather garbage compared to what I was used to on my OnePlus 8 Pro. The camera takes nearly-worthless photos, and the battery life I hear is abysmal. But at the end of the day, I don't need a fancy phone with super high specs. My goal is to not even need a phone at all. So perhaps a poor phone will make me less dependent on phones in general. I'd rather spend $150 on a new Linux phone than well over double that to repair my existing phone, I know that for sure.

    At the moment, I'm using my sister's old iPhone Xs while I think about the PinePhone. The Xs has a horribly mangled screen, but I ordered some screen protectors for it, not only to protect the screen from further damage, but to protect my fingers from being sliced open by the rough parts of the screen.

    I haven't used an iOS device in so long; I always tell people I feel like a foreigner in a strange land, and it's true, I do. People always say that iOS is more polished than Android, but I'm actually not finding that to be true at all. I'm always surprised at the quirks I encounter during my day-to-day use, and I've noticed that simple tasks, like opening an app from a notification in the notification center, or setting an alarm, take a few more taps on iOS than they do on Android.

    But I digress; I'm about to plunge into the world of Linux phones, so I don't think I can really complain too much. If Android and iOS are quirky, Linux on a phone is bound to be much more quirky. I'm not expecting a PinePhone to work very well, but I am still convinced it is the best option for me these days, because I care about reparability, control over my software, and privacy. Android and iOS don't value all of those things, but I think the PinePhone does.

    From Windows to Linux to OpenBSD, Word to LibreOffice to Groff, iOS to Android to PostmarketOS, Instagram to SMS to email to Matrix, I feel myself slowly being sucked away from mainstream computing, and into a world where only the bravest of nerds and hackers can survive. My journey in the digital realm is still ongoing, but I'm slowly finding my way, and I'm glad for that. My values have never changed over the years I've been tinkering with electronics, but I'm finally getting to where I want to be, albeit a bit sooner than I was planning on.

    I see Linux on a phone as just another stepping stone, with the ultimate goal being to run OpenBSD on my phone as well, if I have to own a phone. I'm a lot more comfortable with OpenBSD now than I ever was with Linux, so it would be amazing if I could run OpenBSD on literally all my devices. But, I think, even better would be not having to own a phone at all.

    One of my main goals for my digital life, with the idea of being as minimal as possible in mind, is to own only a single OpenBSD computer, which acts as my workstation and my server. I'd like to get to a point where I don't even need a laptop; just a desktop machine that doubles as my workstation and my home server. Even better would be if I could solar-power it and the modem.

    I work on all my personal projects, including Telodendria, with that goal in mind. I slowly want to get rid of my ProxMox hypervisor, and just run everything on OpenBSD. My phone situation gets me another step closer to that, so I can't be too upset that it's bricked.

    © 2019-2023 Jordan Bancino.