diff options
author | Christian Cleberg <hello@cleberg.net> | 2024-03-04 22:34:28 -0600 |
---|---|---|
committer | Christian Cleberg <hello@cleberg.net> | 2024-03-04 22:34:28 -0600 |
commit | 797a1404213173791a5f4126a77ad383ceb00064 (patch) | |
tree | fcbb56dc023c1e490df70478e696041c566e58b4 /blog/graphene-os/index.org | |
parent | 3db79e7bb6a34ee94935c22d7f0e18cf227c7813 (diff) | |
download | cleberg.net-797a1404213173791a5f4126a77ad383ceb00064.tar.gz cleberg.net-797a1404213173791a5f4126a77ad383ceb00064.tar.bz2 cleberg.net-797a1404213173791a5f4126a77ad383ceb00064.zip |
initial migration to test org-mode
Diffstat (limited to 'blog/graphene-os/index.org')
-rw-r--r-- | blog/graphene-os/index.org | 154 |
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! |