Why GrapheneOS
I’ve been using Linux on my computers for a while now. After switching on my PC, I started thinking about doing the same on my phone, it was something I really wanted to try.
The first project I found was LineageOS. At that time, I had a Xiaomi Redmi Note 10 Pro. The problem is that Xiaomi phones are known for having quite a locked bootloader. It’s still possible to install a custom ROM, but it’s not easy. That discouraged me, so I put the idea aside.
Some time later, I heard about GrapheneOS. It caught my attention because of its strong focus on security and privacy.
GrapheneOS is not a different system from Android, it’s based on AOSP (Android Open Source Project) and adds many improvements for privacy and security.
However, it’s only available for Google Pixel phones. I moved on, but kept it in mind.
Recently, I saw a great deal on Dealabs for the Pixel 9, a few weeks before the Pixel 10 came out. This time, I went for it. Here’s my feedback after using it for a bit more than a month.
Installation
I won’t go into details, the official documentation explains everything very well.
First, you unlock the bootloader, which is very easy on Pixel phones. Then you install GrapheneOS, either with the web installer or from the terminal (I used the second option, of course). It only took a few minutes, which really surprised me. And that’s it!
First steps
GrapheneOS comes without Google. You can still add it later, a sandboxed version of Google Play Services and the Play Store is available. But I thought, why not try to stay without Google? That’s what I decided to do.
At first startup, all the default apps are GrapheneOS versions. For my other apps, I use Obtainium and AppVerifier. Obtainium lets me download and update apps directly from their source APKs, and AppVerifier checks their hash to make sure they are safe.
The difficulties
Banking apps
Most banking apps need Google Play Services. So I created a second profile on my phone, where I installed my two banking apps.
Even with the sandboxed Google Services, not all banks are compatible, and contactless payments are simply not available. But that’s fine for me.
Push notifications
On normal Android, all push notifications go through Google Play Services.
Since I don’t use them, each app needs to keep its own connection to its server all the time. One connection is fine, but one per app uses more battery.
That’s a common issue with privacy-focused systems, since they don’t include Google’s Firebase Cloud Messaging. There is an open-source alternative called UnifiedPush, but I haven’t tested it yet.
For now, I try to keep only a few apps running in the background. At the moment, I have three: Element (Matrix client), ntfy (notifications from my NAS), and Thunderbird (email). I only keep one chat app running, since Matrix can connect to other services like WhatsApp or Signal. It’s not perfect, but I’m working on it.
The camera
Another important limitation, without Google Services, the Pixel Camera app is not available. That’s a big loss, because Pixel phones are famous for their software photo processing, something apps like Open Camera can’t reproduce.
After testing both, the difference is clear. Open Camera takes decent photos, but they lack detail, HDR, and color balance. You also lose many advanced features like portrait or night mode.
So if I want good-looking photos, I have to switch to my profile with Google Services, where the Pixel Camera app works normally.
So?
In the end, I’m really happy with GrapheneOS. It’s a mature, active project with great ideas.
However, I wouldn’t recommend it to everyone. Even though it can work with Google Services, you still have to accept a few compromises.
As for me, I plan to keep using it.