The Port Guides
Road I

GrapheneOS

privacy-first
Tutorial · Mobile OS Installation

Install GrapheneOS on the Pixel 8 Pro

A calm, step-by-step walkthrough of the official installation process — from stock Android to a hardened device with verified boot, using the recommended web installer (with the CLI route alongside).

Est. time 25–40 min Level Beginner-friendly Device Pixel 8 Pro
01

Prerequisites

What you need before touching anything.

GrapheneOS is a hardened, open-source Android build focused on security and privacy: verified boot, a hardened kernel and WebView, and optional sandboxed Google Play. The Pixel 8 Pro (codename husky) is one of the officially supported devices. To install it you need:

  • The phone — ideally a carrier-agnostic (unlocked) Pixel 8 Pro. Carrier variants flash a carrier ID that can disable bootloader unlocking.
  • A computer with 2 GB+ free memory and 32 GB+ free storage, running a supported OS — Windows 10/11, macOS Sonoma (14) / Sequoia (15) / Tahoe (26), Arch Linux, Debian 12/13, Ubuntu 22.04/24.04/25.04, Linux Mint 21/22/LMDE 6, ChromeOS, GrapheneOS, or a Play-Protect-certified Android 14–17 device.
  • A supported browser for the web installer: Google Chrome, Microsoft Edge, Chromium (not the Ubuntu Snap build — its WebUSB is broken), Brave (with Shields disabled), or Vanadium. No incognito/private windows, no Flatpak or Snap browser packages.
  • A good USB-C cable, plugged directly into a rear port or laptop port — no hubs, no front panel. Bad cables are the single most common cause of failed installs.
02

Before you start

Backup, updates, and choosing the right device.

  1. Back up everything. Photos, messages, 2FA seeds, authenticator data — the whole install path erases the phone, and unlocking wipes the secure element too. Assume nothing survives.
  2. Update the phone to the latest stock Android over the air first. You want the newest firmware on the device before flashing; GrapheneOS also flashes the latest firmware early in its own process.
  3. If you haven't bought the phone yet: get an unlocked, carrier-agnostic unit. On carrier variants, the carrier can disable bootloader unlocking via a carrier ID burned into the persist partition, and support staff often can't or won't lift it.
  4. Charge the phone and keep it plugged in during the install.
03

Enable OEM unlocking

A software switch that allows the bootloader to be unlocked.

  1. Open Settings → About phone and tap Build number seven times until “You are now a developer” appears.
  2. Go to Settings → System → Developer options and toggle on OEM unlocking.
  3. On carrier-sold variants, this step needs an internet connection so the stock OS can check whether the device was sold locked.
04

Prepare the installer

Two routes — pick one. The web installer is recommended.

Route A runs entirely in your browser (WebUSB) and even works from another phone. Route B is the traditional command-line install. Both flash identical images.

Route AWeb installer — recommended

  1. Open grapheneos.org/install/web in a supported browser on the computer.
  2. Linux only: install udev rules so the device is usable as a non-root user:
Arch Linux
sudo pacman -S android-udev
Debian / Ubuntu instead

The udev rules on Debian/Ubuntu are old but cover Pixels — the USB IDs haven't changed in years.

Debian / Ubuntu
sudo apt install android-sdk-platform-tools-common
  1. Linux only: if a fastboot connection is refused with “device in use”, stop fwupd — it wrongly grabs devices via the fastboot protocol:
Linux — fwupd workaround
sudo systemctl stop fwupd.service

Route BCommand line — traditional

  1. Arch Linux ships a usable, current fastboot in the official repos. Install the tools and OpenSSH (used to verify the downloads):
Arch Linux
sudo pacman -S android-tools openssh android-udev
Debian / Ubuntu instead

Debian/Ubuntu's fastboot packages are broken and years out of date — use Google's standalone platform-tools instead:

Debian / Ubuntu
sudo apt install libarchive-tools openssh-client
curl -O https://dl.google.com/android/repository/platform-tools_r35.0.2-linux.zip
echo 'acfdcccb123a8718c46c46c059b2f621140194e5ec1ac9d81715be3d6ab6cd0a  platform-tools_r35.0.2-linux.zip' | sha256sum -c
bsdtar xvf platform-tools_r35.0.2-linux.zip
export PATH="$PWD/platform-tools:$PATH"

