aboutsummaryrefslogtreecommitdiff
path: root/blog/graphene-os
diff options
context:
space:
mode:
Diffstat (limited to 'blog/graphene-os')
-rw-r--r--blog/graphene-os/index.org154
1 files changed, 154 insertions, 0 deletions
diff --git a/blog/graphene-os/index.org b/blog/graphene-os/index.org
new file mode 100644
index 0000000..2e34a00
--- /dev/null
+++ b/blog/graphene-os/index.org
@@ -0,0 +1,154 @@
+#+title: Installing Graphene OS on the Pixel 6 Pro
+#+date: 2022-09-21
+#+description: A retrospective on the successful command-line installation of Graphene OS on a Pixel 6 Pro.
+#+filetags: :privacy:
+
+* Introduction
+After using iOS for a couple of years, I finally took the plunge and
+purchased a Pixel 6 Pro in order to test and use [GrapheneOS]
+([[https://grapheneos.org]]).
+
+The installation process was rather quick once you have the tools and
+files you need. Overall, it can be done in just a few minutes.
+
+* Gathering Tools & Files
+** Android Tools
+First, in order to interact with the device, we will need the
+[[https://developer.android.com/studio/releases/platform-tools.html][Android
+platform tools]]. Find the Linux download and save the ZIP folder to
+your preferred location.
+
+Once we've downloaded the files, we will need to unzip them, enter the
+directory, and move the necessary executables to a central location,
+such as =/usr/bin/=. For this installation, we only need the =fastboot=
+and =adb= executables.
+
+#+begin_src sh
+cd ~/Downloads
+#+end_src
+
+#+begin_src sh
+unzip platform-tools_r33.0.3-linux.zip
+cd platform-tools
+sudo mv fastboot /usr/bin/
+sudo mv adb /usr/bin
+#+end_src
+
+** GrapheneOS Files
+Next, we need the [[https://grapheneos.org/releases][GrapheneOS files]]
+for our device and model. For example, the Pixel 6 Pro is codenamed
+=raven= on the release page.
+
+Once we have the links, let's download them to our working directory:
+
+#+begin_src sh
+curl -O https://releases.grapheneos.org/factory.pub
+curl -0 https://releases.grapheneos.org/raven-factory-2022091400.zip
+curl -0 https://releases.grapheneos.org/raven-factory-2022091400.zip.sig
+#+end_src
+
+1. Validate Integrity
+
+ In order to validate the integrity of the downloaded files, we will
+ need the =signify= package and Graphene's =factory.pub= file.
+
+ #+begin_src sh
+ sudo dnf install signify
+ #+end_src
+
+ #+begin_src sh
+ curl -O https://releases.grapheneos.org/factory.pub
+ #+end_src
+
+ Then we can validate the files and ensure that no data was corrupted
+ or modified before it was saved to our device.
+
+ #+begin_src sh
+ signify -Cqp factory.pub -x raven-factory-2022091400.zip.sig && echo verified
+ #+end_src
+
+2. Unzip Files
+
+ Once the files are verified, we can unzip the Graphene image and
+ enter the directory:
+
+ #+begin_src sh
+ unzip raven-factory-2022091400.zip && cd raven-factory-2022091400
+ #+end_src
+
+* Installation Process
+** Enable Developer Debugging & OEM Unlock
+Before we can actually flash anything to the phone, we will need to
+enable OEM Unlocking, as well as either USB Debugging or Wireless
+Debugging, depending on which method we will be using.
+
+To start, enable developer mode by going to =Settings= > =About= and
+tapping =Build Number= seven (7) times. You may need to enter your PIN
+to enable this mode.
+
+Once developer mode is enabled, go to =Settings= > =System= >
+=Devloper Options= and enable OEM Unlocking, as well as USB or Wireless
+Debugging. In my case, I chose USB Debugging and performed all actions
+via USB cable.
+
+Once these options are enabled, plug the phone into the computer and
+execute the following command:
+
+#+begin_src sh
+adb devices
+#+end_src
+
+If an unauthorized error occurs, make sure the USB mode on the phone is
+changed from charging to something like "File Transfer" or "PTP." You
+can find the USB mode in the notification tray.
+
+** Reboot Device
+Once we have found the device via =adb=, we can either boot into the
+bootloader interface by holding the volume down button while the phone
+reboots or by executing the following command:
+
+#+begin_src sh
+adb reboot bootloader
+#+end_src
+
+** Unlock the Bootloader
+The phone will reboot and load the bootloader screen upon startup. At
+this point, we are ready to start the actual flashing of GrapheneOS onto
+the device.
+
+*NOTE*: In my situation, I needed to use =sudo= with every =fastboot=
+command, but not with =adb= commands. I am not sure if this is standard
+or a Fedora quirk, but I'm documenting my commands verbatim in this
+post.
+
+First, we start by unlocking the bootloader so that we can load other
+ROMs:
+
+#+begin_src sh
+sudo fastboot flashing unlock
+#+end_src
+
+** Flashing Factory Images
+Once the phone is unlocked, we can flash it with the =flash-all.sh=
+script found inside the =raven-factory-2022091400= folder we entered
+earlier:
+
+#+begin_src sh
+sudo ./flash-all.sh
+#+end_src
+
+This process should take a few minutes and will print informational
+messages as things progress. Avoid doing anything on the phone while
+this process is operating.
+
+** Lock the Bootloader
+If everything was successful, the phone should reboot a few times and
+finally land back on the bootloader screen. At this point, we can
+re-lock the bootloader to enable full verified boot and protect the
+device from unwanted flashing or erasure of data.
+
+#+begin_src sh
+sudo fastboot flashing lock
+#+end_src
+
+Once done, the device will be wiped and ready for a fresh set-up!