Virtualization
It is possible in a capability platform to provide enough Linux context to run almost any app designed for Linux.
We had good luck importing a variety of Linux (Unix then) apps into environments with enough Linux like function to get the apps to do what we needed.
The code to produce this context was itself in user mode, subject to capability discipline.
It helps to have someone around who groks Linux and knows what apps expect in the way of “laws of physics” inside a Linux world.
We also provided environs for apps from IBM’s world of MVS, CMS, etc.
I assume this is possible for Android and iOS but I have no experience there.
If such an app asks for access to ‘the’ contacts list then the user is in an easy position to give it access to an empty list, or a list devoted to some aspect of his life.
The app itself need not be savvy to social compartmentalization.
The user can create several persistent instantiations of the app, one for each compartment.