I am new to GrapheneOS, but I hope I've done my homework thoroughly, reading up on everything I could find.
I am looking into limiting apps from running unless I explicitly use them. I am thinking of something like Slack or Whatsapp, which I'd never want to run in the background. Instead, my use-case is that I make time to open them and then wade through messages and notifications. When I am done doing so, I want the app to die, and not be able to continue collecting data, or listening for events in the background.
User profiles would do this I think, but they are quite inconvenient after all, and I wouldn't be able to e.g. copy from an email some text into a Slack channel, if my email programme is available only in another user profile.
My understanding is that the GOS exec model puts every app into its own sandbox even within a user profile, and thus each and every app is shielded from each other, except for comms via public APIs, and only if consent has been given.
However, apps within a user profile can apparently discover presence of each other, so this is a bit of a privacy leak, for instance if I do not want Untrusted App A to be able to find out that I have App B installed, for whatever value that might be. So if I want to prevent App A from finding out about App B, I need to put them into separate user profiles.
The other benefit of user profiles, as far as I understand, is that switching a user terminates all processes of the previous user, thus preventing apps from running in the background.
So these are two benefits… are there any others?
What is the real danger of App A being able to find out about App B if it cannot talk to it, or access its data anyway?
And finally, is there a way to limit certain apps from ever running in the background, to achieve what I am trying to achieve?