summaryrefslogtreecommitdiff
path: root/static/build.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/build.html')
-rw-r--r--static/build.html75
1 files changed, 27 insertions, 48 deletions
diff --git a/static/build.html b/static/build.html
index 593ff1ad..cc3656ec 100644
--- a/static/build.html
+++ b/static/build.html
@@ -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>