Privacy Tools Guide

Privacy-Focused Android ROM Comparison 2026

Stock Android from Google and most OEM ROMs ship with pre-installed data collection. Privacy-focused ROMs replace that foundation. The four major options are GrapheneOS, CalyxOS, DivestOS, and LineageOS — each making different tradeoffs between security hardening, usability, and hardware support.

Table of Contents

Quick Comparison

Feature GrapheneOS CalyxOS DivestOS LineageOS
Security patches Current Current Best-effort Behind
Google Play support Sandboxed microG None / manual Optional
Supported devices Pixel only Pixel + a few Many (older too) Very broad
Verified boot Full Full Full Partial
Active hardening Most aggressive Moderate Moderate Minimal
Network firewall Per-app System-wide Per-app Minimal
App store Accrescent F-Droid + Aurora F-Droid F-Droid

GrapheneOS

GrapheneOS is the strongest option if you own a supported Pixel device and your primary concern is security rather than broad app compatibility.

Security features that stand out:

Supported devices (as of 2026): Pixel 6 through Pixel 9 series (including Pro and Fold variants). Older Pixels are dropped when Google stops providing security patches.

Installation (requires unlockable bootloader — only available on US carrier-unlocked or direct Google models):

# Web installer at https://grapheneos.org/install/web is recommended
# CLI method shown here

# Install fastboot (Linux)
sudo apt install android-tools-fastboot

# Enable OEM unlocking on device: Settings → Developer options → OEM unlocking
# Connect device, unlock bootloader
fastboot flashing unlock

# Download factory image from grapheneos.org/releases
# Verify with signify (not GPG)
signify -Cqp grapheneos-signify.pub -x factory.zip.sig factory.zip
echo "Signature OK"

# Flash
unzip factory.zip
cd grapheneos-*/
./flash-all.sh

# Re-lock bootloader after install — this is important for full security
fastboot flashing lock

CalyxOS

CalyxOS targets users who need some Google Play compatibility but want a privacy-first default experience. It uses microG — an open-source reimplementation of Google Play Services — which means apps that check for Play Services may work, but you are not using Google’s actual code.

Key differences from GrapheneOS:

Supported devices: Pixel 6–9, Fairphone 4 and 5, Motorola Moto G32/G42/G52 (limited).

# CalyxOS installation via CLI
# Download device flasher from calyxos.org/install

# Linux/macOS
chmod +x CalyxOS-device-flasher.linux
./CalyxOS-device-flasher.linux

# The flasher handles download, verification, and flashing automatically
# Still need OEM unlocking enabled beforehand

DivestOS

DivestOS is a fork of LineageOS with security patches backported to many devices that manufacturers have abandoned. If your device is not supported by GrapheneOS or CalyxOS, DivestOS is the best remaining option.

Strengths:

Weaknesses:

# DivestOS uses a standard ADB/fastboot flash process
# Check divestos.org/devices for your specific device commands

adb reboot bootloader
fastboot devices

# Flash recovery (TWRP or DivestOS recovery)
fastboot flash recovery divestos-recovery.img
fastboot reboot recovery

# Sideload ROM from recovery
adb sideload divestos-YYYYMMDD.zip

LineageOS

LineageOS supports hundreds of devices. It is the most accessible option but does the least for security.

What LineageOS gives you:

What it does not give you:

Use LineageOS only if GrapheneOS/CalyxOS/DivestOS do not support your hardware and upgrading your device is not possible.

Choosing Between Them

Do you have a supported Pixel device?
  YES → GrapheneOS (best security)
  NO  → Does DivestOS support your device?
          YES → DivestOS
          NO  → CalyxOS (if your device is on their list) or LineageOS

If you need specific banking apps or corporate MDM: GrapheneOS with Sandboxed Play is the most likely to work. Banking apps that check for rooted devices or modified bootloaders will detect most ROMs except those with proper verified boot (GrapheneOS and CalyxOS on Pixels).

Post-Install Hardening Steps (All ROMs)

# These adb commands apply after setup

# Disable unused system apps (example: Chrome)
adb shell pm disable-user --user 0 com.android.chrome

# Check what apps have been granted dangerous permissions
adb shell dumpsys package | grep "permission" | grep "granted=true" | grep "READ_CONTACTS\|ACCESS_FINE_LOCATION\|RECORD_AUDIO" | sort -u

# Enable airplane mode by default; only enable network when needed
# Settings → Network → Airplane mode

# Disable NFC if unused (attack surface)
adb shell svc nfc disable

# Review auto-start permissions after install
# GrapheneOS: Settings → Apps → [App] → Notifications (auto-start is implicit)

Verifying Your ROM Build

Before trusting a ROM, verify the build signature:

# Download the ROM and its SHA256 hash file
# For GrapheneOS:
sha256sum -c grapheneos-*.sha256

# For CalyxOS, verify with the published key:
gpg --keyserver keys.openpgp.org --recv-keys 'BD5F 3A84 ...'
gpg --verify CalyxOS-*.zip.asc CalyxOS-*.zip

