privacyguides.org/docs/android.md
Jonah Aragon 0f17a9dce9
Replace MathJax with MathML (#2477)
Signed-off-by: Daniel Gray <dngray@privacyguides.org>
2024-04-03 23:10:26 +10:30

30 KiB
Raw Blame History

meta_title title icon description cover schema
Android Recommendations: GrapheneOS and DivestOS - Privacy Guides Android simple/android You can replace the operating system on your Android phone with these secure and privacy-respecting alternatives. android.webp
@context @type name url
http://schema.org WebPage Private Android Operating Systems ./
@context @type name image url sameAs
http://schema.org CreativeWork Android /assets/img/android/android.svg https://source.android.com/ https://en.wikipedia.org/wiki/Android_(operating_system)
@context @type name image url sameAs subjectOf
http://schema.org CreativeWork GrapheneOS /assets/img/android/grapheneos.svg https://grapheneos.org/ https://en.wikipedia.org/wiki/GrapheneOS
@context @type url
http://schema.org WebPage ./
@context @type name image url sameAs subjectOf
http://schema.org CreativeWork Divest /assets/img/android/divestos.svg https://divestos.org/ https://en.wikipedia.org/wiki/DivestOS
@context @type url
http://schema.org WebPage ./
@context @type name brand image sameAs review
http://schema.org Product Pixel
@type name
Brand Google
/assets/img/android/google-pixel.png https://en.wikipedia.org/wiki/Google_Pixel
@type author
Review
@type name
Organization Privacy Guides
@context @type name applicationCategory operatingSystem
http://schema.org MobileApplication Shelter Utilities Android
@context @type name applicationCategory operatingSystem
http://schema.org MobileApplication Auditor Utilities Android
@context @type name applicationCategory operatingSystem
http://schema.org MobileApplication Secure Camera Utilities Android
@context @type name applicationCategory operatingSystem
http://schema.org MobileApplication Secure PDF Viewer Utilities Android

Android logo{ align=right }

The Android Open Source Project 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.

:octicons-home-16:{ .card-link title=Homepage } :octicons-info-16:{ .card-link title=Documentation} :octicons-code-16:{ .card-link title="Source Code" }

These are the Android operating systems, devices, and apps we recommend to maximize your mobile device's security and privacy. To learn more about Android:

General Android Overview :material-arrow-right-drop-circle:{ .md-button }

AOSP Derivatives

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.

Note

End-of-life devices (such as GrapheneOS or CalyxOS's "extended support" devices) do not have full security patches (firmware updates) due to the OEM discontinuing support. These devices cannot be considered completely secure regardless of installed software.

GrapheneOS

GrapheneOS logo{ align=right } GrapheneOS logo{ align=right }

GrapheneOS is the best choice when it comes to privacy and security.

GrapheneOS provides additional security hardening and privacy improvements. It has a hardened memory allocator, network and sensor permissions, and various other security features. GrapheneOS also comes with full firmware updates and signed builds, so verified boot is fully supported.

:octicons-home-16: Homepage{ .md-button .md-button--primary } :octicons-eye-16:{ .card-link title="Privacy Policy" } :octicons-info-16:{ .card-link title=Documentation} :octicons-code-16:{ .card-link title="Source Code" } :octicons-heart-16:{ .card-link title=Contribute }

GrapheneOS supports Sandboxed Google Play, which runs 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, while giving you full control over their permissions and access, and while containing them to a specific work profile or user profile of your choice.

Google Pixel phones are the only devices that currently meet GrapheneOS's hardware security requirements.

Why we recommend GrapheneOS over CalyxOS :material-arrow-right-drop-circle:{ .md-button }

DivestOS

DivestOS logo{ align=right }

DivestOS is a soft-fork of LineageOS. DivestOS inherits many supported devices from LineageOS. It has signed builds, making it possible to have verified boot on some non-Pixel devices.

:octicons-home-16: Homepage{ .md-button .md-button--primary } :simple-torbrowser:{ .card-link title="Onion Service" } :octicons-eye-16:{ .card-link title="Privacy Policy" } :octicons-info-16:{ .card-link title=Documentation} :octicons-code-16:{ .card-link title="Source Code" } :octicons-heart-16:{ .card-link title=Contribute }

DivestOS has automated kernel vulnerability (CVE) patching, fewer proprietary blobs, and a custom hosts file. Its hardened WebView, Mulch, enables CFI for all architectures and network state partitioning, and receives out-of-band updates. DivestOS also includes kernel patches from GrapheneOS and enables all available kernel security features via defconfig hardening. All kernels newer than version 3.4 include full page sanitization and all ~22 Clang-compiled kernels have -ftrivial-auto-var-init=zero enabled.

DivestOS implements some system hardening patches originally developed for GrapheneOS. DivestOS 16.0 and higher implements GrapheneOS's INTERNET and SENSORS permission toggle, hardened memory allocator, exec-spawning, JNI constification, and partial bionic hardening patchsets. 17.1 and higher features GrapheneOS's per-network full MAC randomization option, ptrace_scope control, and automatic reboot/Wi-Fi/Bluetooth timeout options.

DivestOS uses F-Droid as its default app store. We normally recommend avoiding F-Droid, but doing so on DivestOS isn't viable; the developers update their apps via their own F-Droid repositories (DivestOS Official and DivestOS WebView). We recommend disabling the official F-Droid app and using F-Droid Basic with the DivestOS repositories enabled to keep those components up to date. For other apps, our recommended methods of obtaining them still apply.

Warning

DivestOS firmware update 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.

Not all of the supported devices have verified boot, and some perform it better than others.

Android Devices

When purchasing a device, we recommend getting one as new as possible. The software and firmware of mobile devices are only supported for a limited time, so buying new extends that lifespan as much as possible.

Avoid buying phones from mobile network operators. These often have a locked bootloader and do not support OEM unlocking. These phone variants will prevent you from installing any kind of alternative Android distribution.

Be very careful about buying second hand phones from online marketplaces. Always check the reputation of the seller. If the device is stolen, there's a possibility of it being entered in the IMEI database. There is also a risk involved with you being associated with the activity of the previous owner.

A few more tips regarding Android devices and operating system compatibility:

  • Do not buy devices that have reached or are near their end-of-life, additional firmware updates must be provided by the manufacturer.
  • Do not buy preloaded LineageOS or /e/ OS phones or any Android phones without proper Verified Boot support and firmware updates. These devices also have no way for you to check whether they've been tampered with.
  • In short, if a device or Android distribution is not listed here, there is probably a good reason. Check out our forum to find details!

Google Pixel

Google Pixel phones are the only devices we recommend for purchase. Pixel phones have stronger hardware security than any other Android devices currently on the market, due to proper AVB support for third-party operating systems and Google's custom Titan security chips acting as the Secure Element.

Google Pixel 6{ align=right }

Google Pixel devices are known to have good security and properly support Verified Boot, even when installing custom operating systems.

Beginning with the Pixel 8 and 8 Pro, Pixel devices receive a minimum of 7 years of guaranteed security updates, ensuring a much longer lifespan compared to the 2-5 years competing OEMs typically offer.

:material-shopping: Store{ .md-button .md-button--primary }

Secure Elements like the Titan M2 are more limited than the processor's Trusted Execution Environment used by most other phones as they are only used for secrets storage, hardware attestation, and rate limiting, not for running "trusted" programs. Phones without a Secure Element have to use the TEE for all of those functions, resulting in a larger attack surface.

Google Pixel phones use a TEE OS called Trusty which is open source, unlike many other phones.

The installation of GrapheneOS on a Pixel phone is easy with their web installer. If you don't feel comfortable doing it yourself and are willing to spend a bit of extra money, check out the NitroPhone as they come preloaded with GrapheneOS from the reputable Nitrokey company.

A few more tips for purchasing a Google Pixel:

  • If you're after a bargain on a Pixel device, we suggest buying an "a" model, just after the next flagship is released. Discounts are usually available because Google will be trying to clear their stock.
  • Consider price beating options and specials offered at physical stores.
  • Look at online community bargain sites in your country. These can alert you to good sales.
  • Google provides a list showing the support cycle for each one of their devices. The price per day for a device can be calculated as: Cost End of Life Date Current Date , meaning that the longer use of the device the lower cost per day.
  • If the Pixel is unavailable in your region, the NitroPhone can be shipped globally.

General Apps

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.

Shelter

Shelter logo{ align=right }

Shelter is an app that helps you leverage Android's Work Profile functionality to isolate or duplicate apps on your device.

Shelter supports blocking contact search cross profiles and sharing files across profiles via the default file manager (DocumentsUI).

:octicons-repo-16: Repository{ .md-button .md-button--primary } :octicons-code-16:{ .card-link title="Source Code" } :octicons-heart-16:{ .card-link title=Contribute }

Warning

Shelter is recommended over Insular and Island as it supports contact search blocking.

When using Shelter, you are placing complete trust in its developer, as Shelter acts as a Device Admin to create the Work Profile, and it has extensive access to the data stored within the Work Profile.

Secure Camera

Secure camera logo{ align=right } Secure camera logo{ align=right }

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.

:octicons-repo-16: Repository{ .md-button .md-button--primary } :octicons-info-16:{ .card-link title=Documentation} :octicons-code-16:{ .card-link title="Source Code" } :octicons-heart-16:{ .card-link title=Contribute }

Downloads

Main privacy features include:

  • Auto removal of Exif metadata (enabled by default)
  • Use of the new Media API, therefore storage permissions are not required
  • Microphone permission not required unless you want to record sound

Note

Metadata is not currently deleted from video files but that is planned.

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.

Secure PDF Viewer

Secure PDF Viewer logo{ align=right } Secure PDF Viewer logo{ align=right }

Secure PDF Viewer is a PDF viewer based on pdf.js that doesn't require any permissions. The PDF is fed into a sandboxed webview. This means that it doesn't require permission directly to access content or files.

Content-Security-Policy is used to enforce that the JavaScript and styling properties within the WebView are entirely static content.

:octicons-repo-16: Repository{ .md-button .md-button--primary } :octicons-code-16:{ .card-link title="Source Code" } :octicons-heart-16:{ .card-link title=Contribute }

Downloads

Obtaining Applications

Obtainium

Obtainium logo{ align=right }

Obtainium is an app manager which allows you to install and update apps directly from the developer's own releases page (i.e. GitHub, GitLab, the developer's website, etc.), rather than a centralized app store/repository. It supports automatic background updates on Android 12 and higher.

:octicons-repo-16: Repository{ .md-button .md-button--primary } :octicons-code-16:{ .card-link title="Source Code" } :octicons-heart-16:{ .card-link title=Contribute }

Downloads

Obtainium allows you to download APK installer files from a wide variety of sources, and it is up to you to ensure those sources and apps are legitimate. For example, using Obtainium to install Signal from Signal's APK landing page should be fine, but installing from third-party APK repositories like Aptoide or APKPure may pose additional risks. The risk of installing a malicious update is lower, because Android itself verifies that all app updates are signed by the same developer as the existing app on your phone before installing them.

GrapheneOS App Store

GrapheneOS's app store is available on GitHub. It supports Android 12 and above and is capable of updating itself. The app store has standalone applications built by the GrapheneOS project such as the Auditor, Camera, and PDF Viewer. If you are looking for these applications, we highly recommend that you get them from GrapheneOS's app store instead of the Play Store, as the apps on their store are signed by the GrapheneOS's project own signature that Google does not have access to.

Aurora Store

The Google Play Store requires a Google account to login which is not great for privacy. You can get around this by using an alternative client, such as Aurora Store.

Aurora Store logo{ align=right }

Aurora Store is a Google Play Store client which does not require a Google Account, Google Play Services, or microG to download apps.

:octicons-home-16: Homepage{ .md-button .md-button--primary } :octicons-eye-16:{ .card-link title="Privacy Policy" } :octicons-code-16:{ .card-link title="Source Code" }

Downloads

Aurora Store does not allow you to download paid apps with their anonymous account feature. You can optionally log in with your Google account with Aurora Store to download apps you have purchased, which does give access to the list of apps you've installed to Google, however you still benefit from not requiring the full Google Play client and Google Play Services or microG on your device.

Manually with RSS Notifications

For apps that are released on platforms like GitHub and GitLab, you may be able to add an RSS feed to your news aggregator that will help you keep track of new releases.

RSS APK RSS APK APK Changes APK Changes

GitHub

On GitHub, using Secure Camera as an example, you would navigate to its releases page and append .atom to the URL:

https://github.com/GrapheneOS/Camera/releases.atom

GitLab

On GitLab, using Aurora Store as an example, you would navigate to its project repository and append /-/tags?format=atom to the URL:

https://gitlab.com/AuroraOSS/AuroraStore/-/tags?format=atom

Verifying APK Fingerprints

If you download APK files to install manually, you can verify their signature with the apksigner tool, which is a part of Android build-tools.

  1. Install Java JDK.

  2. Download the Android Studio command line tools.

  3. Extract the downloaded archive:

    unzip commandlinetools-*.zip
    cd cmdline-tools
    ./bin/sdkmanager --sdk_root=./ "build-tools;29.0.3"
    
  4. Run the signature verification command:

    ./build-tools/29.0.3/apksigner verify --print-certs ../Camera-37.apk
    
  5. The resulting hashes can then be compared with another source. Some developers such as Signal show the fingerprints on their website.

    Signer #1 certificate DN: CN=GrapheneOS
    Signer #1 certificate SHA-256 digest: 6436b155b917c2f9a9ed1d15c4993a5968ffabc94947c13f2aeee14b7b27ed59
    Signer #1 certificate SHA-1 digest: 23e108677a2e1b1d6e6b056f3bb951df7ad5570c
    Signer #1 certificate MD5 digest: dbbcd0cac71bd6fa2102a0297c6e0dd3
    

F-Droid

F-Droid logo{ align=right width=120px }

==We only recommend F-Droid as a way to obtain apps which cannot be obtained via the means above.== F-Droid is often recommended as an alternative to Google Play, particularly in the privacy community. The option to add third-party repositories and not be confined to Google's walled garden has led to its popularity. F-Droid additionally has reproducible builds for some applications and is dedicated to free and open-source software. However, there are some security-related downsides to how F-Droid builds, signs, and delivers packages:

Due to their process of building apps, apps in the official F-Droid repository often fall behind on updates. F-Droid maintainers also reuse package IDs while signing apps with their own keys, which is not ideal as it gives the F-Droid team ultimate trust. Additionally, the requirements for an app to be included in the official F-Droid repo are less strict than other app stores like Google Play, meaning that F-Droid tends to host a lot more apps which are older, unmaintained, or otherwise no longer meet modern security standards.

Other popular third-party repositories for F-Droid such as IzzyOnDroid alleviate some of these concerns. The IzzyOnDroid repository pulls builds directly from GitHub and is the next best thing to the developers' own repositories. However, it is not something that we can fully recommend, as apps are typically removed from that repository if they are later added to the main F-Droid repository. While that makes sense (since the goal of that particular repository is to host apps before they're accepted into the main F-Droid repository), it can leave you with installed apps which no longer receive updates.

