ryrona
This is what I see on my phones:
Primary Profile
: settings/app-info shows all apps installed, on all profiles.
This makes sense because the primary profile needs authority to delete a secondary profile (and hence any apps + data installed by that profile). Such 'secondary profile apps (SPA)' show in the PP as 'Not installed for this user'; for such an app, from the PP>settings>AppInfo>App>top right corner you have the option to uninstall the SPA for all users.
Secondary Profiles
: settings>AppInfo shows only the apps installed by that profile or pushed to that profile by the Primary Profile.
ryrona If I have the same app installed in two user profiles
Have you actually tried this with two Secondary Profiles? Someone here did have an issue when they were trying to do similar:
https://discuss.grapheneos.org/d/12091-app-not-installed-as-package-conflict-with-an-existing-package and @other8026 fixed it for them.
I have installed apps in the Primary Profile with Sandboxed PlayStore, when they were already installed in a Secondary Profile with Aurora. This was very nice because that app in the SP was updated with the latest PlayStore version and now showed PlayStore as the origin not Aurora. In both profiles the first install date shows as the Aurora first install date.
I think you will find all profiles are using the same app install in the same place - probably based on the (unique) reverse dns name like com.android.deskclock
. Some people here do have different versions of apps installed but they are using a third party 'work profile' app to achieve this; not the GrapheneOS provided mechanisms. Perhaps you will need to look at this if you want to hide app installs in a Secondary Profile.
AOSP/GrapheneOS is likely to be using some combination of fscrypt / namespaces / uuid / selinux such that a Secondary Profile has no permission to see or access an App in an app folder until either the app is pushed to it from the PP or installed by an app store in that SP.
https://source.android.com/docs/security/features