adjust approach to header links

This commit is contained in:
Daniel Micay 2019-06-03 12:26:29 -04:00
parent 3c65a4589b
commit a7848665f1
9 changed files with 101 additions and 145 deletions

View File

@ -20,7 +20,7 @@
<meta property="og:site_name" content="GrapheneOS"/> <meta property="og:site_name" content="GrapheneOS"/>
<link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/> <link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/>
<link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/> <link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/>
<link rel="stylesheet" href="/grapheneos.css?8"/> <link rel="stylesheet" href="/grapheneos.css?9"/>
<link rel="manifest" href="/manifest.webmanifest"/> <link rel="manifest" href="/manifest.webmanifest"/>
<link rel="canonical" href="https://grapheneos.org/build"/> <link rel="canonical" href="https://grapheneos.org/build"/>
</head> </head>
@ -38,10 +38,11 @@
</ul> </ul>
</nav> </nav>
<div id="content"> <div id="content">
<h1 id="build">Build</h1> <h1 id="build">
<a href="#build">Build</a>
</h1>
<h2 id="build-dependencies"> <h2 id="build-dependencies">
Build dependencies <a href="#build-dependencies">Build dependencies</a>
<a href="#build-dependencies"></a>
</h2> </h2>
<ul> <ul>
<li>x86_64 Linux build environment (macOS is not supported, unlike AOSP which <li>x86_64 Linux build environment (macOS is not supported, unlike AOSP which
@ -53,8 +54,7 @@
</ul> </ul>
<h2 id="downloading-source-code"> <h2 id="downloading-source-code">
Downloading source code <a href="#downloading-source-code">Downloading source code</a>
<a href="#downloading-source-code"></a>
</h2> </h2>
<p>Since this is syncing the sources for the entire operating system and application <p>Since this is syncing the sources for the entire operating system and application
@ -65,8 +65,7 @@
work properly than dealing with a moving target.</p> work properly than dealing with a moving target.</p>
<h2 id="development-branch"> <h2 id="development-branch">
Development branch <a href="#development-branch">Development branch</a>
<a href="#development-branch"></a>
</h2> </h2>
<p>The pie branch is currently used for all supported devices:</p> <p>The pie branch is currently used for all supported devices:</p>
@ -81,8 +80,7 @@ repo sync -j32</pre>
succeed.</p> succeed.</p>
<h2 id="stable-release"> <h2 id="stable-release">
Stable release <a href="#stable-release">Stable release</a>
<a href="#stable-release"></a>
</h2> </h2>
<p>Pick a specific build for a device from the <a href="/releases">releases page</a> <p>Pick a specific build for a device from the <a href="/releases">releases page</a>
@ -118,8 +116,7 @@ cd ../..</pre>
verify by default.</p> verify by default.</p>
<h2 id="updating-and-switching-branches-or-tags"> <h2 id="updating-and-switching-branches-or-tags">
Updating and switching branches or tags <a href="#updating-and-switching-branches-or-tags">Updating and switching branches or tags</a>
<a href="#updating-and-switching-branches-or-tags"></a>
</h2> </h2>
<p>To update the source tree, run the <code>repo init</code> command again to select <p>To update the source tree, run the <code>repo init</code> command again to select
@ -131,8 +128,7 @@ cd ../..</pre>
GrapheneOS only provides a stable history via tags.</p> GrapheneOS only provides a stable history via tags.</p>
<h2 id="browser-and-webview"> <h2 id="browser-and-webview">
Browser and WebView <a href="#browser-and-webview">Browser and WebView</a>
<a href="#browser-and-webview"></a>
</h2> </h2>
Before building GrapheneOS, you need to build Chromium for the WebView and Before building GrapheneOS, you need to build Chromium for the WebView and
@ -184,8 +180,7 @@ git am ../chromium_patches/*.patch</pre>
<code>frameworks/base/core/res/res/xml/config_webview_packages</code>.</p> <code>frameworks/base/core/res/res/xml/config_webview_packages</code>.</p>
<h2 id="kernel"> <h2 id="kernel">
Kernel <a href="#kernel">Kernel</a>
<a href="#kernel"></a>
</h2> </h2>
<p>The kernel needs to be built in advance, since it uses a separate build system.</p> <p>The kernel needs to be built in advance, since it uses a separate build system.</p>
@ -212,8 +207,7 @@ git submodule update --init
generated per the instructions below before building the kernel.</em></p> generated per the instructions below before building the kernel.</em></p>
<h2 id="setting-up-the-os-build-environment"> <h2 id="setting-up-the-os-build-environment">
Setting up the OS build environment <a href="#setting-up-the-os-build-environment">Setting up the OS build environment</a>
<a href="#setting-up-the-os-build-environment"></a>
</h2> </h2>
<p>The build has to be done from bash as envsetup.sh is not compatible with other <p>The build has to be done from bash as envsetup.sh is not compatible with other
@ -233,8 +227,7 @@ git submodule update --init
make additional performance sacrifices to improve debugging.</p> make additional performance sacrifices to improve debugging.</p>
<h2 id="reproducible-builds"> <h2 id="reproducible-builds">
Reproducible builds <a href="#reproducible-builds">Reproducible builds</a>
<a href="#reproducible-builds"></a>
</h2> </h2>
<p>To reproduce a past build, you need to export <code>BUILD_DATETIME</code> and <p>To reproduce a past build, you need to export <code>BUILD_DATETIME</code> and
@ -251,8 +244,7 @@ git submodule update --init
signatures.</p> signatures.</p>
<h2 id="extracting-vendor-files-for-pixel-devices"> <h2 id="extracting-vendor-files-for-pixel-devices">
Extracting vendor files for Pixel devices <a href="#extracting-vendor-files-for-pixel-devices">Extracting vendor files for Pixel devices</a>
<a href="#extracting-vendor-files-for-pixel-devices"></a>
</h2> </h2>
<p>This section does not apply to devices where no extra vendor files are required (HiKey, HiKey 960, emulator, generic targets).</p> <p>This section does not apply to devices where no extra vendor files are required (HiKey, HiKey 960, emulator, generic targets).</p>
@ -276,8 +268,7 @@ mv vendor/android-prepare-vendor/DEVICE/BUILD_ID/vendor/google_devices/* vendor/
passed with <code>--timestamp</code> (seconds since Epoch).</p> passed with <code>--timestamp</code> (seconds since Epoch).</p>
<h2 id="building"> <h2 id="building">
Building <a href="#building">Building</a>
<a href="#building"></a>
</h2> </h2>
<p>Incremental builds (i.e. starting from the old build) usually work for development <p>Incremental builds (i.e. starting from the old build) usually work for development
@ -295,8 +286,7 @@ mv vendor/android-prepare-vendor/DEVICE/BUILD_ID/vendor/google_devices/* vendor/
<pre>make target-files-package -j20</pre> <pre>make target-files-package -j20</pre>
<h2 id="faster-builds-for-development-use-only"> <h2 id="faster-builds-for-development-use-only">
Faster builds for development use only <a href="#faster-builds-for-development-use-only">Faster builds for development use only</a>
<a href="#faster-builds-for-development-use-only"></a>
</h2> </h2>
<p>The normal production build process involves building a target files package to be <p>The normal production build process involves building a target files package to be
@ -318,8 +308,7 @@ mv vendor/android-prepare-vendor/DEVICE/BUILD_ID/vendor/google_devices/* vendor/
keys.</p> keys.</p>
<h2 id="generating-release-signing-keys"> <h2 id="generating-release-signing-keys">
Generating release signing keys <a href="#generating-release-signing-keys">Generating release signing keys</a>
<a href="#generating-release-signing-keys"></a>
</h2> </h2>
<p>Keys need to be generated for resigning completed builds from the publicly <p>Keys need to be generated for resigning completed builds from the publicly
@ -343,8 +332,7 @@ mv vendor/android-prepare-vendor/DEVICE/BUILD_ID/vendor/google_devices/* vendor/
done before building the kernel</em></p> done before building the kernel</em></p>
<h3 id="android-verified-boot-1.0"> <h3 id="android-verified-boot-1.0">
Android Verified Boot 1.0 <a href="#android-verified-boot-1.0">Android Verified Boot 1.0</a>
<a href="#android-verified-boot-1.0"></a>
</h3> </h3>
<p>To generate keys for marlin (you should use unique keys per device variant):</p> <p>To generate keys for marlin (you should use unique keys per device variant):</p>
@ -371,8 +359,7 @@ out/host/linux-x86/bin/generate_verity_key -convert keys/marlin/verity.x509.pem
no separate sailfish kernel.</p> no separate sailfish kernel.</p>
<h3 id="android-verified-boot-2.0"> <h3 id="android-verified-boot-2.0">
Android Verified Boot 2.0 (AVB) <a href="#android-verified-boot-2.0">Android Verified Boot 2.0 (AVB)</a>
<a href="#android-verified-boot-2.0"></a>
</h3> </h3>
<p>To generate keys for crosshatch (you should use unique keys per device <p>To generate keys for crosshatch (you should use unique keys per device
@ -392,8 +379,7 @@ cd ../..</pre>
rather to set the public key used by the device to enforce verified boot.</p> rather to set the public key used by the device to enforce verified boot.</p>
<h2 id="generating-signed-factory-images-and-full-update-packages"> <h2 id="generating-signed-factory-images-and-full-update-packages">
Generating signed factory images and full update packages <a href="#generating-signed-factory-images-and-full-update-packages">Generating signed factory images and full update packages</a>
<a href="#generating-signed-factory-images-and-full-update-packages"></a>
</h2> </h2>
<p>Build the tool needed to generate A/B updates:</p> <p>Build the tool needed to generate A/B updates:</p>
@ -413,8 +399,7 @@ cd ../..</pre>
zip.</p> zip.</p>
<h2 id="prebuilt-code"> <h2 id="prebuilt-code">
Prebuilt code <a href="#prebuilt-code">Prebuilt code</a>
<a href="#prebuilt-code"></a>
</h2> </h2>
Like the Android Open Source Project, GrapheneOS contains some code that's built Like the Android Open Source Project, GrapheneOS contains some code that's built
@ -422,25 +407,21 @@ cd ../..</pre>
gradually expanded to cover building all of it. gradually expanded to cover building all of it.
<h3 id="prebuilt-apps"> <h3 id="prebuilt-apps">
Prebuilt apps <a href="#prebuilt-apps">Prebuilt apps</a>
<a href="#prebuilt-apps"></a>
</h3> </h3>
<p>The Auditor app is simply built from the latest upstream tag and bundled as an apk into <p>The Auditor app is simply built from the latest upstream tag and bundled as an apk into
external/ repositories. There are no modifications to it for GrapheneOS.</p> external/ repositories. There are no modifications to it for GrapheneOS.</p>
<h2 id="testing"> <h2 id="testing">
Testing <a href="#testing">Testing</a>
<a href="#testing"></a>
</h2> </h2>
<h3 id="compatibility-test-suite"> <h3 id="compatibility-test-suite">
Compatibility Test Suite <a href="#compatibility-test-suite">Compatibility Test Suite</a>
<a href="#compatibility-test-suite"></a>
</h3> </h3>
<h4 id="compatibility-test-suite-download"> <h4 id="compatibility-test-suite-download">
Download <a href="#compatibility-test-suite-download">Download</a>
<a href="#compatibility-test-suite-download"></a>
</h4> </h4>
<p>Testing with the Compatibility Test Suite (CTS) can be done by either building the <p>Testing with the Compatibility Test Suite (CTS) can be done by either building the
@ -453,8 +434,7 @@ cd ../..</pre>
CTS Media Files also needs to be downloaded from that section.</p> CTS Media Files also needs to be downloaded from that section.</p>
<h4 id="compatibility-test-suite-setup"> <h4 id="compatibility-test-suite-setup">
Setup <a href="#compatibility-test-suite-setup">Setup</a>
<a href="#compatibility-test-suite-setup"></a>
</h4> </h4>
<p>You'll need a device attached to your computer with ADB enabled along with the <p>You'll need a device attached to your computer with ADB enabled along with the
Android SDK installed. The build-tools and platform-tools packages need to be Android SDK installed. The build-tools and platform-tools packages need to be
@ -495,8 +475,7 @@ export PATH="$PATH:$HOME/sdk/tools:$HOME/sdk/tools/bin:$HOME/sdk/platform-tools:
</ul> </ul>
<h4 id="compatibility-test-suite-run-modules"> <h4 id="compatibility-test-suite-run-modules">
Run modules <a href="#compatibility-test-suite-run-modules">Run modules</a>
<a href="#compatibility-test-suite-run-modules"></a>
</h4> </h4>
<p>Run the test harness:</p> <p>Run the test harness:</p>

View File

@ -20,7 +20,7 @@
<meta property="og:site_name" content="GrapheneOS"/> <meta property="og:site_name" content="GrapheneOS"/>
<link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/> <link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/>
<link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/> <link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/>
<link rel="stylesheet" href="/grapheneos.css?8"/> <link rel="stylesheet" href="/grapheneos.css?9"/>
<link rel="manifest" href="/manifest.webmanifest"/> <link rel="manifest" href="/manifest.webmanifest"/>
<link rel="canonical" href="https://grapheneos.org/contact"/> <link rel="canonical" href="https://grapheneos.org/contact"/>
</head> </head>
@ -38,7 +38,9 @@
</ul> </ul>
</nav> </nav>
<div id="content"> <div id="content">
<h1 id="contact">Contact</h1> <h1 id="contact">
<a href="#contact">Contact</a>
</h1>
<p>You can contact <a href="mailto:contact@grapheneos.org">contact@grapheneos.org</a> for topics <p>You can contact <a href="mailto:contact@grapheneos.org">contact@grapheneos.org</a> for topics
related to GrapheneOS. The <a href="mailto:security@grapheneos.org">security@grapheneos.org</a> related to GrapheneOS. The <a href="mailto:security@grapheneos.org">security@grapheneos.org</a>
address can be used for high priority security issues. The email address of address can be used for high priority security issues. The email address of
@ -49,16 +51,14 @@
<a href="https://twitter.com/DanielMicay">@DanielMicay</a> and is primarily focused on <a href="https://twitter.com/DanielMicay">@DanielMicay</a> and is primarily focused on
the privacy and security research/engineering work on GrapheneOS.</p> the privacy and security research/engineering work on GrapheneOS.</p>
<h2 id="community"> <h2 id="community">
Community <a href="#community">Community</a>
<a href="#community"></a>
</h2> </h2>
<p>The main forum currently used to discuss the project is the official <p>The main forum currently used to discuss the project is the official
<a href="https://reddit.com/r/GrapheneOS">/r/GrapheneOS subreddit</a> on Reddit.</p> <a href="https://reddit.com/r/GrapheneOS">/r/GrapheneOS subreddit</a> on Reddit.</p>
<p>The main IRC channel is #grapheneos on irc.freenode.net. The channel is bridged to <p>The main IRC channel is #grapheneos on irc.freenode.net. The channel is bridged to
Matrix and is available at #grapheneos:matrix.org for Matrix users.</p> Matrix and is available at #grapheneos:matrix.org for Matrix users.</p>
<h2 id="reporting-issues"> <h2 id="reporting-issues">
Reporting issues <a href="#reporting-issues">Reporting issues</a>
<a href="#reporting-issues"></a>
</h2> </h2>
<ul> <ul>
<li><a href="https://github.com/GrapheneOS/os_issue_tracker/issues">OS issue tracker</a></li> <li><a href="https://github.com/GrapheneOS/os_issue_tracker/issues">OS issue tracker</a></li>

View File

@ -20,7 +20,7 @@
<meta property="og:site_name" content="GrapheneOS"/> <meta property="og:site_name" content="GrapheneOS"/>
<link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/> <link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/>
<link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/> <link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/>
<link rel="stylesheet" href="/grapheneos.css?8"/> <link rel="stylesheet" href="/grapheneos.css?9"/>
<link rel="manifest" href="/manifest.webmanifest"/> <link rel="manifest" href="/manifest.webmanifest"/>
<link rel="canonical" href="https://grapheneos.org/donate"/> <link rel="canonical" href="https://grapheneos.org/donate"/>
</head> </head>
@ -38,10 +38,11 @@
</ul> </ul>
</nav> </nav>
<div id="content"> <div id="content">
<h1 id="donate">Donate</h1> <h1 id="donate">
<a href="#donate">Donate</a>
</h1>
<h2 id="bitcoin"> <h2 id="bitcoin">
Bitcoin <a href="#bitcoin">Bitcoin</a>
<a href="#bitcoin"></a>
</h2> </h2>
<p>You can send Bitcoin donations to the following address to support this project:</p> <p>You can send Bitcoin donations to the following address to support this project:</p>
<div id="bitcoin_address"> <div id="bitcoin_address">
@ -51,8 +52,7 @@
</a> </a>
</div> </div>
<h2 id="paypal"> <h2 id="paypal">
PayPal <a href="#paypal">PayPal</a>
<a href="#paypal"></a>
</h2> </h2>
<p>PayPal donations can be sent to danielmicay@gmail.com. Please mention GrapheneOS in <p>PayPal donations can be sent to danielmicay@gmail.com. Please mention GrapheneOS in
the donation description to allow for proper record keeping, since PayPal the donation description to allow for proper record keeping, since PayPal

View File

@ -26,6 +26,10 @@ a:hover {
text-decoration: underline; text-decoration: underline;
} }
h1 a, h1 a:visited, h2 a, h2 a:visited, h3 a, h3 a:visited, h4 a, h4 a:visited, h5 a, h5 a:visited, h6 a, h6 a:visited {
color: rgba(0, 0, 0, 0.87); /* 87% black */
}
pre { pre {
overflow-x: auto; overflow-x: auto;
} }

View File

@ -20,7 +20,7 @@
<meta property="og:site_name" content="GrapheneOS"/> <meta property="og:site_name" content="GrapheneOS"/>
<link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/> <link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/>
<link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/> <link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/>
<link rel="stylesheet" href="/grapheneos.css?8"/> <link rel="stylesheet" href="/grapheneos.css?9"/>
<link rel="manifest" href="/manifest.webmanifest"/> <link rel="manifest" href="/manifest.webmanifest"/>
<link rel="canonical" href="https://grapheneos.org/"/> <link rel="canonical" href="https://grapheneos.org/"/>
</head> </head>
@ -38,7 +38,9 @@
</ul> </ul>
</nav> </nav>
<div id="content"> <div id="content">
<h1 id="grapheneos">GrapheneOS</h1> <h1 id="grapheneos">
<a href="#grapheneos">GrapheneOS</a>
</h1>
<p>GrapheneOS is an open source privacy and security focused mobile OS with Android <p>GrapheneOS is an open source privacy and security focused mobile OS with Android
app compatibility.</p> app compatibility.</p>
<p>Official Releases are available on the <a href="/releases">releases page</a> and <p>Official Releases are available on the <a href="/releases">releases page</a> and
@ -57,8 +59,7 @@
<p>The sources are available via the <p>The sources are available via the
<a href="https://github.com/GrapheneOS/platform_manifest">manifest on GitHub</a>.</p> <a href="https://github.com/GrapheneOS/platform_manifest">manifest on GitHub</a>.</p>
<h2 id="early-stage-of-development"> <h2 id="early-stage-of-development">
Early stage of development <a href="#early-stage-of-development">Early stage of development</a>
<a href="#early-stage-of-development"></a>
</h2> </h2>
<p>GrapheneOS is a privacy / security research and engineering project that has been <p>GrapheneOS is a privacy / security research and engineering project that has been
under way for over 5 years. It recently became rebranded as GrapheneOS and is taking a under way for over 5 years. It recently became rebranded as GrapheneOS and is taking a
@ -76,8 +77,7 @@
for the project to have a strong development team with proper infrastructure behind for the project to have a strong development team with proper infrastructure behind
it.</p> it.</p>
<h2 id="roadmap"> <h2 id="roadmap">
Roadmap <a href="#roadmap">Roadmap</a>
<a href="#roadmap"></a>
</h2> </h2>
<p>Details on the roadmap of the project will be posted on the site in the near <p>Details on the roadmap of the project will be posted on the site in the near
future. In the long term, it aims to move beyond a hardened fork of the Android Open future. In the long term, it aims to move beyond a hardened fork of the Android Open
@ -89,8 +89,7 @@
limited to research and submitting suggestions and bug reports upstream. In the long limited to research and submitting suggestions and bug reports upstream. In the long
term, the project will need to move into the hardware space.</p> term, the project will need to move into the hardware space.</p>
<h2 id="device-support"> <h2 id="device-support">
Device support <a href="#device-support">Device support</a>
<a href="#device-support"></a>
</h2> </h2>
<p>In the current early stage of the project, GrapheneOS provides production releases <p>In the current early stage of the project, GrapheneOS provides production releases
for the Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3 and Pixel 3 XL. It will support for the Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3 and Pixel 3 XL. It will support

View File

@ -20,7 +20,7 @@
<meta property="og:site_name" content="GrapheneOS"/> <meta property="og:site_name" content="GrapheneOS"/>
<link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/> <link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/>
<link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/> <link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/>
<link rel="stylesheet" href="/grapheneos.css?8"/> <link rel="stylesheet" href="/grapheneos.css?9"/>
<link rel="manifest" href="/manifest.webmanifest"/> <link rel="manifest" href="/manifest.webmanifest"/>
<link rel="canonical" href="https://grapheneos.org/install"/> <link rel="canonical" href="https://grapheneos.org/install"/>
</head> </head>
@ -38,10 +38,11 @@
</ul> </ul>
</nav> </nav>
<div id="content"> <div id="content">
<h1 id="install">Install</h1> <h1 id="install">
<a href="#install">Install</a>
</h1>
<h2 id="prerequisites"> <h2 id="prerequisites">
Prerequisites <a href="#prerequisites">Prerequisites</a>
<a href="#prerequisites"></a>
</h2> </h2>
<p>You should have at least 2GB of free memory available.</p> <p>You should have at least 2GB of free memory available.</p>
<p>You need the unlocked variant of one of the supported devices, not a locked carrier <p>You need the unlocked variant of one of the supported devices, not a locked carrier
@ -66,8 +67,7 @@
from several years ago are still shipped by Linux distributions like Debian and lack from several years ago are still shipped by Linux distributions like Debian and lack
the compatibility detection of modern versions so they can soft brick devices.</p> the compatibility detection of modern versions so they can soft brick devices.</p>
<h2 id="enabling-oem-unlocking"> <h2 id="enabling-oem-unlocking">
Enabling OEM unlocking <a href="#enabling-oem-unlocking">Enabling OEM unlocking</a>
<a href="#enabling-oem-unlocking"></a>
</h2> </h2>
<p>OEM unlocking needs to be enabled from within the operating system.</p> <p>OEM unlocking needs to be enabled from within the operating system.</p>
<p>Enable the developer settings menu by going to Settings ➔ System ➔ About phone and <p>Enable the developer settings menu by going to Settings ➔ System ➔ About phone and
@ -76,8 +76,7 @@
'Enable OEM unlocking' setting. This requires internet access on devices with Google 'Enable OEM unlocking' setting. This requires internet access on devices with Google
Play Services.</p> Play Services.</p>
<h2 id="unlocking-the-bootloader"> <h2 id="unlocking-the-bootloader">
Unlocking the bootloader <a href="#unlocking-the-bootloader">Unlocking the bootloader</a>
<a href="#unlocking-the-bootloader"></a>
</h2> </h2>
<p>First, boot into the bootloader interface. You can do this by turning off the <p>First, boot into the bootloader interface. You can do this by turning off the
device and then turning it on by holding both the Volume Down and Power buttons.</p> device and then turning it on by holding both the Volume Down and Power buttons.</p>
@ -85,8 +84,7 @@
<pre>fastboot flashing unlock</pre> <pre>fastboot flashing unlock</pre>
<p>The command needs to be confirmed on the device.</p> <p>The command needs to be confirmed on the device.</p>
<h2 id="obtaining-factory-images"> <h2 id="obtaining-factory-images">
Obtaining factory images <a href="#obtaining-factory-images">Obtaining factory images</a>
<a href="#obtaining-factory-images"></a>
</h2> </h2>
<p>The initial install will be performed by flashing the factory images. This will <p>The initial install will be performed by flashing the factory images. This will
replace the existing OS installation and wipe all the existing data.</p> replace the existing OS installation and wipe all the existing data.</p>
@ -96,8 +94,7 @@
gpg --verify blueline-factory-2019.04.01.19.zip.sig blueline-factory-2019.04.01.19.zip</pre> gpg --verify blueline-factory-2019.04.01.19.zip.sig blueline-factory-2019.04.01.19.zip</pre>
<p>When this signing key is replaced, the new key will be signed with it.</p> <p>When this signing key is replaced, the new key will be signed with it.</p>
<h2 id="flashing-factory-images"> <h2 id="flashing-factory-images">
Flashing factory images <a href="#flashing-factory-images">Flashing factory images</a>
<a href="#flashing-factory-images"></a>
</h2> </h2>
<p>Reboot into the bootloader interface to begin the flashing procedure.</p> <p>Reboot into the bootloader interface to begin the flashing procedure.</p>
<p>Next, extract the factory images and run the script to flash them. Note that the <p>Next, extract the factory images and run the script to flash them. Note that the
@ -115,8 +112,7 @@ TMPDIR="$PWD/tmp" ./flash-all.sh</pre>
<p>You should now proceed to locking the bootloader before using the device as locking <p>You should now proceed to locking the bootloader before using the device as locking
wipes the data again.</p> wipes the data again.</p>
<h2 id="locking-the-bootloader"> <h2 id="locking-the-bootloader">
Locking the bootloader <a href="#locking-the-bootloader">Locking the bootloader</a>
<a href="#locking-the-bootloader"></a>
</h2> </h2>
<p>Locking the bootloader is important as it enables full verified boot. It also <p>Locking the bootloader is important as it enables full verified boot. It also
prevents using fastboot to flash, format or erase partitions. Verified boot will prevents using fastboot to flash, format or erase partitions. Verified boot will
@ -131,14 +127,12 @@ TMPDIR="$PWD/tmp" ./flash-all.sh</pre>
reset.</p> reset.</p>
<p>Unlocking the bootloader again will perform a factory reset.</p> <p>Unlocking the bootloader again will perform a factory reset.</p>
<h2 id="disabling-oem-unlocking"> <h2 id="disabling-oem-unlocking">
Disabling OEM unlocking <a href="#disabling-oem-unlocking">Disabling OEM unlocking</a>
<a href="#disabling-oem-unlocking"></a>
</h2> </h2>
<p>OEM unlocking can be disabled again in the developer settings menu within the <p>OEM unlocking can be disabled again in the developer settings menu within the
operating system after booting it up again.</p> operating system after booting it up again.</p>
<h2 id="verifying-installation"> <h2 id="verifying-installation">
Verifying installation <a href="#verifying-installation">Verifying installation</a>
<a href="#verifying-installation"></a>
</h2> </h2>
<p>Verified boot authenticates and validates the firmware images and OS from the <p>Verified boot authenticates and validates the firmware images and OS from the
hardware root of trust. Since GrapheneOS supports full verified boot, the OS images hardware root of trust. Since GrapheneOS supports full verified boot, the OS images
@ -162,8 +156,7 @@ TMPDIR="$PWD/tmp" ./flash-all.sh</pre>
device. That makes it best to get the pairing done right after installation. You can device. That makes it best to get the pairing done right after installation. You can
also consider setting up the optional remote attestation service.</p> also consider setting up the optional remote attestation service.</p>
<h2 id="replacing-grapheneos-with-the-stock-os"> <h2 id="replacing-grapheneos-with-the-stock-os">
Replacing GrapheneOS with the stock OS <a href="#replacing-grapheneos-with-the-stock-os">Replacing GrapheneOS with the stock OS</a>
<a href="#replacing-grapheneos-with-the-stock-os"></a>
</h2> </h2>
<p>Installation of the stock OS via the stock factory images is the same process <p>Installation of the stock OS via the stock factory images is the same process
described above. However, before locking, there's an additional step to fully revert described above. However, before locking, there's an additional step to fully revert

View File

@ -20,7 +20,7 @@
<meta property="og:site_name" content="GrapheneOS"/> <meta property="og:site_name" content="GrapheneOS"/>
<link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/> <link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/>
<link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/> <link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/>
<link rel="stylesheet" href="/grapheneos.css?8"/> <link rel="stylesheet" href="/grapheneos.css?9"/>
<link rel="manifest" href="/manifest.webmanifest"/> <link rel="manifest" href="/manifest.webmanifest"/>
<link rel="canonical" href="https://grapheneos.org/releases"/> <link rel="canonical" href="https://grapheneos.org/releases"/>
</head> </head>
@ -38,7 +38,9 @@
</ul> </ul>
</nav> </nav>
<div id="content"> <div id="content">
<h1 id="releases">Releases</h1> <h1 id="releases">
<a href="#releases">Releases</a>
</h1>
<p>These releases are available as both tags in the source code repositories and <p>These releases are available as both tags in the source code repositories and
official builds.</p> official builds.</p>
<p>The factory images are used for the initial installation and can be verified with <p>The factory images are used for the initial installation and can be verified with
@ -70,14 +72,12 @@
<section id="stable-channel"> <section id="stable-channel">
<h2> <h2>
Stable channel <a href="#stable-channel">Stable channel</a>
<a href="#stable-channel"></a>
</h2> </h2>
<section id="crosshatch-stable"> <section id="crosshatch-stable">
<h3> <h3>
Pixel 3 XL <a href="#crosshatch-stable">Pixel 3 XL</a>
<a href="#crosshatch-stable"></a>
</h3> </h3>
<p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.002.2019.05.18.20">PQ3A.190505.002.2019.05.18.20</a></p> <p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.002.2019.05.18.20">PQ3A.190505.002.2019.05.18.20</a></p>
<ul> <ul>
@ -88,8 +88,7 @@
</section> </section>
<section id="blueline-stable"> <section id="blueline-stable">
<h3> <h3>
Pixel 3 <a href="#blueline-stable">Pixel 3</a>
<a href="#blueline-stable"></a>
</h3> </h3>
<p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.002.2019.05.18.20">PQ3A.190505.002.2019.05.18.20</a></p> <p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.002.2019.05.18.20">PQ3A.190505.002.2019.05.18.20</a></p>
<ul> <ul>
@ -100,8 +99,7 @@
</section> </section>
<section id="taimen-stable"> <section id="taimen-stable">
<h3> <h3>
Pixel 2 XL <a href="#taimen-stable">Pixel 2 XL</a>
<a href="#taimen-stable"></a>
</h3> </h3>
<p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p> <p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p>
<ul> <ul>
@ -112,8 +110,7 @@
</section> </section>
<section id="walleye-stable"> <section id="walleye-stable">
<h3> <h3>
Pixel 2 <a href="#walleye-stable">Pixel 2</a>
<a href="#walleye-stable"></a>
</h3> </h3>
<p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p> <p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p>
<ul> <ul>
@ -124,8 +121,7 @@
</section> </section>
<section id="marlin-stable"> <section id="marlin-stable">
<h3> <h3>
Pixel XL (legacy) <a href="#marlin-stable">Pixel XL (legacy)</a>
<a href="#marlin-stable"></a>
</h3> </h3>
<p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p> <p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p>
<ul> <ul>
@ -137,7 +133,7 @@
<section id="sailfish-stable"> <section id="sailfish-stable">
<h3> <h3>
Pixel (legacy) Pixel (legacy)
<a href="#sailfish-stable"></a> <a href="#sailfish-stable">Pixel (legacy)</a>
</h3> </h3>
<p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p> <p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p>
<ul> <ul>
@ -150,14 +146,12 @@
<section id="beta-channel"> <section id="beta-channel">
<h2> <h2>
Beta channel <a href="#beta-channel">Beta channel</a>
<a href="#beta-channel"></a>
</h2> </h2>
<section id="crosshatch-beta"> <section id="crosshatch-beta">
<h3> <h3>
Pixel 3 XL <a href="#crosshatch-beta">Pixel 3 XL</a>
<a href="#crosshatch-beta"></a>
</h3> </h3>
<p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.002.2019.05.18.20">PQ3A.190505.002.2019.05.18.20</a></p> <p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.002.2019.05.18.20">PQ3A.190505.002.2019.05.18.20</a></p>
<ul> <ul>
@ -168,8 +162,7 @@
</section> </section>
<section id="blueline-beta"> <section id="blueline-beta">
<h3> <h3>
Pixel 3 <a href="#blueline-beta">Pixel 3</a>
<a href="#blueline-beta"></a>
</h3> </h3>
<p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.002.2019.05.18.20">PQ3A.190505.002.2019.05.18.20</a></p> <p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.002.2019.05.18.20">PQ3A.190505.002.2019.05.18.20</a></p>
<ul> <ul>
@ -180,8 +173,7 @@
</section> </section>
<section id="taimen-beta"> <section id="taimen-beta">
<h3> <h3>
Pixel 2 XL <a href="#taimen-beta">Pixel 2 XL</a>
<a href="#taimen-beta"></a>
</h3> </h3>
<p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p> <p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p>
<ul> <ul>
@ -192,8 +184,7 @@
</section> </section>
<section id="walleye-beta"> <section id="walleye-beta">
<h3> <h3>
Pixel 2 <a href="#walleye-beta">Pixel 2</a>
<a href="#walleye-beta"></a>
</h3> </h3>
<p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p> <p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p>
<ul> <ul>
@ -204,8 +195,7 @@
</section> </section>
<section id="marlin-beta"> <section id="marlin-beta">
<h3> <h3>
Pixel XL (legacy) <a href="#marlin-beta">Pixel XL (legacy)</a>
<a href="#marlin-beta"></a>
</h3> </h3>
<p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p> <p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p>
<ul> <ul>
@ -216,8 +206,7 @@
</section> </section>
<section id="sailfish-beta"> <section id="sailfish-beta">
<h3> <h3>
Pixel (legacy) <a href="#sailfish-beta">Pixel (legacy)</a>
<a href="#sailfish-beta"></a>
</h3> </h3>
<p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p> <p>Version: <a href="https://github.com/GrapheneOS/platform_manifest/releases/tag/PQ3A.190505.001.2019.05.18.20">PQ3A.190505.001.2019.05.18.20</a></p>
<ul> <ul>
@ -229,16 +218,14 @@
</section> </section>
<h2 id="changelog"> <h2 id="changelog">
Changelog <a href="#changelog">Changelog</a>
<a href="#changelog"></a>
</h2> </h2>
<p>List of tagged releases. Snapshot releases without tags such as early releases of <p>List of tagged releases. Snapshot releases without tags such as early releases of
the project and early device support releases are not listed.</p> the project and early device support releases are not listed.</p>
<h3 id="2019.05.18.20"> <h3 id="2019.05.18.20">
2019.05.18.20 <a href="#2019.05.18.20">2019.05.18.20</a>
<a href="#2019.05.18.20"></a>
</h3> </h3>
<p>Tags:</p> <p>Tags:</p>
@ -273,8 +260,7 @@
</ul> </ul>
<h3 id="2019.05.08.15"> <h3 id="2019.05.08.15">
2019.05.08.15 <a href="#2019.05.08.15">2019.05.08.15</a>
<a href="#2019.05.08.15"></a>
</h3> </h3>
<p>Tags:</p> <p>Tags:</p>
@ -290,8 +276,7 @@
</ul> </ul>
<h3 id="2019.05.07.00"> <h3 id="2019.05.07.00">
2019.05.07.00 <a href="#2019.05.07.00">2019.05.07.00</a>
<a href="#2019.05.07.00"></a>
</h3> </h3>
<p>Tags:</p> <p>Tags:</p>
@ -358,8 +343,7 @@
</ul> </ul>
<h3 id="2019.04.01.19"> <h3 id="2019.04.01.19">
2019.04.01.19 <a href="#2019.04.01.19">2019.04.01.19</a>
<a href="#2019.04.01.19"></a>
</h3> </h3>
<p>Tags:</p> <p>Tags:</p>
@ -371,8 +355,7 @@
point.</p> point.</p>
<h3 id="2019.03.05.03"> <h3 id="2019.03.05.03">
2019.03.05.03 <a href="#2019.03.05.03">2019.03.05.03</a>
<a href="#2019.03.05.03"></a>
</h3> </h3>
<p>Tags:</p> <p>Tags:</p>

View File

@ -20,7 +20,7 @@
<meta property="og:site_name" content="GrapheneOS"/> <meta property="og:site_name" content="GrapheneOS"/>
<link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/> <link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/>
<link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/> <link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/>
<link rel="stylesheet" href="/grapheneos.css?8"/> <link rel="stylesheet" href="/grapheneos.css?9"/>
<link rel="manifest" href="/manifest.webmanifest"/> <link rel="manifest" href="/manifest.webmanifest"/>
<link rel="canonical" href="https://grapheneos.org/source"/> <link rel="canonical" href="https://grapheneos.org/source"/>
</head> </head>
@ -38,7 +38,9 @@
</ul> </ul>
</nav> </nav>
<div id="content"> <div id="content">
<h1 id="source">Source</h1> <h1 id="source">
<a href="#source">Source</a>
</h1>
<ul> <ul>
<li><a href="https://github.com/GrapheneOS/os_issue_tracker/issues">OS issue tracker</a></li> <li><a href="https://github.com/GrapheneOS/os_issue_tracker/issues">OS issue tracker</a></li>
<li><a href="https://github.com/GrapheneOS/grapheneos.org">Website repository and issue tracker</a></li> <li><a href="https://github.com/GrapheneOS/grapheneos.org">Website repository and issue tracker</a></li>

View File

@ -20,7 +20,7 @@
<meta property="og:site_name" content="GrapheneOS"/> <meta property="og:site_name" content="GrapheneOS"/>
<link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/> <link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico?0"/>
<link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/> <link rel="mask-icon" href="/safari_pinned_tab_icon.svg" color="#000000"/>
<link rel="stylesheet" href="/grapheneos.css?8"/> <link rel="stylesheet" href="/grapheneos.css?9"/>
<link rel="manifest" href="/manifest.webmanifest"/> <link rel="manifest" href="/manifest.webmanifest"/>
<link rel="canonical" href="https://grapheneos.org/usage"/> <link rel="canonical" href="https://grapheneos.org/usage"/>
</head> </head>
@ -38,19 +38,19 @@
</ul> </ul>
</nav> </nav>
<div id="content"> <div id="content">
<h1 id="usage">Usage</h1> <h1 id="usage">
<a href="#usage">Usage</a>
</h1>
<p><strong>This guide is still very new and will be filled with lots of additional <p><strong>This guide is still very new and will be filled with lots of additional
content over time.</strong></p> content over time.</strong></p>
<h2 id="auditor"> <h2 id="auditor">
Auditor <a href="#auditor">Auditor</a>
<a href="#auditor"></a>
</h2> </h2>
<p>See the <a href="https://attestation.app/tutorial">tutorial page on the site for the attestation sub-project</a>.</p> <p>See the <a href="https://attestation.app/tutorial">tutorial page on the site for the attestation sub-project</a>.</p>
<h2 id="updates"> <h2 id="updates">
Updates <a href="#updates">Updates</a>
<a href="#updates"></a>
</h2> </h2>
<p>The update system implements automatic background updates. It checks for updates <p>The update system implements automatic background updates. It checks for updates
@ -79,8 +79,7 @@
<p>Release changelogs are available <a href="/releases#changelog">in a section on the releases page</a>.</p> <p>Release changelogs are available <a href="/releases#changelog">in a section on the releases page</a>.</p>
<h3 id="updates-settings"> <h3 id="updates-settings">
Settings <a href="#updates-settings">Settings</a>
<a href="#updates-settings"></a>
</h3> </h3>
<p>The settings are available in the Settings app in System ➔ Advanced ➔ Update <p>The settings are available in the Settings app in System ➔ Advanced ➔ Update
@ -106,8 +105,7 @@
if it's left completely idle.</p> if it's left completely idle.</p>
<h3 id="updates-security"> <h3 id="updates-security">
Security <a href="#updates-security">Security</a>
<a href="#updates-security"></a>
</h3> </h3>
<p>The update server isn't a trusted party since updates are signed and verified along <p>The update server isn't a trusted party since updates are signed and verified along
@ -123,8 +121,7 @@
the Stable and Beta channels.</p> the Stable and Beta channels.</p>
<h3 id="updates-disabling"> <h3 id="updates-disabling">
Disabling <a href="#updates-disabling">Disabling</a>
<a href="#updates-disabling"></a>
</h3> </h3>
<p>It's highly recommended to leave automatic updates enabled and to configure the <p>It's highly recommended to leave automatic updates enabled and to configure the
@ -135,8 +132,7 @@
updates.</p> updates.</p>
<h2 id="default-connections"> <h2 id="default-connections">
Default connections <a href="#default-connections">Default connections</a>
<a href="#default-connections"></a>
</h2> </h2>
<p>GrapheneOS makes connections to the outside world to test connectivity, detect <p>GrapheneOS makes connections to the outside world to test connectivity, detect