• Yes, it’s totally unacceptable. Mobile devices are definitely an area where open computing is being lost. It’s even worse in iOS, where running arbitrary code within the device you’ve bought requires a $100/y payment or running an insecure version of the operating system and a jailbreak.

    GrapheneOS seems to be the only workable, half-decent solution. But there is a lot of tradeoffs that are neede.


    score 1 · canonical

    • In terms of user-control, I don’t think GrapheneOS is the best solution in the Android ecosystem. It may well be the best in terms of security, but that’s a different question.

      Just like Google’s Android, GrapheneOS does not allow the user arbitrary filesystem access under any circumstances. This means a few things:

      • You cannot take full backups of your phone or otherwise take out all your data. All you can do is ask each app kindly via a backup API for the things it’s willing to give you.

      • If you ever want to replace GrapheneOS, maybe because you’ve found something better or because the project stops supporting your device, you need to re-unlock the bootloader, wiping all your data.

      In essence, this means that replacing Google’s Android with GrapheneOS swaps out one gatekeeper for another. Your data is still not yours. The same is true for e.g. CalyxOS, which also insists on locking the bootloader (with a non-user-controlled key) and providing no arbitrary filesystem access.

      This is a definite degradation compared to the previous generation of Android distros such as Lineage OS, where users kept full control of their device and their data. Is it worth giving that up in exchange for stronger security? Maybe, maybe not. All I’m saying is that GrapheneOS does not represent the optimum in terms of user control.


      score 1 · canonical

      • LineageOS does not support arbitrary filesystem access for the user. This requires rooting, which they don’t support and don’t recommend. The LineageOS.org web site won’t tell you how to root your phone. https://wiki.lineageos.org/faq#can-you-help-me-root-my-device But you can do this with Magisk.

        Likewise for GrapheneOS. Here’s a way to run GrapheneOS on a rooted phone with Magisk: <github.com/schnatterer/rooted-graphene>.

        The choice of whether to run your phone with the bootloader unlocked is likewise a choice that the user makes, independent of the OS. To run GrapheneOS with the bootloader unlocked, skip the “relock bootloader” step when you follow the official GrapheneOS installation instructions.


        score 1 · canonical

        • Huh, that’s interesting. I’ll admit I haven’t used it in years, but back then it was always userdebug builds, which enabled adb root and thus full backups. They also used to recommend TWRP, which gives another method of proper backups. It seems like they’ve regressed in this domain, again in the interest of security, but still kind of regrettable. Is there no longer an Android distro focused on user control?


          score 1 · canonical

          • I suspect the problem is the existence of Android apps that will refuse to run if they detect that the phone has been rooted. (Mostly banking apps? IDK.) Perhaps Lineage decided that it was more important for apps to work, and maybe they didn’t want the tech support hit from people complaining that their apps don’t work.

            The distro you want isn’t a popular distro, because it will be focussed on the needs of hard core tech types who want ultimate control at the expense of app compatibility, and therefore at the expense of user friendliness.


            score 1 · canonical

      • Interesting! I hadn’t considered that perspective. I think this is because of attempts to sandbox applications between one another right, and avoiding a single application getting all data within the device. It’s interesting for me because I am having discussions in https://lobste.rs/s/9ipypq/updates_full_disk_access_macos where people lament the lack of isolation between apps in desktop operating systems such as MacOS.


        score 1 · canonical

        • But it’s not just apps. ADB also does not get full access. Neither does the recovery (we used to be able to do full backups via TWRP, does anybody remember that?). The only party who could get full access to your data is whoever holds the signing keys - so either Google or GrapheneOS. This may be a fine tradeoff for many people but I’m not happy about it. This is not how I run my desktop Linux and I don’t think I want to run my Android like this either.


          score 1 · canonical

          • If you find a solution that works and is open I’d be interested to hear it! I’ve been thinking in this area, albeit not with a lot of effort hehe. I’d prefer not to have a phone at all, though these days there are so many apps that require a phone, like banking and so on.


            score 1 · canonical

            • There are basically 2 types of solutions:

              • Run Android with local root and/or unlocked bootloader, like Lineage OS. You lose some security such as defense against evil maid attacks but it’s very convenient and you’re fully in control

              • Run something like GrapheneOS, including the locked bootloader, but build and sign it yourself with your own key. If done correctly this would let you have your cake and eat it too, but it’s a bit of a hassle to set up. I think a project with proper support for this would be great.


              score 1 · canonical

              • My problem is I don’t really believe it is possible to use Android in a way that lets you be independent of Google. I feel the same way with Google Chrome. It’s like, sure, technically it’s open source but in practice most forks cannot sustain updates against such a large codebase, and Google is fundamentally hostile. I think the people behind Graphene have done a good enough job of this, working very hard to make an OS that, for example, can be used without Play Store.

                Mobile devices are such a pain! I wish they hadn’t become a necessity of life and one could have a reasonably practical solution to this.


                score 1 · canonical