In early June, I wrote about using a Google Pixel 3a XL with LineageOS as my daily phone driver. While I am still using that phone as my daily driver, I have had periodic issues with the charging port on my 3a XL (that is a hardware issue). I am eventually switching to a Pixel 6a (not the one I installed GrapheneOS on) also running LineageOS. . Upon implementing the change, I will use my 3a XL for feed reading with Handy Reading and games. But regardless of the use case, I will want to keep my 3a XL up to date.

(Note: LineageOS is a free and open source fork of the Android Open Source Project. It offers a generally standard Android experience without some of the annoyances and conveniences of stock Android. It may appeal to people who want an alternative to stock Android or who want to revive an older device that no longer receives official updates – my Pixel 3a XL is an example of an officially unsupported device that gains new life through LineageOS. Note that while I like LineageOS, it is not right for every use-case. Anyone who is considering using LineageOS or a similar Android ROM should make sure they understand what they are doing before installing it (especially on a daily driver device).

When I first installed LineageOS on the Pixel 3a XL in November 2022 after a failed attempt to install Ubuntu Touch, I installed LineageOS version 19.0. LineageOS 19.0 is based on Android 12. Different devices officially supported by LineageOS run on different versions. For example, my 2013 Google Nexus 7 tablet is stuck on LineageOS 18, which is based on Android 11. In October, my Pixel 3a XL, which is no longer officially supported with stock Android, received a bump up from LineageOS 19 to 20. LineageOS 20 is based on Android 13.

While LineageOS is relatively user-friendly once it is installed, the installation and upgrade process may be intimidating to new users. LineageOS devices can typically be updated within a version (e.g., a LineageOS 19 update that stays on the 19 version) through a system app in the same way updates are installed for regular Android and iOS devices. However, when going from one version to another – e.g., LineageOS 19 to LineageOS 20 – you must sideload the update. One down-side of LineageOS for new users is that there is no graphical application for updates like there are for GrapheneOS and Ubuntu Touch.

The Pixel 3a XL moved from LineageOS 19 to 20 in mid-October. For reasons related to my two-week New Leaf Journal hiatus, I was a bit late on getting around to updating it. Fortunately, the process is simple and the LineageOS website provided clear instructions.

The LineageOS upgrade requires the Pixel 3a XL and a USB cable connecting it to a computer. The computer must have Android Debug Bridge (ADB), a free and open source command line application for installing packages on Android devices. Moreover, USB debugging must be enabled on the phone (ADB is required to install LineageOS in the first place). I had all these components ready before beginning the upgrade.

The first step required me to download the newest version of LineageOS 20 for my Pixel 3a XL. In my case the file was “” – it is usually updated once per week in the case of the Pixel 3a XL as of November 2023. I dropped the LineageOS installation package into my computer’s home directory. (Note that my computer runs EndeavourOS, a Linux distribution based on Arch Linux.)

Next, I connected my phone to the computer, authorized my computer for adb, and made sure from the command line that my phone was recognized:

adb devices

After confirming that my phone was properly connected, I went to step five of the LineageOS guide (the extra points on step 2 were not relevant to me because I do not have any add-ons) and ran the following command:

adb reboot sideload

This rebooted my phone and it was ready for me to sideload the LineageOS 20.0 installation package.

adb sideload

(Note: You would have to adjust the file path if you put the zip in a different directory.)

The installation took a few minutes. It appeared to hang at 47% for a while, but I recalled from my GrapheneOS installation in June and my upgrading my Teracube 2e through a similar process last December that this happens sometimes. I left it alone and eventually the sideloading stopped. I rebooted my phone and it booted into LineageOS 20 with no issue (note it did spend an unusually long time on the splash screen, but that was not a problem).

One nice thing about the upgrade is that LineageOS 20 comes with a new and improved default camera app.

Screen capture of default camera app on Pixel 3a XL running LineageOS 20. The camera is zoomed in on a markdown article draft about the new camera app.
A screenshot of the new camera app on my Pixel 3a XL. It is focused on an earlier version of this article in the Ghostwriter markdown editor, which I use to draft almost all New Leaf Journal articles.

The LineageOS 19 camera app was very minimal. While I will move to my Pixel 6a in the near future – which has the same app (Pixel 6a was already on LineageOS 20) with a better hardware camera, I appreciate the upgrade for my 3a XL since I will continue to use it in some capacity going forward.

Note that this should not be construed as a guide. When installing or upgrading a LineageOS device, you should always consult the official LineageOS documentation, which is neatly organized on the LineageOS Wiki. Different devices have different requirements. For example, the installation process on my 2013 Nexus 7 tablet was more complicated (in terms of number of steps) than on my Pixel 3a XL or my Pixel 6a, both of which were quick and straightforward. Failure to heed the directions can lead to a bricked device. Always follow the instructions and make sure you are prepared for the possibility that something does not work as planned for one reason or another.