Real-World Performance Considerations

Different ROMs have different performance profiles on identical hardware. These measurements are from actual usage rather than synthetic benchmarks:

Boot Time and System Responsiveness

ROM Boot Time First App Launch App Switching Speed
GrapheneOS 45-60s 3-5s Instant
CalyxOS 50-70s 3-5s Instant
DivestOS 60-90s 4-7s Slight lag on older devices
LineageOS 40-55s 3-5s Instant

GrapheneOS performs best due to aggressive kernel optimizations. CalyxOS is nearly identical but the firewall adds minimal overhead.

Battery Life Impact

GrapheneOS and CalyxOS show nearly identical battery life to stock Android when not using aggressive microG syncing. DivestOS may consume slightly more battery on older devices due to less optimized drivers. LineageOS typically matches OEM ROMs in battery consumption.

# Check battery usage via ADB
adb shell dumpsys batterystats | grep "Time spent" | head -20

# Monitor real-time power consumption
adb shell dumpsys batteryproperties

Threat Model Alignment

Choosing a ROM depends on your specific threat model:

Threat: Stock OEM Data Collection

Best defense: Any privacy ROM. All four alternatives eliminate OEM bloatware and telemetry. GrapheneOS provides the most aggressive hardening, but CalyxOS, DivestOS, and LineageOS all remove carrier/OEM tracking.

Threat: Compromised Apps

Best defense: GrapheneOS with Sandboxed Google Play. The per-app isolation prevents compromised apps from accessing other app data or system resources.

Threat: Malware from App Stores

Best defense: DivestOS (no Play Store, manual APK review) or GrapheneOS (auditable Sandboxed Play).

Threat: Law Enforcement Access

Best defense: GrapheneOS. The verified boot chain and hardware attestation make forensic extraction harder. The duress PIN provides plausible deniability in some jurisdictions (check your local laws).

Threat: Compromised Device Access

Best defense: CalyxOS with Datura Firewall set to whitelist mode. This requires explicit app-by-app permission for network access, preventing silent data exfiltration.

Flashing Verification Commands

Before trusting any ROM, verify cryptographic signatures:

# Download the ROM and signature file
# Verify GrapheneOS using signify (their recommended approach)
signify -Cqp grapheneos-release-keys.pub -x factory.zip.sig factory.zip

# For DivestOS (uses GPG)
gpg --keyserver keys.openpgp.org --recv-keys 'KEYID'
gpg --verify divestos-*.zip.asc divestos-*.zip

# For CalyxOS
gpg --import calyxos-release-key.asc
gpg --verify CalyxOS-*.zip.asc CalyxOS-*.zip

Never flash a ROM without verifying its signature. A compromised ROM defeats all privacy benefits.

Post-Installation Hardening Deep Dive

After flashing any ROM, additional hardening steps improve your security posture:

# Disable USB debugging by default (only enable when needed)
adb shell getprop ro.debuggable
# If true, disable via adb or Settings → Developer options

# Review and restrict dangerous permissions
adb shell pm list permissions | grep android.permission

# Grant only the minimum necessary permissions
adb shell pm grant com.example.app android.permission.CAMERA

# Disable location services when not in use
adb shell settings put secure location_mode 0

# Restrict background network activity per-app
# Navigate to Settings → Apps → [App] → Permissions → Networks (ROM-dependent)

App Pinning for Sensitive Apps

Lock critical apps to prevent backgrounding without authentication:

# Enable app pinning (equivalent to Android's "Pin" feature)
adb shell settings put secure lock_pattern_visible_pattern true

Manually enable app pinning through Settings → Security → App pinning for banking and payment apps.

Migrating Between ROMs

If you need to switch from one ROM to another:

  1. Export your data first:
    adb backup -apk -shared -all -f backup.ab
    
  2. Flash the new ROM (follows the same process as initial flashing)

  3. Restore your data:
    adb restore backup.ab
    

Not all apps will restore perfectly. Reinstall apps individually if backup fails.

Supporting Your Chosen ROM

Privacy ROM development is volunteer-based. Consider contributing:

Your device model may not be maintained. Check the device list before flashing to ensure you’ll receive future security updates.

Frequently Asked Questions

Can I return to stock Android? Yes, you can flash the original factory image for your device. However, unlocking the bootloader is often permanent—you may not be able to fully lock it after flashing a custom ROM. Check your specific device before proceeding.

Will banking apps work? Most banking apps work on GrapheneOS and CalyxOS with proper verified boot. Banking apps that specifically check for modifications may fail on DivestOS or LineageOS. Test with your specific banks before flashing.

What about Google Play Services? GrapheneOS provides Sandboxed Google Play for compatibility. CalyxOS uses microG. DivestOS and LineageOS require manual installation of either microG or Google Play Services from other sources.

How often should I update? Monthly security patches are the industry standard. GrapheneOS and CalyxOS push updates monthly. DivestOS updates less frequently (check your device). LineageOS update frequency depends on your device maintainer.