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"/>
<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="stylesheet" href="/grapheneos.css?8"/>
<link rel="stylesheet" href="/grapheneos.css?9"/>
<link rel="manifest" href="/manifest.webmanifest"/>
<link rel="canonical" href="https://grapheneos.org/build"/>
</head>
@@ -38,10 +38,11 @@
</ul>
</nav>
<div id="content">
<h1 id="build">Build</h1>
<h1 id="build">
<a href="#build">Build</a>
</h1>
<h2 id="build-dependencies">
Build dependencies
<a href="#build-dependencies"></a>
<a href="#build-dependencies">Build dependencies</a>
</h2>
<ul>
<li>x86_64 Linux build environment (macOS is not supported, unlike AOSP which
@@ -53,8 +54,7 @@
</ul>
<h2 id="downloading-source-code">
Downloading source code
<a href="#downloading-source-code"></a>
<a href="#downloading-source-code">Downloading source code</a>
</h2>
<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>
<h2 id="development-branch">
Development branch
<a href="#development-branch"></a>
<a href="#development-branch">Development branch</a>
</h2>
<p>The pie branch is currently used for all supported devices:</p>
@@ -81,8 +80,7 @@ repo sync -j32</pre>
succeed.</p>
<h2 id="stable-release">
Stable release
<a href="#stable-release"></a>
<a href="#stable-release">Stable release</a>
</h2>
<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>
<h2 id="updating-and-switching-branches-or-tags">
Updating and switching branches or tags
<a href="#updating-and-switching-branches-or-tags"></a>
<a href="#updating-and-switching-branches-or-tags">Updating and switching branches or tags</a>
</h2>
<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>
<h2 id="browser-and-webview">
Browser and WebView
<a href="#browser-and-webview"></a>
<a href="#browser-and-webview">Browser and WebView</a>
</h2>
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>
<h2 id="kernel">
Kernel
<a href="#kernel"></a>
<a href="#kernel">Kernel</a>
</h2>
<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>
<h2 id="setting-up-the-os-build-environment">
Setting up the OS build environment
<a href="#setting-up-the-os-build-environment"></a>
<a href="#setting-up-the-os-build-environment">Setting up the OS build environment</a>
</h2>
<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>
<h2 id="reproducible-builds">
Reproducible builds
<a href="#reproducible-builds"></a>
<a href="#reproducible-builds">Reproducible builds</a>
</h2>
<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>
<h2 id="extracting-vendor-files-for-pixel-devices">
Extracting vendor files for Pixel devices
<a href="#extracting-vendor-files-for-pixel-devices"></a>
<a href="#extracting-vendor-files-for-pixel-devices">Extracting vendor files for Pixel devices</a>
</h2>
<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>
<h2 id="building">
Building
<a href="#building"></a>
<a href="#building">Building</a>
</h2>
<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>
<h2 id="faster-builds-for-development-use-only">
Faster builds for development use only
<a href="#faster-builds-for-development-use-only"></a>
<a href="#faster-builds-for-development-use-only">Faster builds for development use only</a>
</h2>
<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>
<h2 id="generating-release-signing-keys">
Generating release signing keys
<a href="#generating-release-signing-keys"></a>
<a href="#generating-release-signing-keys">Generating release signing keys</a>
</h2>
<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>
<h3 id="android-verified-boot-1.0">
Android Verified Boot 1.0
<a href="#android-verified-boot-1.0"></a>
<a href="#android-verified-boot-1.0">Android Verified Boot 1.0</a>
</h3>
<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>
<h3 id="android-verified-boot-2.0">
Android Verified Boot 2.0 (AVB)
<a href="#android-verified-boot-2.0"></a>
<a href="#android-verified-boot-2.0">Android Verified Boot 2.0 (AVB)</a>
</h3>
<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>
<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"></a>
<a href="#generating-signed-factory-images-and-full-update-packages">Generating signed factory images and full update packages</a>
</h2>
<p>Build the tool needed to generate A/B updates:</p>
@@ -413,8 +399,7 @@ cd ../..</pre>
zip.</p>
<h2 id="prebuilt-code">
Prebuilt code
<a href="#prebuilt-code"></a>
<a href="#prebuilt-code">Prebuilt code</a>
</h2>
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.
<h3 id="prebuilt-apps">
Prebuilt apps
<a href="#prebuilt-apps"></a>
<a href="#prebuilt-apps">Prebuilt apps</a>
</h3>
<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>
<h2 id="testing">
Testing
<a href="#testing"></a>
<a href="#testing">Testing</a>
</h2>
<h3 id="compatibility-test-suite">
Compatibility Test Suite
<a href="#compatibility-test-suite"></a>
<a href="#compatibility-test-suite">Compatibility Test Suite</a>
</h3>
<h4 id="compatibility-test-suite-download">
Download
<a href="#compatibility-test-suite-download"></a>
<a href="#compatibility-test-suite-download">Download</a>
</h4>
<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>
<h4 id="compatibility-test-suite-setup">
Setup
<a href="#compatibility-test-suite-setup"></a>
<a href="#compatibility-test-suite-setup">Setup</a>
</h4>
<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
@@ -495,8 +475,7 @@ export PATH="$PATH:$HOME/sdk/tools:$HOME/sdk/tools/bin:$HOME/sdk/platform-tools:
</ul>
<h4 id="compatibility-test-suite-run-modules">
Run modules
<a href="#compatibility-test-suite-run-modules"></a>
<a href="#compatibility-test-suite-run-modules">Run modules</a>
</h4>
<p>Run the test harness:</p>