MrStreisand

  • Dec 9, 2024
  • Joined Oct 25, 2023
  • soon404 Doesn't really seem like there's a way to make a completely anonymous one.

    There is: https://discuss.grapheneos.org/d/3366-how-to-create-google-account-anonymous/66

    If by anonymous you mean that they don't know who you are, then this is anonymous. You are not giving up personal information.

    soon404 Besides, won't having play store installed on the device just have it in the background.."spying"? Or won't it know my activities on apps and therefore be able to technically profile who I am?

    That's not how it works, not at all. Play Store can't see your activities in other apps. Play Services on GrapheneOS run in the standard app sandbox, without the privileged access it has on stock OS. In other words, it cannot do anything more than any other app you install on your phone.

    Being an app store, it will need to see which apps you install and have installed. Like any other app, it can collect your activities within the Play Store app itself. Of course also your IP address, if that matters to you.

    I've basically paraphrased the entry about Sandboxed Google Play on grapheneos.org: https://grapheneos.org/features#sandboxed-google-play

    soon404 I've seen people say to download them on a different profile but I don't really understand the benefits of this, still a big noob lol

    There are several benefits to user profiles. But as a new user, I personally recommend not using them unless you have a clear reason to do so. I'm not saying that to dissuade the usage of profiles in general. Rather, I'm observing many users who start out by separating their apps into two or more profiles, because they think this is a necessity to use GrapheneOS (it's not; it's your choice) and then come here and express how exhausted they are with constantly switching between profiles, and then saying that GrapheneOS is not for them because it's too tiring.

    It's interesting to discuss privacy practices, but when installing GrapheneOS for the first time, I recommend starting out simple. Use the Play Store, install the apps you usually use, then slowly go from there based on what you want/need further.

    • Hello community,

      over the past 3 months I wrote my bachelor thesis, comparing the privacy aspects of GrapheneOS (with and without Sandbox) vs. a normal stock android on a Google Pixel 6a. It mainly focused on network traffic (how much, domains requested, domain reputation, geographical spread etc.). I thought this may be interesting for you so I decided to share it here with you today.

      https://drive.google.com/file/d/1AIQgxAUhvFjW68pF6thQSPcWHoUkza6l/view?usp=sharing
      (Spoiler alert: GrOS is less privacy invasive ;))

      Feel free to ask any questions you may have.

      Greetings
      Martin

    • Another minor reason why I like running separate profiles is for the once or twice a year that I feel like doing a factory reset for a "clean" start. Much easier if the owner can stay the same. But I'm also a very simple phone user. I don't need it to do complicated stuff or change settings often, transfer files around, etc. I try to keep everything cloud based (hosted on personal servers at home) so my phone can stay tidy.

      • MrStreisand There really is no one "best" way to set up your phone with profiles. It's really up to you how you want to do it.

        I personally wouldn't suggest having Sandboxed Google Play running in a profile you're not even using. To me that seems like a waste of battery for none of the benefits. Two profiles with Sandboxed Google Play will just suck up more battery faster.

        If you want to use a primary profile with Sandboxed Google Play, then why not just use only the Owner profile, or keep the Owner profile completely empty and use a secondary profile for day to day use?

        I personally do it the second way. I think it's a better setup for multiple reasons:

        • If I want to save battery, I can always terminate my profile but I don't need to restart my phone.
        • Personal data can be put to rest easily, no reset needed.
        • If I want to be extra paranoid, I can use other profiles after ending the session of my regular use profile.
        • Profiles can be set up to forbid running in the background if you want to use extra profiles for other purposes.
        • After a reboot anyone with my phone would have to enter two different passwords to get to my personal data.
        • Certain system settings are only accessible via the Owner profile, so a password is required to change certain settings (some might find this annoying, but I like it because it's more secure, but it's true it's annoying for some other settings).
          • [deleted]

          • Edited

          other8026 Starting with the last part first: I wouldn't worry about it. I've wiped my phone multiple times and rearranged things to my liking. You won't know what you want or how you want things set up until you actually try them out.

          This.

          Try and use them before you jump the shark and commit, especially considering some of the bugs around switching between them and other nuisances if one were to look at the issue tracker and read this forum.

          • MrStreisand Would really appreciate thoughts and input on the matter, as i can't wait to use the phone, but i'd like to set it up properly.

            Starting with the last part first: I wouldn't worry about it. I've wiped my phone multiple times and rearranged things to my liking. You won't know what you want or how you want things set up until you actually try them out.

            MrStreisand So do i use obtanium only to OBTAIN (couldn't resist, sorry) the apps not present in gPlay? What logic would you suggest?

            To be honest, it doesn't matter if you ask me. I personally install with Obtainium if I can, then use other app stores if I can. Google Play is my second to last go-to, and F-Droid is my always my last.

            MrStreisand none of the apps downloaded from play store will be able to communicate to google if they are used in a different profile so it doesn't really metter the 'origins' of the app, as long as you trust the source?

            It doesn't matter. Apps won't know they were installed using a specific Google account and then expect Google Play to be installed and logged in to that account (that said, I have no idea how paid apps work. Maybe they check with Google Play Services upon installation using some API).

            MrStreisand Why manage all the apps on the owner

            I personally don't do that, nor would I suggest it. I prefer owner to be completely empty.

            MrStreisand wouldn't it be more logical to create an 'app manager profile' and use that to do the updates?

            I wanted to that once, but I never used the app management profile, so I gave up on this idea, personally.

            • MrStreisand I want to suggest adding a feature (please forgive the ignorance if it's not possible to some reason) - to be able to install and maintain apps from non-main profiles across all the rest of them. Similar how right now you can maintain it from the owner profile.

              There was something like this a while back, but it was removed because the implementation as it was could be abused. For example, a user installing a fake app in a profile they do have access to, then the owner inadvertently installing the same app on another profile.

              People do want a feature that works this way, or something similar to it, but I gather the GrapheneOS team wants to do it in a way that doesn't compromise the security of GrapheneOS users who use profiles when regularly or temporarily sharing their phones with other people.

              • MrStreisand thanks for the kind words!

                1. I lack the experience to know all the downsides to a "many user profiles" approach. You'll definitely miss some settings on user profiles compared to owner (e.g. WiFi and Bluetooth timeout are set globally in the owner profile, developer settings can't be unlocked etc.), but that can also be a good thing since it increases security (and dev settings are not recommended in general). Maybe using many profiles have some significant storage or battery usage impact since they can stay active in the background. And you'll have to set up a VPN per profile which is intentional, but it uses up your device slots in your VPN subscription (e.g. 5 profiles would use up one entire Mullvad license). There's probably more downsides, let's hope someone else can point them out.

                2. Often the app is the same on gPlay and via Obtainium (it is with Signal). When this is the case, I'd use the gPlay version for convenience and security. Obtainium is a great complementary tool for when you want to use apps like Newpipe, replace or extend Signal with Molly (or get a beta version of Signal), use the full IVPN feature set or have apps like Simple Gallery Pro for free. There are many good reasons to have both sources, but I'd say more often than not gPlay would be my main source.

                3. No every app can decide for itself what it collects and sends out. You can control the borders the app operates in (with storage and contact scopes, network and sensor permission, DNS firewall etc.) but if an app uses Google trackers and can send stuff to Google, it will do so, independently of its installation source or whether you use Play Services or not. At least that's my understanding and why I prefer FOSS software with no Google implementations whenever possible and reasonable.

                4. As I understand it you can install and update apps on any profile (and identical apps will be updated for every profile simultaneously), but you can only push apps from the owner profile to user profiles. So in order to have this "one profile is the control and update center" approach, it must be the owner.

                Hope this helps you and also triggers more educated people than me to comment and add ideas or correct me if I got anything wrong.

                • UPDATE: Initial MTE support is now available in GrapheneOS!

                  https://grapheneos.org/releases#2023103000


                  The below is quoted from the official GrapheneOS account, as can be seen here:

                  https://twitter.com/GrapheneOS/status/1716945639198880037

                  Pixel 8 and Pixel 8 Pro are ARMv9 devices supporting hardware memory tagging. Stock OS currently has a very primitive experimental implementation available as a developer option. We're going to be deploying a more advanced implementation for hardened_malloc in production soon.

                  Hardware memory tagging is going to provide a massive increase to protection against remote exploitation for GrapheneOS users. It's the biggest security feature we'll be shipping since we started in 2014. We want to have it enabled by default in async (fast) mode for the base OS.

                  We can provide a toggle for choosing between asynchronous (fast) and synchronous (more secure).

                  Many user installed apps have latent memory corruption bugs so we aren't going to enable it for them initially. We'll provide a toggle for setting the default (disabled, async, sync).

                  There can be a per-app toggle for overriding the global default alongside the toggles we already provide for using the full 48-bit address space (enabled by default) and hardened malloc (enabled by default, requires 48-bit address space). This will be a security game changer.

                  ARM memory tagging support provides a limited form of memory safety for both memory unsafe languages (C, C++) and the small subset of unsafe code in memory safe languages (Rust, Java, Kotlin). hardened_malloc was designed to use memory tagging and will be making great use of it.

                  MTE uses 4 bit tags for each 16 bytes of memory. hardened_malloc will be using memory tagging for all small allocations, which means 128k and below by default. hardened_malloc already places random guards around large allocations and quarantines their address space on free.


                  Regarding a timeline on the feature:

                  https://twitter.com/GrapheneOS/status/1716951114845962439

                  Likely under 2 weeks to an experimental release with it disabled by default. Likely longer before we can enable it by default for the base OS in async mode.

                  • drinkablederanged yes you pretty much got it right. I guess you could keep it simple by choosing only 2 "store" apps:

                    • Play Store or Aurora for apps you need from Google (e.g. banking apps)
                    • Optainium, Droid-ify vor Neo Store for anything else

                    There are many threads on here discussing the differences. Those 2 apps of your choice are in your owner profile to install and update all needed apps and then you push them to as many user profiles as you wish for your threat model. If you need Google Play Services for notifications, you should install it according to the official guide.

                    I don't use Sandboxed Play Services like this, but I suspect some apps will only function properly if installed after you installed Play Services first. Here's what I would do when setting up GOS from scratch with your requests:

                    1. Set up the owner profile (settings like disable sensor permission by default, screen timeout, wifi timeout, auto reboot etc.).
                    2. Set up all desired user profiles and install Sandboxed Play Services on the profiles that need them.
                    3. Install "app stores" on owner profile (I'd choose Play Store and Obtainium for security reasons) and install all your apps, disable network access right away (uncheck box upon installation).
                    4. Push the apps to their respective profiles, disable app installation on all user profiles. Set up notification forwarding however you desire.
                    5. Complete setup of user profiles (settings, logging into apps etc.).

                    I have not done this myself as my threat model requires me to use 2 devices, but each without user profiles. Therefore this is theoretical, maybe wait a day or two for more experienced people to discover any flaws in this idea.

                    • ve3jlg If one decides to switch apk sources, will uninstalling the app clear signatures and reset TOFU?

                      Yes. Once an app is uninstalled from all user profiles on the device, then installing an app with the same app ID again can have any signature it wants.

                      If that wasn't the case, you could move between F-Droid builds (signed by F-Droid) and developer builds (signed by the developer), for example.

                      The point about it being in all profiles is important because that thing is universal. If you have a variant of an app of an app in one profile and try to install an app with same app id but a different signature in another profile, Android will stop you, as it detects that you already have it installed with another key.

                      Same thing applies to trying to install a version than the currently installed version in another profile.

                      • matchboxbananasynergy

                        Thank you for your help, and the help from others! I truly appreciate this community, how people are willing to share their time and expertise in helping people achieve their privacy and security goals. I would like to contribute by summarizing what I have learned so far.

                        These conclusions are in the context of my personal threat model, which is pretty vanilla. I want to avoid surveillance capitalism. I'm coming from iOS, having never used an Android, and I already use (mostly) FOSS and/or privacy-respecting apps, and very few apps in general. Spotify is my main weakness in terms of privacy, but I truly value the music discovery I get from their collecting my listening data, so it’s a known and accepted weakness in my threat model.

                        On GrapheneOS, there are many ways to install apps: sandboxed Google Play, Aurora Store, F-Droid, RSS and GitHub, and others. I will focus on these specified four from the thread discussion.

                        Sandboxed Google Play is a secure method for installing and updating apps, with some minor (in my threat model) privacy compromises (see notes below). I will use this option (for now) for installing apps. I will use a single-purpose Google account to log in to Google Play. I will install it in my owner profile to be able to use Spotify. If I didn’t use Spotify, then I would likely avoid Google Play and skip down the list to using RSS and GitHub to install apps (and forgo notifications in Protonmail as a result).

                        Aurora Store uses shared Google accounts to access Play Store anonymously. Great for privacy, but this comes with some security risks (e.g., the shared account might have opted into beta versions of apps). Aurora Store itself has security risks (see link below). I prioritize security before privacy in my threat model, so I won’t use Aurora Store to install apps.

                        F-Droid has security concerns, and since I believe security is a necessary condition for privacy, I won’t use F-Droid to install apps. Their website is still a great method for FOSS app discovery. I hope the security flaws are fixed, because I would truly love to default to this store with its combined ease of use and focus on FOSS apps.

                        Security risks of using Aurora Store and F-Droid are explained in more detail in this link that was shared earlier:
                        https://privsec.dev/posts/android/f-droid-security-issues/

                        RSS and GitHub is a secure, but more complicated, approach to installing apps, and has privacy benefits over using Google Play for apps. This approach requires some skill and places a lot of the security responsibility on the user: (a) downloading the app from a reputable source; (b) verifying its signature; and (c) keeping it updated in a timely manner. It seems like the most complicated part is how the key signature is distributed to users, especially with respect to security. With TOFU (Trust On First Use), signature verification is luckily a one-time chore per app. Keeping it updated might be more tedious than Google Play, in exchange for being (more) free from Google. If I didn’t use Spotify, I would use this method instead of Play Store.

                        As a result of choosing sandboxed Google Play to install apps, I will face these potential privacy cons:

                        • Con: Google Play can collect data about notifications (but not the content if encrypted, like Signal messenger), and probably app metadata. Solution: n/a

                        • Con: Google Play can see a list of installed apps on that profile. But, so can all other apps in that profile. Solution: Install Google Play on secondary profile(s), if that provides other actual benefits (e.g., having two sets of contacts).

                        • Con: Google Play can access some user settings like timezone and language. Solution: n/a

                        • Con: Google Play increases attack surface, and creates an extra attack channel via notifications. Solution: n/a

                        • Con: Google Play can communicate with other apps via mutual consent, and those apps can leak data to Google that way. Solution: 1) Install Google Play on secondary profile(s) away from sensitive apps; 2) In profile with Google Play, choose apps that are unlikely to willfully sharing data with Google (i.e., FOSS apps, privacy-friendly apps).

                        For future actions, I will continue to educate myself about the RSS installation method, and I will keep an eye on Accrescent and consider it when it transitions out of alpha-beta phases.

                        Thank you again to everyone for your help!

                        • tango I think breaking it down with an example will help.

                          Every app has an app ID. Let's assume the app ID in this case is com.example.app. This app has been signed by me, using my signing key.

                          If you install that app, and then someone tries to get you install an update to that app with the same com.example.app app ID but signed with their key, the update won't work, and Android will stop you.

                          That is because Android knows that com.example.app is signed with a specific key. An app with the same app ID but another signing key is seen as malicious.

                          If you uninstall the app that I'd signed, and install the malicious app, Android will let you do it. However, as long as the app you installed initially is the legitimate one, all updates to that app will also have to be signed with the same key. The only reason for an app update to be malicious in that case is if the developer or whoever is signing that app to have their key compromised, which would allow malicious actors to sign their malicious app with the "legitimate" key.

                          All in all, this is why it's only necessary to verify the installation on the first install. Android will take care of it from there by not allowing you to update an app with the same app id but different signing key.

                          I hope that clears up any confusion.

                          • coffeefun A question I have is, what are the privacy pros/cons of using sandboxed Google Play on GrapheneOS compared with iOS? I assume that GrapheneOS without Google Play is better than iOS, but it's not clear what are the pros/cons with Google Play, with respect to privacy.

                            I'm afraid that I'm not really an authority on iOS, so it would be very hard to give you an accurate and thorough comparison there. What I will say is that again, with Sandboxed Google Play, you're getting nearly the same app compatibility as Stock OS without really taking a hit in privacy and security.

                            Google Play Services, Play Store etc. will have the exact same access as all other apps you install, but let's think about what that actually means for you, in broad terms:

                            1. You should assume that apps within the same profile can enumerate each other. Therefore, Google will know which apps you've installed. Of course, the same thing applies to all other apps you'd install.
                            2. Apps that you install which utilize Play Services will communicate with Play Services so that it can provide the functionality they need. The information that Google gets based off that varies greatly, and depends on what the app is willing to give it. For example, Signal can use Play Services for notifications. However, Play Services never see the actual message content of the notification. An important thing to note here is that even if you decide to forego Sandboxed Google Play, a lot of the apps you'd install probably have Google libraries in them that they use regardless, so you might want to keep that in mind if your reasoning for not using Sandboxed Google Play is avoiding Google in its entirety.

                            coffeefun Based on your comment, and those of others, it sounds like the consensus is that F-Droid has security risks.

                            Correct. At this point, I only use the F-Droid repository as a discovery tool to find out about new apps. If I actually want to download them, I do it through other means, not through F-Droid.

                            coffeefun I agree, the RSS alternative will require some time investment to learn.

                            It is not exceptionally hard to do, but it does add unnecessary complexity that you can easily avoid with a traditional app store.

                            coffeefun I noticed that you didn't include Aurora Store in your list of app sources. Is Aurora Store not recommended? By using it, do I gain any privacy benefits over Play Store? Do I lose any security benefits using Aurora instead of Play?

                            The primary reason for not mentioning Aurora Store is because I was recommend a one profile setup with Sandboxed Google Play. With that setup, Aurora Store makes little to no sense, in my opinion, unless you're extremely adamant about not having a Google account of your own (one could be created for the sole purpose of using it with the Play Store).

                            If you're using Aurora Store while you have Sandboxed Google Play, you won't need a Google account, which is arguably a privacy benefit. That said, you're now using a shared "anonymous" account. Aurora Store can't remove Play Store's account requirement, it just optionally allows you to use their own accounts instead of bringing your own.

                            The above might sound great at first, but it comes with drawbacks. A shared account means shared settings. It means that someone might have opted into a beta version of an app on that account and you're now downloading an update that may break.

                            There are also other security issues with Aurora Store that make it hard to recommend, though it is handy.

                            Quote from https://privsec.dev/posts/android/f-droid-security-issues/ which was linked above:

                            If you don’t have Play services installed, you can use a third-party Play Store client called Aurora Store. Aurora Store has some issues of its own, and some of them overlap in fact with F-Droid. Aurora Store somehow still requires the legacy storage permission, has yet to implement certificate pinning, has been known to sometimes retrieve wrong versions of apps, and distributed account tokens over cleartext HTTP until fairly recently; not that it matters much since tokens were designed to be shared between users, which is already concerning. I’d recommend against using the shared “anonymous” accounts feature: you should make your own throwaway account with minimal information.

                            This, coupled with the fact that apps are fully capable of communicating with Google all on their own (take a look at Google Maps - it's fully capable of working without Play Services present), make the benefits of foregoing the Play Store (which is more trusted, provided that you get it from GrapheneOS' Apps app, along with being more secure in general) dubious at best.

                            I personally still use Aurora Store in profiles where I don't use Sandboxed Google Play or for when I create a new profile to test something and don't necessarily want to login with my Google account, but I do it knowing where it does well and where not.

                            If you have any more questions, shoot!

                            • @coffeefun Hey there, and welcome!

                              I will give you one piece of advice that I've been giving newcomers, especially people who are coming from iOS.

                              Forget about user profiles. Install GrapheneOS, use the owner profile only, and install Sandboxed Google Play and get your apps from the Play Store.

                              Given the fact that these apps are sandboxed like every other app on your system, with this simple setup you have a simple, pain-free and convenient way to use your device and your favorite apps while significantly increasing both your security and privacy compared to a similar setup on Stock OS.

                              User profiles do provide benefits, but things can get esoteric very quickly. If you're interested, I'm sure you'll read more about them and other things and participate here and you may end up using them down the line, but please do yourself a favor and don't overwhelm yourself. I see people repeatedly make that mistake and then think that GrapheneOS is difficult to use, when in fact they've just made their lives unnecessarily difficult all on their own.

                              Related to this, I have 2 of my previous posts to suggest, as they'll shed some light / provide some context on Sandboxed Google Play and user profiles:

                              https://discuss.grapheneos.org/d/2501-privacy-sacrifice-when-using-google-play-services/5
                              https://discuss.grapheneos.org/d/168-ideas-for-user-profiles/2

                              With that out of the way, outside of Play Store, recommending ways to obtain apps gets dicey pretty quickly. F-Droid is not a source I can recommend anymore for the reasons mentioned above and others. Another option is the RSS method. Obtainium is another option that attempts to make the RSS method a bit smoother. Keep in mind that for someone in your position, I don't recommend either of these approaches at this point.

                              The only alternative app source outside of the Play Store that I would recommend is Accrescent, however it's in very early alpha and only contains a handful of apps at the moment. It's the kind of thing to keep an eye out for, rather than something to use at the moment.

                              I hope this helps! Feel free to ask any follow-up questions. :)