use explicit sections in the usage guide

This commit is contained in:
Daniel Micay 2020-12-06 12:16:45 -05:00
parent 5bad5e1b03
commit e995c10a1a

View File

@ -76,14 +76,13 @@
</ul> </ul>
</nav> </nav>
<h2 id="auditor"> <section id="auditor">
<a href="#auditor">Auditor</a> <h2><a href="#auditor">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>
</section>
<h2 id="updates"> <section id="updates">
<a href="#updates">Updates</a> <h2><a href="#updates">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
approximately once every four hours when there's network connectivity and then approximately once every four hours when there's network connectivity and then
@ -110,9 +109,8 @@
<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"> <section id="updates-settings">
<a href="#updates-settings">Settings</a> <h3><a href="#updates-settings">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
settings.</p> settings.</p>
@ -140,10 +138,10 @@
device after an update once it has been idle for a long time. When this setting is device after an update once it has been idle for a long time. When this setting is
enabled, a device can take care of any number of updates completely automatically even enabled, a device can take care of any number of updates completely automatically even
if it's left completely idle.</p> if it's left completely idle.</p>
</section>
<h3 id="updates-security"> <section id="updates-security">
<a href="#updates-security">Security</a> <h3><a href="#updates-security">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
with downgrade attacks being prevented. The update protocol doesn't send identifiable with downgrade attacks being prevented. The update protocol doesn't send identifiable
@ -156,10 +154,10 @@
<p>Android updates can support serialno constraints to make them validate only on a <p>Android updates can support serialno constraints to make them validate only on a
certain device but GrapheneOS rejects any update with a serialno constraint for both certain device but GrapheneOS rejects any update with a serialno constraint for both
over-the-air updates (Updater app) and sideloaded updates (recovery).</p> over-the-air updates (Updater app) and sideloaded updates (recovery).</p>
</section>
<h3 id="updates-disabling"> <section id="updates-disabling">
<a href="#updates-disabling">Disabling</a> <h3><a href="#updates-disabling">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
permitted networks if the bandwidth usage is a problem on your mobile data connection. permitted networks if the bandwidth usage is a problem on your mobile data connection.
@ -167,10 +165,10 @@
enabling Show system via the menu, selecting Seamless Update Client and disabling the enabling Show system via the menu, selecting Seamless Update Client and disabling the
app. If you do this, you'll need to remember to enable it again to start receiving app. If you do this, you'll need to remember to enable it again to start receiving
updates.</p> updates.</p>
</section>
<h3 id="updates-sideloading"> <section id="updates-sideloading">
<a href="#updates-sideloading">Sideloading</a> <h3><a href="#updates-sideloading">Sideloading</a></h3>
</h3>
<p>Updates can be downloaded via <p>Updates can be downloaded via
<a href="https://grapheneos.org/releases">the releases page</a> and installed via recovery <a href="https://grapheneos.org/releases">the releases page</a> and installed via recovery
@ -202,10 +200,11 @@
trust the attached computer and this can be considered a production feature. Trusting trust the attached computer and this can be considered a production feature. Trusting
a computer with ADB access within the OS is much different and exposes the device to a a computer with ADB access within the OS is much different and exposes the device to a
huge amount of attack surface and control by the trusted computer.</strong></p> huge amount of attack surface and control by the trusted computer.</strong></p>
</section>
</section>
<h2 id="web-browsing"> <section id="web-browsing">
<a href="#web-browsing">Web browsing</a> <h2><a href="#web-browsing">Web browsing</a></h2>
</h2>
<p>GrapheneOS includes a Vanadium subproject providing privacy and security enhanced <p>GrapheneOS includes a Vanadium subproject providing privacy and security enhanced
releases of Chromium. Vanadium is both the user-facing browser included in the OS and releases of Chromium. Vanadium is both the user-facing browser included in the OS and
@ -302,10 +301,10 @@
still substantially weaker (especially on Linux, where it can hardly be considered a still substantially weaker (especially on Linux, where it can hardly be considered a
sandbox at all) and lacks support for isolating sites from each other rather than only sandbox at all) and lacks support for isolating sites from each other rather than only
containing content as a whole.</p> containing content as a whole.</p>
</section>
<h2 id="camera"> <section id="camera">
<a href="#camera">Camera</a> <h2><a href="#camera">Camera</a></h2>
</h2>
<p>The Camera app included in GrapheneOS is very basic and can't take full advantage <p>The Camera app included in GrapheneOS is very basic and can't take full advantage
of the hardware. It doesn't offer much in the way of configuration. In the long term, of the hardware. It doesn't offer much in the way of configuration. In the long term,
@ -335,10 +334,10 @@
match up the picture and it provides it with more data vs. a traditional HDR match up the picture and it provides it with more data vs. a traditional HDR
implementation where it essentially doesn't work without a tripod and is not really at implementation where it essentially doesn't work without a tripod and is not really at
all useful on a phone unless you actually have that for it.</p> all useful on a phone unless you actually have that for it.</p>
</section>
<h2 id="exec-spawning"> <section id="exec-spawning">
<a href="#exec-spawning">Exec spawning</a> <h2><a href="#exec-spawning">Exec spawning</a></h2>
</h2>
<p>GrapheneOS creates fresh processes (via exec) when spawning applications instead of <p>GrapheneOS creates fresh processes (via exec) when spawning applications instead of
using the traditional Zygote spawning model. This improves privacy and security at the using the traditional Zygote spawning model. This improves privacy and security at the
@ -365,10 +364,10 @@
with privileges reserved for OS components. The Zygote template is reused across user with privileges reserved for OS components. The Zygote template is reused across user
profiles, so it also provides a temporary set of device identifiers across profiles profiles, so it also provides a temporary set of device identifiers across profiles
for each boot via the shared randomized values.</p> for each boot via the shared randomized values.</p>
</section>
<h2 id="bugs-uncovered-by-security-features"> <section id="bugs-uncovered-by-security-features">
<a href="#bugs-uncovered-by-security-features">Bugs uncovered by security features</a> <h2><a href="#bugs-uncovered-by-security-features">Bugs uncovered by security features</a></h2>
</h2>
<p>GrapheneOS substantially expands the standard mitigations for memory corruption <p>GrapheneOS substantially expands the standard mitigations for memory corruption
vulnerabilities. Some of these features are designed to directly catch the memory vulnerabilities. Some of these features are designed to directly catch the memory
@ -401,10 +400,10 @@
relevant crash and filter out information you don't want to send. However, it will be relevant crash and filter out information you don't want to send. However, it will be
more difficult to debug if you provide less of the information. If the app doesn't more difficult to debug if you provide less of the information. If the app doesn't
work with sensitive information, just send the whole tombstone.</p> work with sensitive information, just send the whole tombstone.</p>
</section>
<h2 id="wifi-privacy"> <section id="wifi-privacy">
<a href="#wifi-privacy">Wi-Fi privacy</a> <h2><a href="#wifi-privacy">Wi-Fi privacy</a></h2>
</h2>
<p>Wi-Fi on GrapheneOS is very privacy-friendly and is essentially anonymous as long <p>Wi-Fi on GrapheneOS is very privacy-friendly and is essentially anonymous as long
as apps do not leak uniquely identifying information to the network. GrapheneOS avoids as apps do not leak uniquely identifying information to the network. GrapheneOS avoids
@ -412,9 +411,8 @@
documented (see the FAQ) and can be easily disabled or forced through a VPN documented (see the FAQ) and can be easily disabled or forced through a VPN
service.</p> service.</p>
<h3 id="wifi-privacy-scanning"> <section id="wifi-privacy-scanning">
<a href="#wifi-privacy-scanning">Scanning</a> <h3><a href="#wifi-privacy-scanning">Scanning</a></h3>
</h3>
<p>MAC randomization is always performed for Wi-Fi scanning. Pixel <p>MAC randomization is always performed for Wi-Fi scanning. Pixel
phones have firmware support for scanning MAC randomization going phones have firmware support for scanning MAC randomization going
@ -437,10 +435,10 @@
planning but we need a robust, secure and private implementation via a local database. planning but we need a robust, secure and private implementation via a local database.
The initial focus will likely be a cell phone tower database, so these features still The initial focus will likely be a cell phone tower database, so these features still
wouldn't be relevant.</p> wouldn't be relevant.</p>
</section>
<h3 id="wifi-privacy-associated"> <section id="wifi-privacy-associated">
<a href="#wifi-privacy-associated">Associated with an Access Point (AP)</a> <h3><a href="#wifi-privacy-associated">Associated with an Access Point (AP)</a></h3>
</h3>
<p>The DHCP client uses the anonymity profile rather than sending a hostname so it <p>The DHCP client uses the anonymity profile rather than sending a hostname so it
doesn't compromise the privacy offered by MAC randomization.</p> doesn't compromise the privacy offered by MAC randomization.</p>
@ -461,10 +459,11 @@
devices have access to both. As of Android 11, Android only uses stable link-local devices have access to both. As of Android 11, Android only uses stable link-local
privacy addresses when MAC randomization is disabled, so we no longer need to disable privacy addresses when MAC randomization is disabled, so we no longer need to disable
the feature.</p> the feature.</p>
</section>
</section>
<h2 id="lte-only-mode"> <section id="lte-only-mode">
<a href="#lte-only-mode">LTE-only mode</a> <h2><a href="#lte-only-mode">LTE-only mode</a></h2>
</h2>
<p>If you have a reliable LTE connection from your carrier, you can reduce attack <p>If you have a reliable LTE connection from your carrier, you can reduce attack
surface by disabling 2G / 3G connectivity in Settings ➔ Network &amp; Internet ➔ Mobile surface by disabling 2G / 3G connectivity in Settings ➔ Network &amp; Internet ➔ Mobile
@ -480,6 +479,7 @@
LTE does provide basic network authentication / encryption, but it's for the network LTE does provide basic network authentication / encryption, but it's for the network
itself. The intention of the LTE-only feature is only hardening against remote itself. The intention of the LTE-only feature is only hardening against remote
exploitation by disabling an enormous amount of legacy code.</p> exploitation by disabling an enormous amount of legacy code.</p>
</section>
</main> </main>
<footer> <footer>
<a href="/"><img src="/logo.png" width="512" height="512" alt=""/>GrapheneOS</a> <a href="/"><img src="/logo.png" width="512" height="512" alt=""/>GrapheneOS</a>