On android there are three recommended operating system:
GrapheneOS
GrapheneOS starts from the strong baseline of the Android Open Source Project (AOSP) and provides substantial privacy and security improvements from the bottom up, such as:
- hardened memory allocator
- hardened C library
- hardened kernel
- stricter SElinux policies
- secure application spawning system
- hardware-based security verification and monitoring
- Wi-Fi anonymity (per-connection MAC randomization, anonymous DHCP, anonymous IPv6)
- Network permission toggle
- Sensor permission toogle
- hardened app runtime
- hardened verified boot
- stronger app sandbox
- stronger file-based encryption
- encrypted backup via seedvault
- mitigation against browser fingerprint
- jitless toggle for Vanadium
You can find a partial list of grapheneOS features here.
GrapheneOS has also experiments support for installing the official releases of:
as unprivileged, sandboxed apps like any others and GrapheneOS implements shims to make them work without the many privileged permissions and SELinux policy extensions these apps usually require. This approach fit the android security model, unlike microg.
CalyxOS
CalyxOS starts from the strong baseline of the Android Open Source Project (AOSP) and minimizes the tracking, surveillance, and spying done by phone manufacturers, mobile phone service providers, internet service providers, advertising companies, data miners, and malicious hackers. It provides some privacy and security improvement, such as;
- scramble PIN
- block unknown USB devices
- encrypted backup via seedvault
- Wi-Fi and Bluetooth auto turn off
- directly make an encrypted call using Signal or WhatsApp from the Dialer
- sensitive Numbers privacy
- tethered network devices (USB or Wi-Fi) can use the phone's VPN or Tor.
- microg
- datura firewall
- mozilla Location Services (and Dejavu) available as default location services.
- nominatim available as default geocoding service
You can see the full lost of features here
In addition, CalyxOS bundles some application in order to protect user's privacy and security, such as;
-
CalyxVPN and RiseUP VPN
-
Aurora store and F-droid
-
Signal, k-9 and openkeychain
LineageOS
LineageOS is a ROM focused on costomization and compatibility with different devices rather than improve privacy and security. Nonetheless, It comes with a few privacy and security improvements, such as:
- PIN scramble
- sensitive numbers privacy
- encrypted backup via seedvault
- Trust
- Hide specific apps behind a secure lock
You can see more detail about LineageOS features
However, this ROM severely weaken the security model of android in different ways:
-
using SELinux in permissive mode instead of enforcing mode, which is a very bad approach
-
disabling verified boot which ensures that all executed code comes from a trusted source, rather than from an attacker or corruption
-
using userdebug builds, which is a bad approach because builds released with userdebug do have serious sandbox holes. In fact, Even if lineage supported verified boot, you could easily disable it as it is a userdebug build. So malware could just disable verified boot on lineageos if it wants to due to userdebug and achieve full persistence.
-
lacking of rollback protection which means that an attacker could downgrade the system to a vulnerable version for further exploitation even if the bootloader was locked.
Moreover, LineageOS still support phones which don't have vendors support anymore. So, closed source components such as the bootloader, modem firmware, and other firmware no longer get updates.
/e/
/e/ is basically a LineageOS reskin.
conclusion
It's important to understand that this is not a comparison. These operating systems are different projects; they offer different things, have different goals,thus they have different approaches. Therefore, I'm not saying what OS you should use. You have to choose according your own user case and threat model. And please, if you can read the documentation I linked about these project.
Also, these project have really active community, so if you have any questions you should ask there: