Official GrapheneOS sales donate
Comparison of Android-based Operating Systems
This is a comparison of popular Android “ROMs” (better term: AOSP distributions or Android-based OS). Please note I’m not affiliated with any of these projects and I am not giving any specific recommendation. If you think anything is factually incorrect, please let me know.
DivestOS was originally included in this comparison but it was discontinued at the end of 2024.
Comparison of Android-based Operating Systems
Last updated: 2 August 2025
GrapheneOS | CalyxOS | IodéOS | /e/ | LineageOS | “Stock” Android | |
![]() | ![]() | ![]() | ![]() | |||
Based on | AOSP | AOSP | LineageOS | LineageOS | AOSP | AOSP |
Freedom | ||||||
Free and open source (FOSS)? | Yes | Yes | Yes | Yes | Yes | No |
Deblobbed? | Yes, significantly | Yes, significantly | Yes, minimal | Yes, minimal | Yes, minimal | No |
Features | ||||||
Network controls for apps | Direct and indirect access | Direct access only | Direct access only | Direct access only | Direct access only | No |
Network-based location (without GNSS) | Opt-in with server choice | Yes, using microG location | Yes, using microG location | Yes, using microG location | No | Yes, using Play Services |
System-wide connection/tracker blocking | Private DNS setting, or via VPN app | Private DNS setting, or via VPN app | iode-snort app, Private DNS, or VPN | Private DNS setting, or via VPN app | Private DNS setting, or via VPN app | Private DNS setting, or via VPN app |
E2E-encrypted phone backups | Yes (Seedvault) | Yes (Seedvault) | Yes (Seedvault) | Yes (Seedvault) | Yes (Seedvault) | Yes, but requires Google login |
Notification forwarding from other user profiles | Yes | No | No | No | No | No |
Duress PIN (to wipe device) | Yes, see here | No | No | No | No | No |
Android Auto compatible | Yes (sandboxed), see here | Yes (w/ privileged permissions), see here | Yes (w/ privileged permissions), see here | Yes (w/ privileged permissions), see here | No | Yes (w/ privileged permissions) |
Google Pay compatible | No | No | No | No | No | Yes (w/ privileged permissions) |
Call recording | Yes | Only in selected regions, see here | Only in selected regions, see here | Only in selected regions, see here | Only in selected regions, see here | Depends on regions and manufacturer |
Option to enable screenshots in all apps
| No | No | No | No | No | No |
Degoogling (connections to Google) COLOURS | ||||||
eSIM activation | Google eUICC w/o data sharing | Google eUICC (preinstalled) | Google eUICC (preinstalled) | Google eUICC (preinstalled) | Google eUICC (preinstalled) | Google eUICC (preinstalled) |
Provider for network-based location | None default, GrapheneOS, Apple, or Google | microG location | microG location | microG location | n/a | |
SUPL (for Assisted GNSS) | GrapheneOS default, Google or none | Google default, or none | Google default, or none | None default, or Google | Google default, or none | |
PSDS/XTRA (“Standard” depends on GPS chipset) | GrapheneOS default, Standard, or none | Standard (excl. Google) default, or none | Standard (excl. Google) default, or none | None default, or Standard | Standard default, or none | Standard |
Connectivity check/captive portal | GrapheneOS default, Google, or none | Google (can be changed) | Kuketz.de (can be changed) | Murena.io (related to /e/) (can be changed) | Google (can be changed) | Google (can be changed) |
DNS connectivity check | GrapheneOS default, or Google | |||||
DNS server fallback | Cloudflare | Cloudflare | Quad9 | Quad9 | ||
Network time | GrapheneOS default, or none | Google (can be changed) & carrier | NTP.org (can be changed) & carrier | NTP.org (can be changed) & carrier | Google (can be changed) & carrier | Google (can be changed) & carrier |
Hardware attestation provisioning | GrapheneOS default, or Google | |||||
DRM (Widevine) provisioning | GrapheneOS default, or Google | |||||
Google Play Services | ||||||
Implementation | GmsCompat (sandboxed Google Play) | microG | microG | microG | None by default. It’s possible to install microG manually (LineageOS supports signature spoofing for microG since 2024). Alternatively, there are ROMs with microG preinstalled or one can add Google apps during the installation process, but this is not officially supported by LineageOS. | Google Play Services |
Optional? | Yes (not preinstalled) | Yes (preinstalled but opt-out) | Yes (preinstalled but opt-out) | Can be disabled via developer mode | No (preinstalled without opt-out) | |
Runs in standard app sandbox? | Yes | No | No | No | No | |
Can be limited to user or work profile? | Yes | Yes | ? (TBC) | ? (TBC) | No | |
Signature spoofing needed/allowed? | No | Only for Google signature | Only for Google signature | Only for Google signature | No | |
Push notifications via Google FCM? | Yes | Optional | Optional | Optional | Yes | |
Google Play Integrity? | Passes Basic Integrity only, see here | Passes Basic Integrity only | No but basic integrity expected soon | No but basic integrity expected soon | Yes | |
Option to mark apps as installed by Play Store? | Yes if signature matches | Done if installed from Aurora Store | Done if installed from Aurora Store | No | No | No |
Privacy | ||||||
Storage scopes | Yes, see here | No | No | No | No | No |
Contact scopes | Yes, see here | No | No | No | No | No |
Per-app sensor controls | Yes, see here | No | No | No | No | No |
Per-connection DHCP state flushing | Yes | No | No | No | No | No |
MAC address randomization | Per connection, see here | Per network | Per network | Per network | Per network | Per network |
SUPL: IMSI or phone number sent? | No | No | No | No | No | Yes |
Qualcomm XTRA: user agent sent? | No | Partially (for Qualcomm chips) | Partially (for Qualcomm chips) | Partially (for Qualcomm chips) | Partially (for Qualcomm chips) | for Qualcomm GPS chips |
Closed cross-profile package leaks? | Yes | No | No | No | No | No |
Closed device identifier leaks? | Yes, see here | No | No | No | No | No |
Metadata stripping for screenshots | Yes, see here | Yes, see here | No | No | No | No |
EXIF metadata stripping for photos | Yes, see here | No | No | Available as option | No | No |
Location tagging for photos | Opt-in | Opt-in, see here for more info | Opt-in | Opt-in | Opt-in | Opt-out |
Tracking through Android Advertising ID? | Not part of the system | Randomized ID | Randomized ID | Randomized ID | Not part of the system | Yes, but can be deleted in settings |
Security | ||||||
Verified boot (if supported by device)? | Yes, incl. system app updates | Yes, but excl. system app updates | Yes, but excl. system app updates | w/ test keys; excl. system app updates | No | Yes, but excl. system app updates |
Hardware-based security verification | Yes, see here | No | No | No | No | Some devices, see here |
System app downgrade protection | For updates and boot, with fs-verity | For updates (incomplete) | For updates (incomplete) | For updates (incomplete) | For updates (incomplete) | For updates (incomplete) |
Secure application spawning? | Yes (exec) | No | No | No | No | No |
Hardware memory tagging? | Yes, if supported by device | No | No | No | No | No |
Android Runtime JIT compilation/profiling | AOT compilation w/o profiling | Interpreter/JIT with profiling | Interpreter/JIT with profiling | Interpreter/JIT with profiling | Interpreter/JIT with profiling | Interpreter/JIT with profiling |
Dynamic code loading prevention for apps | System, opt-in for non-system apps | None | None | None | None | None |
Secure TLS for SUPL? | TLSv1.2 | TLSv1.1 or TLSv1.0 | TLSv1.1 or TLSv1.0 | TLSv1.1 or TLSv1.0 | TLSv1.1 or TLSv1.0 | TLSv1.1 or TLSv1.0 |
Fallback DNS server with DNSSEC? | Yes | Yes | No | Yes | Yes | Yes |
Secure connection to network time server? | HTTPS via GrapheneOS server | NTP w/o NTS and carrier-based time | NTP w/o NTS and carrier-based time | NTP w/o NTS and carrier-based time | NTP w/o NTS and carrier-based time | NTP w/o NTS and carrier-based time |
Can disable USB-C and pogo pins data? | Default (while locked), see here | No | No | No | No | No |
Can disable USB-C charging? | Opt-in (after boot), see here | No | No | No | No | No |
Can disable USB connections? | Default (while locked), see here | Default (while locked), software only | ? (TBC – like Lineage or stock?) | ? (TBC – like Lineage or stock?) | Opt-in, software only | Device admin API |
Can auto-disable WiFi if unused? | Yes | Yes | No | No | No | No |
Can auto-disable Bluetooth if unused? | Yes | Yes | No | No | No | No |
Can auto-disable NFC if unused? | Yes | No | No | No | No | No |
Auto-reboot timer for locked devices | Yes | Yes, with flaws (no proper BFU state) | No | No | No | No |
2-factor fingerprint unlock | Yes (fingerprint + PIN), see here | No | No | No | No | No |
Hardened system components | Yes, hardened memory allocator, kernel, libc, webview (Vanadium), SELinux policy, and additional hardening. See here | No (same as AOSP) | No (same as AOSP) | No (same as AOSP) | No (same as AOSP) | No (same as AOSP) |
Updates | ||||||
Security update speed (AOSP subset of ASB) | Usually same day | Currently no updates | 2-4 weeks, sometimes longer | 1-2 months, sometimes longer | 1-2 weeks, sometimes longer | Depends on phone vendor |
Full patches on fully supported devices | Several days | Currently no updates | Several to many months | Many months to over a year | Several to many months | Depends on phone vendor |
Partial security updates (ASB) after EoL date | until 5 years from launch | Currently no updates | Several years | Several years | Several years | By definition: No |
Number of Android versions supported | Usually 1 Android version | Currently no updates | Usually 1 Android version | 2-3 Android versions | Usually 3 Android versions | Usually 3 Android versions |
Webview update speed | <2 days | Currently no updates | <2 weeks | Several weeks/months | <2 weeks | Depends on phone vendor |
Supported devices | Hardware requirements | Hardware requirements | ||||
Asus* | No | No | No | Older devices only | Older devices only | Yes (ZenUI) |
Fairphone | No | Currently not available | Yes | Yes | Yes | Yes |
Yes | Currently not available | Yes | Yes | Yes | Yes | |
Motorola | No | Currently not available | Yes | Yes | Yes | Yes |
Oneplus | No | No | Yes | Older devices only | Yes | Yes (OxygenOS) |
Samsung* | No | No | Older devices only | Older devices only | Older devices only | Yes (OneUI) |
Sony | No | No | Yes | Older devices only | Yes | Yes |
Xiaomi | No | No | Older devices only | Older devices only | Yes | Yes (HyperOS) |
* these manufacturers don’t support bootloader unlocking anymore for all or most of their new devices. “Older devices only” = no devices released since 2023. |
Appendix 1: using different profiles in Android
It is possible to use different profiles to separate apps, files and other data from each other. From least to most separate from the main user profile, the options are: work profile, private space (since Android 15), and secondary users. Below is a comparison how they differ:
Work profile (with Shelter) | Private space | Secondary user profiles | |
Privacy & data access | |||
File access | Separate | ||
Contact access | Separate | ||
Calendar storage | Separate | ||
Clipboard | Shared with main profile | Shared with main profile (GrapheneOS: sharing can be disabled) | Separate |
VPN connections | Separate | ||
Saved WiFi & Bluetooth connections | Shared with main profile | ||
Private DNS (in settings) | Shared with main profile | ||
System settings | Mostly shared with main profile | Completely separate | |
Call and SMS history | Cannot access calls & SMS | Optional access (“turn on phone calls & SMS”) | |
Communication with other apps | Limited to other apps in same profile | ||
See which other apps are installed | Limited to other apps in same profile | ||
Convenience | |||
Profile can run in background? | Yes | ||
Profile can auto-start after reboot? | Yes | No (need to unlock profile first) | |
Clone apps from/to main profile | Yes, both ways (via Shelter) | GrapheneOS only, from main to private | GrapheneOS only, from main to secondary |
Can use biometrics in apps? | Yes | Only if separate biometrics are set up for this profile | |
Integration with main profile | |||
Quick switch between apps from different profiles? | Yes, apps appear in main profile’s recent app list | No, need to switch active user | |
Integration in file manager as storage location | Yes (via Shelter) | No | |
Share files across profiles via “Share” menu | Yes | No | |
Can add app shortcut to (main profile’s) home screen? | Yes | No | |
Can add widgets to (main profile’s) home screen? | No | ||
Can show app notifications in main profile? | Yes; same as notifications from apps running in main profile | if using device screen lock for private space: Yes; if using separate PIN/biometrics for private space: Yes, but no notification content is shown, just app name | GrapheneOS only & optional for each profile; no notification content is shown, just app name |
Protection & security | |||
PIN & biometrics | Can use same as main profile or set up a separate authentication | Needs to be set up separately but can also use none (“skip”) | |
Need to enter PIN/fingerprint to unlock profile? | Only if separate work profile PIN was set up | Yes (can be after rebooting or after turning screen off) | Optional (only if a PIN was set up for the profile) |
After unlocking profile, need to enter PIN/fingerprint to start apps? | No | if using device screen lock for private space: No; if using separate PIN/biometrics for private space: Yes, after the screen was turned off. | No |
Profile session can be shut down or paused? | Yes |
Appendix 2: Which other alternative mobile operating systems are there?
Besides Android and Android-based free & open source operating systems (see the table above), the only viable alternative for most people is Apple’s iOS. There have been many attempts to establish a third mobile OS, but so far none of them have been successful: The below is a non-comprehensive list of mobile operating systems, both those you can try today and those that tried and failed in the past:
- iOS
- Android, both preinstalled proprietary distributions like Samsung’s OneUI or Xiaomi’s HyperOS, and open source forks of AOSP, such as GrapheneOS FOSS or LineageOS FOSS
- Windows Mobile/Phone († 2020)
- BlackBerry OS († 2018)
- Symbian († 2012)
- Mobile Linux distributions which can run generic (desktop) Linux applications, such as postmarketOS FOSS and PureOS FOSS or mobile spins of desktop Linux distros such as Fedora, OpenSUSE, OpenMandriva, Debian (Mobian), Manjaro etc. FOSS (see here for a good list)
- Other mobile OS using the Linux kernel but unable to run generic (desktop) Linux apps so they need apps specifically developed for them (Android technically also fits in this category):
- SailfishOS
- Ubuntu Touch FOSS
- KaiOS
- FirefoxOS († 2015) FOSS
- Tizen († 2017 – for smartphones at least, it’s still used in Smart TVs)
- Meego († 2012) FOSS
- Maemo († 2011)
- webOS († 2011 – for smartphones at least, it’s still used in Smart TVs)
Source: https://eylenburg.github.io/android_comparison.htm