Skip to main content

Guangzhou, China

GraphenOS

Installation on a Pixel 7

  1. Enable the developer options menu by going to Settings > About phone/tablet and repeatedly pressing the Build number menu entry until developer mode is enabled.
  2. go to Settings > System > Developer options and toggle on the OEM unlocking setting. On device model variants (SKUs) which support being sold as locked devices by carriers, enabling OEM unlocking requires internet access so that the stock OS can check if the device was sold as locked by a carrier.
  3. Obtaining fastboot on Arch Linux by installing android-tools with sudo pacman -S android-tools, fastboot --version fastboot version 34.0.4-android-tools
  4. Flashing as non-root on Arch Linux requires udev: sudo pacman -S android-udev
  5. You need to boot your device into the bootloader interface. To do this, you need to hold the volume down button while the device boots. The easiest approach is to reboot the device and begin holding the volume down button until it boots up into the bootloader interface.
  6. Unlock the bootloader to allow flashing the OS and firmware: fastboot flashing unlock The command needs to be confirmed on the device and will wipe all data. Use one of the volume buttons to switch the selection to accepting it and the power button to confirm. OKAY [ 0.009s] Finished. Total time: 0.009s. Do not start the device - remain in bootloader until completely flashed.
  7. Get the GraphenOS Image:
  • curl -O https://releases.grapheneos.org/allowed_signers
  • Download the factory images for the device from the releases page. For example, to download the VERSION release for a device with the codename DEVICE_NAME:
    • curl -O https://releases.grapheneos.org/DEVICE_NAME-factory-VERSION.zip => curl -O https://releases.grapheneos.org/panther-factory-2024031400.zip
    • curl -O https://releases.grapheneos.org/DEVICE_NAME-factory-VERSION.zip.sig => curl -O https://releases.grapheneos.org/panther-factory-2024031400.zip.sig
  1. Verify the factory images using the signature:
  • ssh-keygen -Y verify -f allowed_signers -I contact@grapheneos.org -n "factory images" -s DEVICE_NAME-factory-VERSION.zip.sig < DEVICE_NAME-factory-VERSION.zip => ssh-keygen -Y verify -f allowed_signers -I contact@grapheneos.org -n "factory images" -s panther-factory-2024031400.zip.sig < panther-factory-2024031400.zip
    • Good "factory images" signature for contact@grapheneos.org with ED25519 key SHA256:AhgHif0mei+9aNyKLfMZBh2yptHdw/aN7Tlh/j2eFwM
  1. The initial install will be performed by flashing the factory images. This will replace the existing OS installation and wipe all the existing data.
  • unzip DEVICE_NAME-factory-VERSION.zip => unzip panther-factory-2024031400.zip
  • cd DEVICE_NAME-factory-VERSION => cd panther-factory-2024031400
  1. Flash the images with the flash-all script in the directory:
  • ./flash-all.sh => Finished. Total time: 110.445s. Rebooting into bootloader
  1. GrapheneOS did not boot. On first attempt it hang after the Google Logo. After the automatic reboot you have the option to do a factory reset - this solved it.
  2. Reboot into the boot loader and lock it again with fastboot flashing lock.