That said, the F-Droid and IzzyOnDroid repositories are home to countless apps, so they can be a useful tool to search for and discover open-source apps that you can then download through other means such as the Play Store, Aurora Store, or by getting the APK directly from the developer. You should use your best judgement when looking for new apps via this method, and keep an eye on how frequently the app is updated. Outdated apps may rely on unsupported libraries, among other things, posing a potential security risk.

F-Droid Basic

In some rare cases, the developer of an app will only distribute it through F-Droid (Gadgetbridge is one example of this). If you really need an app like that, we recommend using the newer F-Droid Basic client instead of the original F-Droid app to obtain it. F-Droid Basic can do unattended updates without privileged extension or root, and has a reduced feature set (limiting attack surface).

Criteria

Please note we are not affiliated with any of the projects we recommend. In addition to our standard criteria, 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.

Operating Systems

  • Must be open-source software.
  • Must support bootloader locking with custom AVB key support.
  • Must receive major Android updates within 0-1 months of release.
  • Must receive Android feature updates (minor version) within 0-14 days of release.
  • Must receive regular security patches within 0-5 days of release.
  • Must not be "rooted" out of the box.
  • Must not enable Google Play Services by default.
  • Must not require system modification to support Google Play Services.

Devices

  • Must support at least one of our recommended custom operating systems.
  • Must be currently sold new in stores.
  • Must receive a minimum of 5 years of security updates.
  • Must have dedicated secure element hardware.

Applications

  • Applications on this page must not be applicable to any other software category on the site.
  • General applications should extend or replace core system functionality.
  • Applications should receive regular updates and maintenance.