Skip to content

Commit f16ed50

Browse files
redoomed1dngray
authored andcommitted
feat: Split up Android Mobile Phones page sidebar (#2620)
Signed-off-by: Daniel Gray <dngray@privacyguides.org>
1 parent f399643 commit f16ed50

12 files changed

+541
-480
lines changed

docs/android.md

Lines changed: 0 additions & 463 deletions
This file was deleted.

docs/android/distributions.md

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
meta_title: "The Best Custom Android OSes (aka Custom ROMs) - Privacy Guides"
3+
title: "Alternative Distributions"
4+
description: You can replace the operating system on your Android phone with these secure and privacy-respecting alternatives.
5+
schema:
6+
-
7+
"@context": http://schema.org
8+
"@type": WebPage
9+
name: Private Android Operating Systems
10+
url: "./"
11+
-
12+
"@context": http://schema.org
13+
"@type": CreativeWork
14+
name: GrapheneOS
15+
image: /assets/img/android/grapheneos.svg
16+
url: https://grapheneos.org/
17+
sameAs: https://en.wikipedia.org/wiki/GrapheneOS
18+
subjectOf:
19+
"@context": http://schema.org
20+
"@type": WebPage
21+
url: "./"
22+
-
23+
"@context": http://schema.org
24+
"@type": CreativeWork
25+
name: Divest
26+
image: /assets/img/android/divestos.svg
27+
url: https://divestos.org/
28+
sameAs: https://en.wikipedia.org/wiki/DivestOS
29+
subjectOf:
30+
"@context": http://schema.org
31+
"@type": WebPage
32+
url: "./"
33+
---
34+
A **custom Android-based operating system** (often known as a **custom ROM**) is a popular way to achieve higher levels of privacy and security on your device. This is in contrast to the "stock" version of Android which comes with your phone from the factory, and is often deeply integrated with Google Play Services.
35+
36+
We recommend installing one of these custom Android operating systems on your device, listed in order of preference, depending on your device's compatibility with these operating systems.
37+
38+
## AOSP Derivatives
39+
40+
### GrapheneOS
41+
42+
<div class="admonition recommendation" markdown>
43+
44+
![GrapheneOS logo](../assets/img/android/grapheneos.svg#only-light){ align=right }
45+
![GrapheneOS logo](../assets/img/android/grapheneos-dark.svg#only-dark){ align=right }
46+
47+
**GrapheneOS** is the best choice when it comes to privacy and security.
48+
49+
GrapheneOS provides additional [security hardening](https://en.wikipedia.org/wiki/Hardening_(computing)) and privacy improvements. It has a [hardened memory allocator](https://github.com/GrapheneOS/hardened_malloc), network and sensor permissions, and various other [security features](https://grapheneos.org/features). GrapheneOS also comes with full firmware updates and signed builds, so verified boot is fully supported.
50+
51+
[:octicons-home-16: Homepage](https://grapheneos.org){ .md-button .md-button--primary }
52+
[:octicons-eye-16:](https://grapheneos.org/faq#privacy-policy){ .card-link title="Privacy Policy" }
53+
[:octicons-info-16:](https://grapheneos.org/faq){ .card-link title=Documentation}
54+
[:octicons-code-16:](https://grapheneos.org/source){ .card-link title="Source Code" }
55+
[:octicons-heart-16:](https://grapheneos.org/donate){ .card-link title=Contribute }
56+
57+
</div>
58+
59+
GrapheneOS supports [Sandboxed Google Play](https://grapheneos.org/usage#sandboxed-google-play), which runs [Google Play Services](https://en.wikipedia.org/wiki/Google_Play_Services) fully sandboxed like any other regular app. This means you can take advantage of most Google Play Services, such as [push notifications](https://firebase.google.com/docs/cloud-messaging), while giving you full control over their permissions and access, and while containing them to a specific [work profile](../os/android-overview.md#work-profile) or [user profile](../os/android-overview.md#user-profiles) of your choice.
60+
61+
[Google Pixel phones](../mobile-phones.md#google-pixel) are the only devices that currently meet GrapheneOS's [hardware security requirements](https://grapheneos.org/faq#future-devices).
62+
63+
### DivestOS
64+
65+
<div class="admonition recommendation" markdown>
66+
67+
![DivestOS logo](../assets/img/android/divestos.svg){ align=right }
68+
69+
**DivestOS** is a soft-fork of [LineageOS](https://lineageos.org).
70+
DivestOS inherits many [supported devices](https://divestos.org/index.php?page=devices&base=LineageOS) from LineageOS. It has signed builds, making it possible to have [verified boot](https://source.android.com/security/verifiedboot) on some non-Pixel devices.
71+
72+
[:octicons-home-16: Homepage](https://divestos.org){ .md-button .md-button--primary }
73+
[:simple-torbrowser:](http://divestoseb5nncsydt7zzf5hrfg44md4bxqjs5ifcv4t7gt7u6ohjyyd.onion){ .card-link title="Onion Service" }
74+
[:octicons-eye-16:](https://divestos.org/index.php?page=privacy_policy){ .card-link title="Privacy Policy" }
75+
[:octicons-info-16:](https://divestos.org/index.php?page=faq){ .card-link title=Documentation}
76+
[:octicons-code-16:](https://github.com/divested-mobile){ .card-link title="Source Code" }
77+
[:octicons-heart-16:](https://divested.dev/pages/donate){ .card-link title=Contribute }
78+
79+
</div>
80+
81+
DivestOS has automated kernel vulnerability ([CVE](https://en.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures)) [patching](https://gitlab.com/divested-mobile/cve_checker), fewer proprietary blobs, and a custom [hosts](https://divested.dev/index.php?page=dnsbl) file. Its hardened WebView, [Mulch](https://gitlab.com/divested-mobile/mulch), enables [CFI](https://en.wikipedia.org/wiki/Control-flow_integrity) for all architectures and [network state partitioning](https://developer.mozilla.org/docs/Web/Privacy/State_Partitioning), and receives out-of-band updates.
82+
DivestOS also includes kernel patches from GrapheneOS and enables all available kernel security features via [defconfig hardening](https://github.com/Divested-Mobile/DivestOS-Build/blob/master/Scripts/Common/Functions.sh#L758). All kernels newer than version 3.4 include full page [sanitization](https://lwn.net/Articles/334747) and all ~22 Clang-compiled kernels have [`-ftrivial-auto-var-init=zero`](https://reviews.llvm.org/D54604?id=174471) enabled.
83+
84+
DivestOS implements some system hardening patches originally developed for GrapheneOS. DivestOS 16.0 and higher implements GrapheneOS's [`INTERNET`](https://developer.android.com/training/basics/network-ops/connecting) and SENSORS permission toggle, [hardened memory allocator](https://github.com/GrapheneOS/hardened_malloc), [exec-spawning](https://grapheneos.org/usage#exec-spawning), [JNI](https://en.wikipedia.org/wiki/Java_Native_Interface) [constification](https://en.wikipedia.org/wiki/Const_(computer_programming)), and partial [bionic](https://en.wikipedia.org/wiki/Bionic_(software)) hardening patchsets. 17.1 and higher features GrapheneOS's per-network full [MAC randomization](https://en.wikipedia.org/wiki/MAC_address#Randomization) option, [`ptrace_scope`](https://kernel.org/doc/html/latest/admin-guide/LSM/Yama.html) control, [automatic reboot](https://grapheneos.org/features#auto-reboot), and Wi-Fi/Bluetooth [timeout options](https://grapheneos.org/features#attack-surface-reduction).
85+
86+
DivestOS uses F-Droid as its default app store. We normally [recommend avoiding F-Droid](obtaining-apps.md#f-droid), but doing so on DivestOS isn't viable; the developers update their apps via their own F-Droid repositories ([DivestOS Official](https://divestos.org/fdroid/official/?fingerprint=E4BE8D6ABFA4D9D4FEEF03CDDA7FF62A73FD64B75566F6DD4E5E577550BE8467) and [DivestOS WebView](https://divestos.org/fdroid/webview/?fingerprint=FB426DA1750A53D7724C8A582B4D34174E64A84B38940E5D5A802E1DFF9A40D2)). We recommend disabling the official F-Droid app and using [F-Droid Basic](https://f-droid.org/en/packages/org.fdroid.basic) **with the DivestOS repositories enabled** to keep those components up to date. For other apps, our recommended methods of obtaining them still apply.
87+
88+
<div class="admonition warning" markdown>
89+
<p class="admonition-title">Warning</p>
90+
91+
DivestOS firmware update [status](https://gitlab.com/divested-mobile/firmware-empty/-/blob/master/STATUS) and quality control varies across the devices it supports. We still recommend GrapheneOS depending on your device's compatibility. For other devices, DivestOS is a good alternative.
92+
93+
Not all of the supported devices have verified boot, and some perform it better than others.
94+
95+
</div>
96+
97+
## Criteria
98+
99+
**Please note we are not affiliated with any of the projects we recommend.** In addition to [our standard criteria](../about/criteria.md), we have developed a clear set of requirements to allow us to provide objective recommendations. We suggest you familiarize yourself with this list before choosing to use a project, and conduct your own research to ensure it's the right choice for you.
100+
101+
- Must be open-source software.
102+
- Must support bootloader locking with custom AVB key support.
103+
- Must receive major Android updates within 0-1 months of release.
104+
- Must receive Android feature updates (minor version) within 0-14 days of release.
105+
- Must receive regular security patches within 0-5 days of release.
106+
- Must **not** be "rooted" out of the box.
107+
- Must **not** enable Google Play Services by default.
108+
- Must **not** require system modification to support Google Play Services.

docs/android/general-apps.md

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
---
2+
title: "General Apps"
3+
schema:
4+
-
5+
"@context": http://schema.org
6+
"@type": WebPage
7+
name: General Android Apps
8+
url: "./"
9+
-
10+
"@context": http://schema.org
11+
"@type": MobileApplication
12+
name: Shelter
13+
applicationCategory: Utilities
14+
operatingSystem: Android
15+
-
16+
"@context": http://schema.org
17+
"@type": MobileApplication
18+
name: Secure Camera
19+
applicationCategory: Utilities
20+
operatingSystem: Android
21+
-
22+
"@context": http://schema.org
23+
"@type": MobileApplication
24+
name: Secure PDF Viewer
25+
applicationCategory: Utilities
26+
operatingSystem: Android
27+
---
28+
We recommend a wide variety of Android apps throughout this site. The apps listed here are Android-exclusive and specifically enhance or replace key system functionality.
29+
30+
### Shelter
31+
32+
<div class="admonition recommendation" markdown>
33+
34+
![Shelter logo](../assets/img/android/shelter.svg){ align=right }
35+
36+
**Shelter** is an app that helps you leverage Android's Work Profile functionality to isolate or duplicate apps on your device.
37+
38+
Shelter supports blocking contact search cross profiles and sharing files across profiles via the default file manager ([DocumentsUI](https://source.android.com/devices/architecture/modular-system/documentsui)).
39+
40+
[:octicons-repo-16: Repository](https://gitea.angry.im/PeterCxy/Shelter#shelter){ .md-button .md-button--primary }
41+
[:octicons-code-16:](https://gitea.angry.im/PeterCxy/Shelter){ .card-link title="Source Code" }
42+
[:octicons-heart-16:](https://patreon.com/PeterCxy){ .card-link title=Contribute }
43+
44+
</div>
45+
46+
<div class="admonition warning" markdown>
47+
<p class="admonition-title">Warning</p>
48+
49+
Shelter is recommended over [Insular](https://secure-system.gitlab.io/Insular) and [Island](https://github.com/oasisfeng/island) as it supports [contact search blocking](https://secure-system.gitlab.io/Insular/faq.html).
50+
51+
When using Shelter, you are placing complete trust in its developer, as Shelter acts as a [Device Admin](https://developer.android.com/guide/topics/admin/device-admin) to create the Work Profile, and it has extensive access to the data stored within the Work Profile.
52+
53+
</div>
54+
55+
### Secure Camera
56+
57+
<div class="admonition recommendation" markdown>
58+
59+
![Secure camera logo](../assets/img/android/secure_camera.svg#only-light){ align=right }
60+
![Secure camera logo](../assets/img/android/secure_camera-dark.svg#only-dark){ align=right }
61+
62+
**Secure Camera** is a camera app focused on privacy and security which can capture images, videos, and QR codes. CameraX vendor extensions (Portrait, HDR, Night Sight, Face Retouch, and Auto) are also supported on available devices.
63+
64+
[:octicons-repo-16: Repository](https://github.com/GrapheneOS/Camera){ .md-button .md-button--primary }
65+
[:octicons-info-16:](https://grapheneos.org/usage#camera){ .card-link title=Documentation}
66+
[:octicons-code-16:](https://github.com/GrapheneOS/Camera){ .card-link title="Source Code" }
67+
[:octicons-heart-16:](https://grapheneos.org/donate){ .card-link title=Contribute }
68+
69+
<details class="downloads" markdown>
70+
<summary>Downloads</summary>
71+
72+
- [:simple-googleplay: Google Play](https://play.google.com/store/apps/details?id=app.grapheneos.camera.play)
73+
- [:simple-github: GitHub](https://github.com/GrapheneOS/Camera/releases)
74+
- [:material-cube-outline: GrapheneOS App Store](https://github.com/GrapheneOS/Apps/releases)
75+
76+
</details>
77+
78+
</div>
79+
80+
Main privacy features include:
81+
82+
- Auto removal of [Exif](https://en.wikipedia.org/wiki/Exif) metadata (enabled by default)
83+
- Use of the new [Media](https://developer.android.com/training/data-storage/shared/media) API, therefore [storage permissions](https://developer.android.com/training/data-storage) are not required
84+
- Microphone permission not required unless you want to record sound
85+
86+
<div class="admonition note" markdown>
87+
<p class="admonition-title">Note</p>
88+
89+
Metadata is not currently deleted from video files but that is planned.
90+
91+
The image orientation metadata is not deleted. If you enable location (in Secure Camera) that **won't** be deleted either. If you want to delete that later you will need to use an external app such as [ExifEraser](../data-redaction.md#exiferaser-android).
92+
93+
</div>
94+
95+
### Secure PDF Viewer
96+
97+
<div class="admonition recommendation" markdown>
98+
99+
![Secure PDF Viewer logo](../assets/img/android/secure_pdf_viewer.svg#only-light){ align=right }
100+
![Secure PDF Viewer logo](../assets/img/android/secure_pdf_viewer-dark.svg#only-dark){ align=right }
101+
102+
**Secure PDF Viewer** is a PDF viewer based on [pdf.js](https://en.wikipedia.org/wiki/PDF.js) that doesn't require any permissions. The PDF is fed into a [sandboxed](https://en.wikipedia.org/wiki/Sandbox_(software_development)) [WebView](https://developer.android.com/guide/webapps/webview). This means that it doesn't require permission directly to access content or files.
103+
104+
[Content-Security-Policy](https://en.wikipedia.org/wiki/Content_Security_Policy) is used to enforce that the JavaScript and styling properties within the WebView are entirely static content.
105+
106+
[:octicons-repo-16: Repository](https://github.com/GrapheneOS/PdfViewer){ .md-button .md-button--primary }
107+
[:octicons-code-16:](https://github.com/GrapheneOS/PdfViewer){ .card-link title="Source Code" }
108+
[:octicons-heart-16:](https://grapheneos.org/donate){ .card-link title=Contribute }
109+
110+
<details class="downloads" markdown>
111+
<summary>Downloads</summary>
112+
113+
- [:simple-googleplay: Google Play](https://play.google.com/store/apps/details?id=app.grapheneos.pdfviewer.play)
114+
- [:simple-github: GitHub](https://github.com/GrapheneOS/PdfViewer/releases)
115+
- [:material-cube-outline: GrapheneOS App Store](https://github.com/GrapheneOS/Apps/releases)
116+
117+
</details>
118+
119+
</div>
120+
121+
## Criteria
122+
123+
**Please note we are not affiliated with any of the projects we recommend.** In addition to [our standard criteria](../about/criteria.md), we have developed a clear set of requirements to allow us to provide objective recommendations. We suggest you familiarize yourself with this list before choosing to use a project, and conduct your own research to ensure it's the right choice for you.
124+
125+
- Applications on this page must not be applicable to any other software category on the site.
126+
- General applications should extend or replace core system functionality.
127+
- Applications should receive regular updates and maintenance.

docs/android/index.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: "Android"
3+
icon: 'simple/android'
4+
cover: android.webp
5+
schema:
6+
-
7+
"@context": http://schema.org
8+
"@type": WebPage
9+
name: Android Recommendations
10+
url: "./"
11+
-
12+
"@context": http://schema.org
13+
"@type": CreativeWork
14+
name: Android
15+
image: /assets/img/android/android.svg
16+
url: https://source.android.com/
17+
sameAs: https://en.wikipedia.org/wiki/Android_(operating_system)
18+
---
19+
20+
![Android logo](../assets/img/android/android.svg){ align=right }
21+
22+
The **Android Open Source Project** (AOSP) is an open-source mobile operating system led by Google which powers the majority of the world's mobile devices. Most phones sold with Android are modified to include invasive integrations and apps such as Google Play Services, so you can significantly improve your privacy on your mobile device by replacing your phone's default installation with a version of Android without these invasive features.
23+
24+
[:octicons-home-16:](https://source.android.com){ .card-link title=Homepage }
25+
[:octicons-info-16:](https://source.android.com/docs){ .card-link title=Documentation}
26+
[:octicons-code-16:](https://cs.android.com/android/platform/superproject/main){ .card-link title="Source Code" }
27+
28+
We recommend the following Android-specific tools to maximize your mobile device's security and privacy.
29+
30+
- [Alternative Distributions](distributions.md)
31+
- [General Apps](general-apps.md)
32+
- [Obtaining Applications](obtaining-apps.md)
33+
34+
To learn more about Android:
35+
36+
[General Android Overview :material-arrow-right-drop-circle:](../os/android-overview.md){ .md-button }

0 commit comments

Comments
 (0)