access to the list of installed apps
treequell
Thanks for your quick reply. So : apps in Owner profile cannot directly get the list of installed apps from all profiles.
Where is it stated ? Do you have a link to official AOSP or GOS doc ? Or maybe you are a GOS dev ?
Another naive question : can they interact with the "Settings" app to get this list ?
- Edited
No I am just a GrapheneOS user who hangs around here. I remember a Dev talking on Matrix about how the Settings app in owner profile can see which apps are installed on other user profiles, but I can't recall. Maybe you can find the Settings app in the AOSP documentation.
This is a start:
https://grapheneos.org/features#improved-user-profiles
Android's user profiles are isolated workspaces with their own instances of apps, app data and profile data (contacts, media store, home directory, etc.). Apps can't see the apps in other user profiles and can only communicate with apps within the same user profile (with mutual consent with the other app). Each user profile has their own encryption keys based on their lock method.
These unofficial wiki pages maintained by some GOS users may also be worth a read:
https://hub.libranet.de/wiki/and-priv-sec/wiki/what-can-apps-see
https://hub.libranet.de/wiki/and-priv-sec/wiki/inter-app-comms
https://hub.libranet.de/wiki/and-priv-sec/wiki/user-profiles
- Edited
GOS2023 you're welcome. I've seen the devs saying also that some of the newest features on GOS have not been added to the documented features https://grapheneos.org/features yet, so do keep an eye out. For now, you can always refer to the changelogs https://grapheneos.org/releases#changelog.
Technically, Owner doesn't have access to list all installed apps for other profiles, but apps with system-level privileges can.
For example, when logged in to Owner, you can list all installed apps for every profile in the Settings app by going to Settings > Apps > All apps. There, in the code, there's logic for something like "if logged in as admin, list all apps for all profiles". To do that, the app, Settings, needs the permission INTERACT_ACROSS_USERS_FULL
, which is a permission restricted to apps that were included in the OS.
I seem to recall some Google apps use this permission on Stock, but they 100% cannot get this permission on GrapheneOS. No non-system app installed in any profile, including in the Owner profile, can list apps installed in other profiles.
I don't know for sure, but as far as I can tell Settings can list any profile's installed apps while logged in to any profile, even if it's not Owner. Technically, that's what Settings can do with its permissions, but in the places I've checked, AOSP code is careful to restrict this kind of usage to the Owner profile. GrapheneOS devs have done the same when changing Settings' code as well.
[deleted]
I would add this as a source:
https://source.android.com/docs/devices/admin/multi-user
- Edited
unwat What does it mean regarding previous statement from AOSP documentation : "Any user can affect the installed apps for all users.". Does it mean this statement is true for AOSP and false for GrapheneOS ? (As far as I have seen : I cannot uninstall from a secondary profile an app installed from Owner profile : it's not visible, as @treequell already explained)
I feel like that sentence from Android's website is way too vague and confusing, but it's technically correct.
When it comes to this specific thing, GrapheneOS and AOSP are pretty much the same, unless I've missed or forgot something.
It's hard to answer these things concisely.... Owner is a special case sometimes. Owner is considered to be the "admin," so it gets to see some extra info in the Settings app. That's why Owner can see some extra data for secondary users in Settings.
Settings has access to do some inter-profile stuff. That's why Owner can see some info about secondary profiles' installed apps. Other profiles aren't flagged as "admin" so they don't get to see the same info in Settings.
Outside of apps that have special access, like Settings, Owner and other secondary profiles are kind of the same.
"Any user can affect the installed apps for all users" just means that one profile can update an app and it's updated for all other profiles. Or, for example, one profile can install an app from F-Droid, so all other profiles can only install the F-Droid version of that app.
Profiles cannot affect app data for other profiles.
unwat When apps are installed or updated, they're installed or updated globally for every user. Apps aren't installed in profiles, they're installed on the phone then "activated" for profiles.
Sounds logical, but is the same case with the sandboxed Google Play Services?
I just noticed that when I create a second profile and via "Install available apps" I switch the toggles for the three Google ones I get them instantly compared to via the Apps app from that additional profile.
Oggyo Yes, it's the same case for any app.