I see quite a few people claiming that Graphene OS is the only way to stay private on Android or that anything but Graphene OS is insecure. In this post, I will describe why I personally do not care for Graphene OS and some alternatives I would suggest.

First off, let’s address the security features of Graphene OS. A lot of the security of Graphene OS comes from AOSP itself. In fact, AOSP has a very good track record. If you get malware on your device, you most likely can just uninstall it. For reference, here is the Android security page: https://source.android.com/docs/security/features

There are some Graphene OS unique security features. For instance, it has a hardened kernel and restricts access. I think this is actually pretty useful but I haven’t seen a need for it much in the real world. The tightened permissions are nice, and I think that is the main benefit of Graphene OS over AOSP. It is also nice that device identifiers are restricted from a privacy perspective. However, from my perspective, you should not run apps that are bad for privacy. Running it in the web browser will be more secure than bare metal could ever be.

One place I strongly disagree with Graphene OS is the sandboxed Google services framework. They say having Google in a sandbox is more secure. It may be more secure, but it isn’t going to be as private as MicroG. The real benefit of MicroG is that it is community-built. It isn’t a black box like Google framework, and any data sent back is randomized. I think it is a mistake for Graphene OS not to have support for it, even if it is also run in a sandbox.

Another thing I have noticed is that Graphene OS prioritizes security above all else. That doesn’t mean it isn’t private as it itself is great for privacy. However, if you start installing privacy-compromising applications such as Gmail and Instagram, your privacy is quickly lost. The apps may not be able to compromise the OS, but for them to be used, they need permissions. To be fair, this is a problem that is not unique to Graphene OS, but I think its attempts to be closer to Google Android make it more tempting for people to stick to poor privacy choices.

I think other ROMs such as Calyx OS take the ethical component much more seriously. Unlike Graphene, it promotes F-droid and FOSS software like MicroG. Graphene purely focuses on security while Calyx OS focuses on privacy and freedom. On first setup, it offers to install privacy-friendly FOSS applications such as F-droid and the like. I realize that MicroG is not perfectly compatible, and some people need apps, but I think alternatives are going to always be better.

One of the most annoying parts about Graphene OS is the development team and some of the community. They refuse to take criticism and have been known to delete any criticism of Graphene OS. Not only that, they have a history of trying to harm any project or person they don’t like.

