The idea of this project is to make an old google pixel 3a usable again in line with some of the philosophies of permacomputing. The phone required a new phone and battery, which I learnt how to install using youtube tutorials, and some trial and error. This repo details the software side of this project.
There are many android-based operating systems to choose from. My main requirements for an operating system were:
- Degoogle my phone as much as possible
- Remove as much bloatware as possible for performance reasons
- A focus on privacy and security. I ultimately chose GrapheneOS as it largely met these criteria as well as its active and helpful forums. The downside is that pixel 3a phones are no longer supported are no longer supported by GrapheneOS. Other shortlisted operating systems were LineageOS and /e/. This site compares these three OSs.
The pixel 3a is no longer supported by AOSP, and so isn't supported by GrapheneOS. I found this reddit thread with two options:
- Try the wayback machine
- Some random mega upload link
The first option would start downloading but I could never get it to complete. Maybe it wasn't properly captured in that snapshot. So I used the second option. Which requires a massive WARNING attached to it: as it is no longer supported, it is not possible to verify the image. That is to say, it is impossible to say if the operating system image has had additional code injected without this verification. Please proceed at your own risk.
GrapheneOS has two install methods; a web-based installer and command line installation method. As pixel 3a is no longer supported, I had to use the CLI method. I followed the install instructions line by line on my ubuntu 24.04 laptop, except for a few important things:
- I used the image I had found instead of downloading from GrapheneOS's website.
- I needed to do a factory reset before I could into developer mode
- I got the following error on `fastboot flashing unlock
FAILED (remote: 'flashing unlock is not allowed')
fastboot: error: Command failed
In a random forum post: You need to activate oem-unlock in developer settings first.
- The
flash_all.shscript was hanging at one point. Ultimately, I found a forum post that suggested using a usb-a to usb-c instead of a usb-c to usb-c to connect my laptop and phone. This worked. There's something funky up with linux usb drivers. - After flashing the rom on one pixel3a, I got the
no valid slot to bootreason for entering the bootloader. When restarting, I kept ending up in the bootloader with this message. I did the following things and it worked:- unwound my usb-a to usb-c cable (it was coiled up)
- used a different usb-a slot on my laptop (went from the right one to the left one)
- removed
platform-toolsand it's zip from my present working directory and put it elsewhere - I may have missed the ssh-keygen step, so I attempted that, though it failed (maybe this did something though?)
Installing apps is a little more involved in GrapheneOS. It requires using multiple app stores. The installation order for these app stores is:
- Update GrapheneOS App Store by downloading the apk.
- Install Accrescent using the GrapheneOS App Store
- Install Google Play Store + Google Play Services using the GrapheneOS App Store
- Install F-droid using the F-droid apk
- Install Aurora using F-droid
- Install Obtanium using F-droid
As the stock GrapheneOS App Store didn't work for me (can't find servers error), I downloaded and installed the apk from here. Use vanadium (GrapheneOS stock browser) to download and install the most recent version of the apk on the Assets menu. For me, this was AppStore-30.apk.
An app store with only GrapheneOS dev approved apps. Installed from GrapheneOS App Store.
I couldn't get my banking app to work using Aurora, so I installed play store and play services using the GrapheneOS App Store. GrapheneOS runs these in a sandbox so that these apps don't have any special privileges beyond other apps (they are super privileged in google android). I've since deleted Google Play Store and everything still works fine.
Open-source app store. Downloaded the F-droid apk from here using Vanadium. From f-droid I could install a bunch of other things.
An app store that is an anonymous frontend to the google play store. It doesn't come with Play Services or a replacement, so a lot of apps dont work. Installed aurora via f-droid.
Used to install builds directly from github/gitlab repos. Installed using fdroid.
- Aves Gallery Libre
- Ironfox
- Organic Maps
- Bank Australia
- Proton Authenticator
- AntennaPod
- Aurora
- Bitwarden (after adding bitwarden repo)
- Fossify Calculator
- Fossify Clock
- Fossify Contacts
- Fossify File Manager
- Fossify Gallery
- Fossify Messages
- Fossify Phone
- FUTO Keyboard
- Joplin
- Obtainium
- Open Camera
- Tubular
- VLC
- Accrescent
- Google Play Store (later deleleted) + Google Play Services
- Iceraven
- Proton Calendar
- Proton Drive
- Proton Mail
- Signal
- SimpMusic
The default AOSP android app are not pretty and isn't customisable. The Fossify suite of apps is very similar to the stock android apps, but are customisable. You can't removed most (if not all) of the stock equivalent apps, but you can disable them. This clears them from the app list which is nice. All installed with f-droid.
The stock keyboard isn't great. FUTO was the first one I tried after trawling GrapheneOS forum posts. It's pretty neat. Need to add the repo to f-droid.
Web browser. GrapheneOS comes with Vanadium, which is a chrome/chromium fork. It doesn't have any/much ad-blocking and has no ability to add extensions. Ice Raven is a Firefox fork, with a focus on removing tracking, allows extensions from both firefox and chrome stores, and is a bit faster than stock firefox. It also seems to be updated quite regularly and has an active community. Downloaded the apk file from here. $\mu$block origin is a must-have with this.
Ironfox is arguably a tiny bit better with the privacy stuff than Ice Raven. Weirdly it's a chrome fork. I've only played with this a little bit, but if you like your chromium based browsers, try this one. On first usage it will ask if you want to install an ad blocker ($\mu$block origin) - say yes. Installed with accrescent.
Installed using Obtanium using github repo here.
Open source google maps usage replacement. Trying this out instead of OsmAnd+. Installed with Accrescent.
For podcasts. Installed with f-droid.
Media gallery. The stock GrapheneOS one isn't great. Installed using Accrescent.
The stock GrapheneOS isn't great. OpenCamera is pretty good and packed with a huge amount of features. Installed with f-droid.
Awesome name. Basically spotify but uses youtube as the music source. Installed with obtainium from here.
It's a fork of NewPipe. NewPipe is a front end to youtube that doesn't track you or send information back to youtube, and it doesn't insert ads. Tubular is essentially NewPipe with SponsorBlock (a firefox extension) installed. Also includes interface for soundcloud. Installed with f-droid.
We all love it. Installed with f-droid.
Note-taking app that can sync with encryption across multiple devices using my otherwise unused dropbox account. Installed with f-droid.
Isn't available out of the box in f-droid, but you can add the bitwardern repository to f-droid and then you can download it.
I'm looking to move away from the google suite for personal cloud services.
Installed using aurora.
Installed using obtainium from apk from here
Installed using obtainium from apk from here
Installed using obtainium (github repo here).
Not 100% sure about this one yet. Trialling it for now. Installed using f-droid.
Ensure Play Store and Play Services are installed as the Bank Australia app uses some of the security features from Play Services. Then install the Bank Australia app with Aurora.
Below is a table containing a brief description and installation source of each app I've installed. I haven't listened any of the stock apps besides the GrapheneOS AppStore and Vanadium. * indicates additional actions are required beyond what is expected for that installation source, see section App Installation for more information.
| App | Description | Installation Source | FOSS? |
|---|---|---|---|
| Accrescent | A store for apps approved by the GrapheneOS developers. | GrapheneOS AppStore | ✅ |
| AntennaPod | Podcast App. Very similar to Pocketcast. | F-droid | ✅ |
| Aurora | Access Google Play Store without logging in. | F-droid | ✅ |
| Aves Gallery Libre | Media gallery. | Accrescent | ✅ |
| Bank Australia | The official Bank Australia app. | Aurora | ❌ |
| Bitwarden | Password manager. | F-droid* | ✅ |
| F-droid | An app store for open source apps. | apk | ✅ |
| Fossify Calculator | A nicer, more configurable calculator. | F-droid | ✅ |
| Fossify Clock | A nicer, more configurable clock. | F-droid | ✅ |
| Fossify Contacts | A nicer, more configurable contacts managment app. | F-droid | ✅ |
| Fossify File Manager | A nicer, more configurable file manager. | F-droid | ✅ |
| Fossify Gallery | A nicer, more configurable image gallery. | F-droid | ✅ |
| Fossify Messages | A nicer, more configurable sms app. | F-droid | ✅ |
| Fossify Phone | A nicer, more configurable phone. | F-droid | ✅ |
| FUTO Keyboard | A keyboard with swipey words. | F-droid | ✅ |
| GrapheneOS AppStore | The store app store that comes with GrapheneOS. | Stock* | ✅ |
| Google Play Store (later deleted) + Google Play Services | Needed to install some apps in Aurora. | GrapheneOS AppStore | ❌ |
| Iceraven | Web broswer - Firefox with trackers removed. | Obtainium | ✅ |
| Ironfox | Web broswer - Chrome with trackers removed. | Accrescent | ✅ |
| Joplin | Note taking and organising app. | F-droid | ✅ |
| Obtainium | Manages app obtained from github. | F-droid | ✅ |
| Open Camera | A full featured camera app. | F-droid | ✅ |
| Organic Maps | Google maps replacement. | Accrescent | ✅ |
| Proton Authenticator | For two-factor authentication. | Aurora | ✅ |
| Proton Calendar | Google calendar replacement. | Obtainium | ✅ |
| Proton Drive | Google drive replacement. | Obtainium | ✅ |
| Proton Mail | Gmail replacment. | Obtainium | ✅ |
| Signal | Secure messaging app. | Obtainium | ✅ |
| SimpMusic | Spotify replacement with youtube backend. | Obtainium | ✅ |
| Tubular | Watch/listen/download/play in background youtube videos and soundcloud music. | F-droid | ✅ |
| Vanadium | Stock GrapheneOS web browser. | Stock | ✅ |
| VLC | A media player that will play almost any media format. | F-droid | ✅ |
- Find a replacement for spotify
- Investigate microG as a Google Play Service replacement