The sha256sum -c check confirms you got the official archive. The PATH export only applies to the current terminal.

  1. Confirm the version — it must be at least 35.0.1:
Terminal
fastboot --version

Expected output, e.g.: fastboot version 35.0.2-12147458

05

Boot to fastboot & unlock the bootloader

The moment the phone stops being “stock”.

  1. Power off the phone. Then hold Volume Down while it boots (or reboot and hold Volume Down immediately).
  2. Wait for the red warning triangle and the words “Fastboot Mode”. Do not press the power button to start — leave it paused for the installer to connect.
  3. Connect the USB cable. On Linux, the udev rules must be in place before the device is plugged in.

Now unlock. In the web installer, click Unlock bootloader:

Web installer
# Equivalent CLI command:
fastboot flashing unlock

Confirm the prompt on the phone — Volume keys to select, power to confirm. This wipes all data and the secure element.

06

Flash GrapheneOS

Factory images replace the stock OS and wipe everything again.

The installer handles firmware, reboots, and the OS flash automatically. The phone should stay untouched until it's done.

Route AWeb installer

  1. Click Download release — the factory images for your device (a couple of GB, extracted in your browser's storage).
  2. Click Flash release and wait. The script flashes the latest firmware, reboots back into the bootloader, and flashes the OS. Don't interact with the device while it runs.

Route BCommand line

  1. Grab the official signing key and the factory images for the Pixel 8 Pro (husky). Replace <VERSION> with the current release from grapheneos.org/releases:
Terminal — download
curl -O https://releases.grapheneos.org/allowed_signers
curl -O https://releases.grapheneos.org/husky-install-<VERSION>.zip
curl -O https://releases.grapheneos.org/husky-install-<VERSION>.zip.sig
  1. Verify the signature. Anyone can host a ZIP; this check is how you know it's actually GrapheneOS. The key itself comes from the site above, cross-published on GitHub, Bluesky and X.
Terminal — verify
ssh-keygen -Y verify -f allowed_signers -I contact@grapheneos.org -n "factory images" -s husky-install-<VERSION>.zip.sig < husky-install-<VERSION>.zip

Expected output: Good "factory images" signature for contact@grapheneos.org with ED25519 key SHA256:AhgHif0mei+9aNyKLfMZBh2yptHdw/aN7Tlh/j2eFwM

  1. Extract, enter the directory, and flash:
Linux
bsdtar xvf husky-install-<VERSION>.zip
cd husky-install-<VERSION>
bash flash-all.sh
macOS / Windows instead

Same steps, with the standard tar instead of bsdtar.

macOS / Windows
tar xvf husky-install-<VERSION>.zip
cd husky-install-<VERSION>
bash flash-all.sh
07

Lock the bootloader

Critical — this is what makes verified boot meaningful.

Locking the bootloader enables full verified boot: every boot verifies the firmware and OS, rollback protection is enforced, and fastboot can no longer flash, format, or erase partitions. Any modification to the OS partitions is detected.

The phone is back in the bootloader after flashing. Lock it now — before using the device:

Web installer / CLI
# Web installer: click "Lock bootloader"
fastboot flashing lock

Confirm on the device (volume keys + power). Locking wipes all data again — which is fine, since the fresh install has nothing on it yet.

08

First boot & verify

Boot, harden, and confirm the install is genuine.

  1. Boot the phone — power button with the default “Start” option selected. The yellow notice appears briefly; note the hash shown.
  2. Disable OEM unlocking again. The final screen of first-time setup has an “OEM unlocking” toggle, checked by default — uncheck it. It stays available in developer settings if you ever need it.
  3. Verify with Auditor. Install the Auditor app on a second Android device and pair via QR code. It uses hardware attestation to confirm the firmware, OS, and boot chain are genuine — without trusting the phone itself. Results show on the second device, not the one being verified.
  4. Check the verified-boot key hash. On the yellow boot notice, the Pixel 8 Pro (8th-gen) shows the full SHA-256. It must match the official value:
Pixel 8 Pro — official verified boot key hash
896db2d09d84e1d6bb747002b8a114950b946e5825772a9d48ba7eb01d118c1c

A mismatch means the OS wasn't signed by the official key — stop and investigate before putting data on the device. (Verified boot itself enforces this automatically; the manual check is a belt-and-braces confirmation.)

Quick checklist

Further reading: the usage guide, the FAQ, and the official community channels — people are almost always around to help if you get stuck.

09

What you gain, what you may lose

A fair accounting before you make it yours — no hype, no fear. GrapheneOS is a trade, not a miracle.

Installation is the easy part. The harder question is whether the life after it suits you. GrapheneOS removes Google's reach from your device, and that single decision quietly reshapes what your phone can and can't do. The honest truth in 2026 is that it has never been closer to a drop-in replacement for stock Android — but it is not identical, and the differences matter. Consider them before you commit.

What you gain

  • Your privacy back. No Google telemetry by default. Nothing phones home with your location, habits, or what you type.
  • Hardened against the real world. A hardened kernel and WebView, a stricter app sandbox, and hardware memory tagging that stops whole classes of attacks before they start.
  • Verified boot you can actually trust. The OS is checked on every boot, and you can prove it's genuine with hardware attestation — not just take someone's word for it.
  • No carrier or vendor bloat. A clean, quiet system you decide what goes into.
  • Updates on your terms. Monthly security patches, delivered by the project directly — not gated on a carrier or an update channel.
  • Long support. The Pixel 8 Pro is guaranteed security updates through the next several years.

What you may lose

  • Google Pay / tap-to-pay, permanently. It needs system-level NFC access GrapheneOS will never grant. No update will change this. Carry a card, or a watch with its own NFC.
  • A few banking apps. Most work with sandboxed Google Play; a few that demand Google's device certification still block you. Check yours before switching.
  • Google's ecosystem glue. Full Google app cross-features and some account integrations are reduced. The essentials — messages, maps, mail, streaming — work; the magic links between them may not.
  • Android Auto, in part. It works now, but it can take extra setup and has occasional rough edges on the road.
  • RCS hiccups. Google Messages' rich-chat can drop after updates. SMS and MMS are rock solid; RCS sometimes needs a nudge.
  • Zero apps out of the box. No Play Store, no defaults. You'll assemble your own stack — part of the point, but a small chore at first.
A GrapheneOS home screen — a quiet black desktop with only a handful of apps.
A GrapheneOS home screen — a quiet desktop with nothing you didn't choose. Screenshot by Omilc, CC BY-SA 2.5.
After installation · Keep this nearby

First-day checks — and how to go back

Give the phone a few minutes before judging it. Test the things you rely on most while your old phone or backup is still available. If either OS is not a fit, returning to official stock firmware is possible; it is another full wipe, not an in-place undo.

After install

  • Finish updates first. Install the latest system and app updates, then reboot once.
  • Test essentials. Make a call, send SMS/RCS, check mobile data, Wi-Fi, Bluetooth, camera, GPS, alarms and your banking apps.
  • Restore carefully. Bring back photos and contacts before sensitive accounts; re-enrol passkeys, 2FA and eSIMs if required.
  • GrapheneOS: keep the bootloader locked and OEM unlocking disabled after setup. Consider Auditor from a second Android device.
  • LineageOS: expect an unlocked-bootloader warning unless you have verified that your exact device/build supports relocking.

Need to go back?

Do not relock a LineageOS device blindly. An incompatible lock can brick the phone. Follow the device-specific LineageOS recovery or return instructions first.

  • GrapheneOS: use the official web installer, choose the Pixel 8 Pro (husky), and follow its return to stock flow. It downloads and flashes the matching official factory image.
  • LineageOS: use Google’s official Pixel factory image for husky and the current Pixel flashing instructions. Verify the image, flash it, then only lock the bootloader when the official procedure says it is safe.
  • Before flashing: back up again, remove accounts where instructed, charge the phone, use a direct USB connection, and expect the device to be erased.

Sources change as releases change. Always prefer the current official instructions linked below over a cached command or an old video.