Here is a page that isn’t written by me that sums it up: https://opinionplatform.org/grapheneos/index.html I think their take is fairly extreme, but I agree with them in many ways. I also understand how upsetting it can be to be censored.

  • As a CalyxOS user myself, I was about to reply with some comparison points, and then I thought… Why bother. I’ll just get downmodded and dragged into another pointless argument with people who think it’s vitally important that they should be right and I’m wrong.

    So my take is this: whatever works for you.

    You like GrapheneOS? More power to you.
    You like CalyxOS? You’re a rockstar.
    You like IodéOS, LineageOS or /e/? Cool!

    What matters is not to run Google’s surveillance stack. That’s what’s important! Even if your deGoogled OS of choice isn’t quite entreprise-grade, it’s still 95% safer and 200% more honest than anything with straight Google on it.

  • A lot of the security of Graphene OS comes from AOSP itself

    GrapheneOS never claimed anything different, in fact, on their website, they say:

    GrapheneOS is a private and secure mobile operating system with great functionality and usability. It starts from the strong baseline of the Android Open Source Project (AOSP) and takes great care to avoid increasing attack surface or hurting the strong security model.

    GrapheneOS just adds to the already solid security of AOSP. The security improvements are listed at https://grapheneos.org/features. Also, a bunch of AOSP security features originate from the GrapheneOS project and were merged into the AOSP codebase. Just so you know.

    If you get malware on your device, you most likely can just uninstall it.

    This is not the kind of stuff GrapheneOS is defending against. GrapheneOS specifically focuses on persistant malware by improving Android Verified Boot along with other security mechanisms.

    I think this is actually pretty useful but I haven’t seen a need for it much in the real world.

    There is a real-world need for it. Hardening the system against attacks from commercial/state-sponsored spyware like NSO Group’s Pegasus or Cytrox’s Predator requires extensive defense-in-depth improvements to the entire operating system stack. If you want to see an instance of actual, real world kernel-level exploits against mobile devices, look no further than the case of UAE-based human rights activist Ahmed Mansoor. In 2016, his iPhone 6 was attacked by the UAE government, using the Pegasus spyware made by an Israeli cyber mercenary company known as NSO Group. The attack used a payload delivered via SMS, which contained a link to a malicious website. If Mansoor would have clicked on the link, a zero-day exploit in WebKit CVE-2016-4657 would have been triggered. The attack used the Trident exploit chain, which if successfully deployed, would have remotely jailbroken Mansoor’s iPhone, using, CVE-2016-4655 and CVE-2016-4656, two kernel-level exploits present in iOS at the time. There are very good reasons for a security-focused OS like Graphene to make substantial improvements to all parts of the Android operating system, including the underlying Linux kernel.

    However, from my perspective, you should not run apps that are bad for privacy. Running it in the web browser will be more secure than bare metal could ever be.

    Some apps simply can’t be run in a web browser, and they require you to install them on your device. GrapheneOS significantly helps with running untrusted applications in a safe manner, especially when using the hardened user profiles feature, which essentially makes you anonymous (in regard to device and profile identifiers, it is still important to use a VPN/Tor, etc.)

    I think other ROMs such as Calyx OS take the ethical component much more seriously.

    Claiming to be a secure OS while repeatedly missing important AOSP security patches is pretty misleading, and giving the user a false sense of security is not quite ethical. GrapheneOS is very minimalistic, and the user is free to choose how they want to get their apps. Although I support the fact that CalyxOS bundles apps like Signal and F-Droid, some other users might see it as unnecessary bloat. I prefer Graphene’s approach of only including strictly necessary apps, and leaving the rest up to the user.

    Graphene purely focuses on security while Calyx OS focuses on privacy and freedom.

    A secure base device/OS is what enables privacy and user freedom. It’s not like GrapheneOS is taking away any of your privacy or freedom, in fact, it is very private by default, due to its minimalistic nature: https://grapheneos.org/faq#default-connections

    I realize that MicroG is not perfectly compatible, and some people need apps, but I think alternatives are going to always be better.

    The main problem with microG is the fact that it needs to run as root, whereas Sandboxed Play Services uses a much more secure approach for getting Google services, while still preserving user privacy.

    One of the most annoying parts about Graphene OS is the development team and some of the community.

    Not quite sure what you mean. The GrapheneOS team just really cares about good, high-quality, secure and complete code, and they like to call out any projects that don’t follow these principles. Just like Linus Torvalds has a history of rejecting poor, low-quality code, in order to keep the Linux kernel codebase clean and easy to maintain. They’re just focused on quality, and if people are offended by that, they should really overthink their own approach to writing and maintaining code.

    Here is a page that isn’t written by me that sums it up: https://opinionplatform.org/grapheneos/index.html

    That website almost feels like a shitpost. Any source that tells you to “Avoid [GrapheneOS] like the plague”, but claims that LineageOS is “Good to go!” shouldn’t be taken seriously. Recommending people a highly insecure OS that doesn’t even allow for locking the bootloader is straight-up user-hostile. I could go through each one of the “arguments” brought up against GrapheneOS, but they are so bad that I don’t feel like wasting my time on a whole bunch of them. But let’s just go through one example:

    https://opinionplatform.org/grapheneos/strcat-tactical-licensing-20230409.html

    This post suggests that GrapheneOS is somehow against open-source software, and shows the following chat log:

    backpacklaptop: Do anybody know what happened to bromite?

    Apr. 9, 12:59

    joe: it’s not actively maintained Apr. 9, 14:32

    there’s no proper announcement or notice, that’s the bigger issue Apr. 9, 14:35

    strcat: we’re working on completing state partitioning including for cookies in Vanadium, and we’ll be adding other features like content filtering

    collaboration welcome

    Bromite was using nearly all of our work on it and they decided to start disallowing us from using their work in return by strictly licensing it only as GPLv3 Apr. 9, 14:46

    so we switched to using GPLv2-only with additional permissions (to make it more permissive) which blocked them using our code since GPLv2 forbids GPLv3’s additional restrictions

    may have something to do with it dying, don’t know

    it’s possible we can switch back to MIT licensing if it’s dead but I’m not going to do that yet

    Apr. 9, 14:47

    Bromite literally used Graphene’s code and then changed the license to prevent GrapheneOS from using any of the Bromite code. In response to this anti open-source move, GrapheneOS changed the license for their Vanadium browser from MIT to the more restrictive (but still FOSS!) GPLv2 license. But apparently GrapheneOS is “using tactical licensing changes against bromite”. What a stupid argument. Anyone who spreads such garbage on the internet can’t be taken seriously. The chat log also shows the GrapheneOS main dev (strcat) saying:

    collaboration welcome

    But the exact same post on that troll website claims that GrapheneOS is “discouraging cooperation between developers”. I think I gave more than enough examples why this shit can’t be taken seriously. It also shows really well how hostile some parts of the community are against GrapheneOS, for no real reason and with absolutely no arguments.

    Another example of this is Jonah Aragon, who posted a really stupid toot on Mastodon, comparing the GPLv2 license of GrapheneOS to FUTO’s source-available license. This claim is so infinitely stupid, and by Jonah’s definition, the Linux kernel isn’t FOSS since it’s also licensed under the GPLv2. These are the kinds of people that Graphene devs have to deal with all the time. A bunch of trolls and absolute morons.

    • Great writeup, I really appreciate it, especially the point about locking the bootloader and isolation - it’s all about the threat model of a user.

      It’s annoying, frustrating, and most of all, disappointing that we get just noise between these projects, rather than mutual respect with clarification of the differences, and the different use-cases, for them. Instead we get adversarialism because some people think only their way is the right way (such as this post).

      I run Lineage on a couple devices that can’t get any thing else. Some people on the Graphene side would (and have) chastised me for running an “insecure” rom. Well, I know my risks, and the value I get from this device, and I mitigate my risks through layered security (as all risks are) - I’m addressing my threat model.

      The issue with the Graphene team is they have the stereotypical, arrogant, condescending attitude of tech people.

      I’ve been that tech person at one time in my career, and got it trained out of me by good leadership decades ago.

      The crap they’ve said, to me (not something I heard second hand), while asking for help was such a major turn off (and in my help desk career would’ve had them in for re-training), that I gave up on using Graphene. Their attitude was looking for ways to blame me instead of trying to determine why things were misbehaving.

      What if I had a true, difficult issue later, this is what I’d have to deal with? I had dismissed the reports I’d read about the team, until I experienced it first hand.

      So no thanks. Graphene is dead to me now…I will never… Let me repeat that NEVER use or recommend the system to anyone, unless the team changes. And that’s a damn shame, because I really wanted to use it on my phones going forward, and even bought Pixels specifically to use Graphene.

  • I don’t care which is better. But I can share certain unique features which make me personally chose GrapheneOS over all other options I know of:

    • it is possible to relock the bootloader
    • you can disable the internet permission
    • the location service is independent on google services, even if you install them
    • you can use mutliple profiles and pipe notifications from one profile to another
    • you control native app debugging (and its off by default)
    • you have storage scope (as well as contacts scope)
    • you get all the latest security patches and really fast
    • and more…
  •  jet   ( @jet@hackertalks.com ) 
    link
    fedilink
    English
    17
    edit-2
    1 month ago

    Use what you like! No reason to fight people over which OS they want to run.

    GrapheneOS is very clear they are security focused, and not anonymous.

    Nothing is stopping people from using fdroid on GOS, the default GOS install has no opinions, nothing is installed.

    Contact Scopes, Storage Scopes, Pin Randomization are some of the security and agency over user data that helps users have a better experience with combative apps like whatsapp

    The core problem with microg is that it runs privileged, which is counter to the GOS principles of minimum privileges for non-system components. (update: MicroG does download and run binary blobs from google on demand in the privileged system) DivestOS does have a form of microg running as a normal app, so that could be a interesting approach in the future https://divestos.org/pages/faq#microgEnable

  • First off, let’s address the security features of Graphene OS. A lot of the security of Graphene OS comes from AOSP itself.

    So, I started off by hand-picking the security improvements that I deemed to be the most important but I came to the conclusion that my efforts were futile. There are just that many improvements across the board; the website is full of in-depth explanations, I highly recommend you check it out: https://grapheneos.org/features

    The argument itself isn’t very sound to me. All of these other operating systems are… also based on AOSP. So any improvements they make are also brushed aside? Let’s disregard the fact they often deteriorate the security of AOSP rather than improving on it…

    For instance, it has a hardened kernel and restricts access. I think this is actually pretty useful but I haven’t seen a need for it much in the real world.

    Here you go, the Cellebrite Premium documentation. This one’s from July this year, it shows they have no dice at GrapheneOS devices:

    https://discuss.grapheneos.org/d/14344-cellebrite-premium-july-2024-documentation

    The tightened permissions are nice, and I think that is the main benefit of Graphene OS over AOSP.

    Also includes network and sensors permissions, alongside alternatives to the ordinary storage and contacts permissions in the form of storage & contacts scopes.

    However, from my perspective, you should not run apps that are bad for privacy. Running it in the web browser will be more secure than bare metal could ever be.

    Yes an installed app does have more access than if the service was just running through the browser. However sometimes you may be forced to install the app, then you have to bite the bullet - but also remember you are given the tools to reduce its privacy impact. The aforementioned improvements to the permissions system allows you to tame even particularly hideous apps and profiles allow for even more isolation if desired.

    One place I strongly disagree with Graphene OS is the sandboxed Google services framework. They say having Google in a sandbox is more secure. It may be more secure, but it isn’t going to be as private as MicroG. The real benefit of MicroG is that it is community-built. It isn’t a black box like Google framework, and any data sent back is randomized. I think it is a mistake for Graphene OS not to have support for it, even if it is also run in a sandbox.

    Common misconception. Micro-G downloads and runs proprietary Google Play code for some functionality, and gives it privileged access too. Recommend reading this excellent forum post: https://discuss.grapheneos.org/d/4290-sandboxed-microg/11

    Another thing I have noticed is that Graphene OS prioritizes security above all else. That doesn’t mean it isn’t private as it itself is great for privacy. However, if you start installing privacy-compromising applications such as Gmail and Instagram, your privacy is quickly lost. The apps may not be able to compromise the OS, but for them to be used, they need permissions. To be fair, this is a problem that is not unique to Graphene OS, but I think its attempts to be closer to Google Android make it more tempting for people to stick to poor privacy choices.

    I think other ROMs such as Calyx OS take the ethical component much more seriously. Unlike Graphene, it promotes F-droid and FOSS software like MicroG. Graphene purely focuses on security while Calyx OS focuses on privacy and freedom. On first setup, it offers to install privacy-friendly FOSS applications such as F-droid and the like. I realize that MicroG is not perfectly compatible, and some people need apps, but I think alternatives are going to always be better.

    GrapheneOS doesn’t dictate what services you should use or what ideology to follow. We do educate users about the risks and also benefits some services have over others so you have the full picture and can make an informed decision. No one is stopping you from running a de-googled setup, which by the way is the default out-of-the-box experience on GrapheneOS unlike on many other mobile operating systems that do make connections to Google, that includes CalyxOS. You can run a full FOSS setup too, perhaps with the help of the excellent app store Accrescent that we have been outspoken about and provide a mirror for easy and safe installation. F-Droid functions no different and if you really want to, MicroG is possible to get up and running too. Though you might have to make your own build to give it the privileged access it requires.

    One of the most annoying parts about Graphene OS is the development team and some of the community. They refuse to take criticism and have been known to delete any criticism of Graphene OS. Not only that, they have a history of trying to harm any project or person they don’t like.

    I don’t know where that’s from. We’re happy to dive into technical debates and explain our line of thinking, valid issues are acknowledged as such and dealt with. Take the fairly recent dns traffic leak outside of the vpn tunnel for example. It affects Android as a whole, we developed and pushed out a fix for it.

    Here is a page that isn’t written by me that sums it up

    Looks like someone went off rails here and developed an unhealthy obsession. /shrug

  • I am not going through this wall of BS point by point but here is a fine example of how I know you have no clue what your talking about…

    One place I strongly disagree with Graphene OS is the sandboxed Google services framework. They say having Google in a sandbox is more secure. It may be more secure, but it isn’t going to be as private as MicroG.

    MicorG has privileged access to you phone, it literally has no privacy benefits over even standard Google Play. You are just choosing to trust MicroG with that level of access instead of Google.

    Honestly just don’t use GOS if you don’t believe in its benefits or at least sack up and post this on their official forum.

  • Graphene purely focuses on security while Calyx OS focuses on privacy and freedom.

    This seems to sum it up. Most people know there is a difference between privacy, security, anonymity and freedom. Especially ifvtheybare installing ROMs.

  • I’m getting two different arguments from you, and I can’t tell which one is your actual argument

    • grapheneOS is not as good as people think

    Or

    • people act like grapheneOS is the only option for a solid privacy experience

    To the first argument, its just kinda… Wrong? Grapheneos is very transparent about what it is and is not, and what it is is an excellent security focused os which can be a great basis for you to have a privacy focused experience as long as you don’t install spyware like Instagram and Gmail.

    To the second argument, yeah, I get that. People acting like its the only option are either misinformed, falling for bias, or intentionally being disingenuous. Its very good, and almost certainly one of the best ways to have a privacy focused experience, but you’re not delusional if you want to use something else. There’s plenty of talented people building upon the already great basis that AOSP provides. But by the same token, community members being silly or fanatical doesn’t really make the operating system any worse.

      •  jet   ( @jet@hackertalks.com ) 
        link
        fedilink
        English
        8
        edit-2
        1 month ago

        It’s just a table of features for MANY oses, which table entry did you find to be incorrect?

        This is a comparison of popular Android “ROMs” (or better: AOSP distributions). 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.

          • I looked at some other ROMs, and I could hardly find any feature that’s worth including in the comparison table. Specifically, I looked at the features page of CalyxOS: https://calyxos.org/features/

            • The Firewall is listed in the table, GrapheneOS also has it (it provides a better solution, but that’s not too important for now)
            • microG is also listed in the table
            • the Wi-Fi and Bluetooth timers from the “Device security” section are not covered, but these aren’t unique to CalyxOS. From looking at the screenshots on the website, I actually think that the code was simply copied from GrapheneOS (which is not an issue btw, GrapheneOS is FOSS software. But this is not a unique Calyx feature)
            • USB-C control is covered in the comparison table, and it also shows that CalyxOS uses a much weaker implementation of it, which is simply based on Graphene’s old code, before they replaced with a newer, better implementation

            ⚙️ Privacy settings lets you see what apps are requesting which permissions

            That’s an AOSP feature I guess

            • The following point:

            🤫 Sensitive Numbers privacy. Calls to numbers for help lines such as domestic violence, child abuse, suicide hotlines are not recorded in the call log.

            📇 Access these numbers in the Helplines Dialer entry.

            is not an OS feature, as it’s simply implemented in the Dialer, which can freely be changed by the user. Putting this in an OS comparison table wouldn’t make any sense, as it isn’t an OS feature, but rather a feature of an individual app.

            • Seedvault backups are included in the comparison table
            • Work profiles are a stock AOSP feature, it doesn’t make sense to include this, as it isn’t unique to any ROM
            • The dialer is mentioned again. I already explained why it doesn’t make sense to include it.
            • They mention Cromite and the Tor Browser, both are apps that can be downloaded by the user
            • Aurora and F-Droid can also be installed by the user, they’re not unique features

            ⌛ Auto-reboot device when not unlocked for a certain period requiring entering PIN/password again

            🙈 Scramble lockscreen PIN

            These two points also use the original GrapheneOS code and they aren’t unique to Calyx. Sure, these could be included, but it wouldn’t give Calyx any advantage.

            • Next they mention that they bundle Signal and K-9 Mail. Again, these apps can simple be installed by the user. Having Signal pre-installed shouldn’t be a selling point for a custom ROM. If someone doesn’t know how to install Signal on their own, maybe they shouldn’t be using a custom ROM in the first place.

            (Sorry for the bad formatting btw, but it should still be understandable)

            The comparison table is absolutely not biased. It is clear that it’s focused on security, and it factually compares the security features of different ROMs. Feel free to create your own objective, factual comparison table that focuses on other aspects.

  • I second CalyxOS, been using it for about a year now and I think it’s a good compromise between privacy and convenience. Is it the absolute most secure and private? Maybe not, but my threat model is low and I don’t mind trading a little bit of privacy for a bit of ease of use.

  • This is the first time ive heard about microg. How is the app support with it? Can you run every app that needs play service? I have Google Sandbox installed only on a second Graphene profile, and use it for bare minimum of apps that dont work without it, Bolt app, mostly weird MFA for work or package tracking apps i use once per month, while disabling most of their permissions. Will microg improve my situation in this case to be worth switching over? Does it work without root?

    • It works with most apps. From a security perspective it needs a decent amount of permissions depending on how you configure it. Android doesn’t really expose root for security reasons.

      If Graphene OS works for you that is great. Just keep in mind it isn’t the only option. I really wish that Graphene had support for MicroG even if it meant running MicroG in a sandbox.

          • Since microG obviously doesn’t use the official Google Play Services binary, it has to spoof the signature of the app, in order to get other apps that rely on Play services to think that microG is in reality Google Play. Android usually prevents this by checking and enforcing an application’s signature, but it can be bypassed using root. This further decreases security, since it also bypasses any SELinux policies.
            Since GrapheneOS uses the official Google Play services binary and runs it in the Android application sandbox, the signature is still valid and no spoofing, and no root privileges are required. Running third-party code as root unnecessarily increases attack surface, and it completely destroys Android’s security model, which is based on the principle of least privilege (which is very common to see in cybersecurity).

              • Well I personally can’t stand the idea of Google GSF

                I can actually understand that, and I had the same thought when I started using GrapheneOS. But microG is just an open source layer that requires proprietary Google blobs in the background, which sits between the proprietary Google Play services library in proprietary apps and proprietary Google network services. You gain almost nothing from using it, while simultaneously increasing attack surface, due to microG’s requirement for root privileges.

                MicroG also is very flexible on how it works. It is broken down into lots of different services.

                Can you really control which parts of microG are active? This suggests the opposite: https://discuss.grapheneos.org/d/4290-sandboxed-microg/18

                From the thread:

                Signal is a perfect example where the app works fine without Google Play including with push but will not work correctly in a setup you proposed in the other thread of using it with FCM disabled. That breaks the app and it won’t get calls or push notifications anymore, unlike using it in a profile without Google Play

                (Yes, I know that the GrapheneOS Forum might be a biased source when talking about this topic, but I currently don’t have any way of testing this out with microG. If you don’t believe what the Graphene dev is saying in the forum thread, you can try it out for yourself)

                The only part of microG that I would really consider using is UnifiedNLP, together with a privacy-friendly network location service. There was actually a discussion about including UnifiedNLP in GrapheneOS, but I think there were some licensing issues. (GrapheneOS can’t use GPLv3 code. GPLv2, MIT and Apache are fine though). But Graphene’s SUPL & PSDS-based approach for obtaining location information currently works well enough, and they might integrate an open, privacy-friendly NLP like beaconDB in the future.

  • @possiblylinux127 This link you shared is interesting, the continuous attacks from their community are very obvious.

    One thing, I am listed as a GrapheneOS supporter which is HILARIOUS. I wish I could contact this guy, I think they might have gotten that from be defending somewhat GMS sandboxing because another guy was saying some weird stuff.