It might not always be possible to transfer data between multiple users/profiles. It depends on the **Device/Work Policy Controller** app, installed by you or your IT admin. Android device can be managed in two ways: **fully managed** (which is setup at the time of first use or after factory reset on a company owned device) and **work profiles** (which can be added or removed anytime without affecting primary profile on a personal device / BYOD). Both requires a profile owner app (MDM/DPC/EMM) installed and registered as an administrator. Fully-managed devices may further have work profiles and it provides more isolation and control on device-wide policies than the latter. See a comparison of both modes under *Building DPC* <sup>([1][1], [2][2], [3][3], [4][4])</sup> and *Employing Managed Profiles* <sup>([5][5])</sup> in Android documentation. [**Multiple users**][6] can also be added if enabled in ROM by OEM/ROM developer. Being more isolated than profiles, [interacting with users][7] requires `INTERACT_ACROSS_USERS` which is a permission with `signature|system` [protection level][8]. So third party apps cannot use it at all. Irrespective of if the secondary user is a human user or personal profile owner or work profile owner, the primary intention is data isolation. As defined [here][9]: >*"A work profile securely isolates work apps and data from personal apps and data."* And as explained [here][10], file sharing between device owner and work profile must only be through `intents` (fired with content URIs), **not file paths**. But a profile owner may completely disallow data sharing (and IPC/`intents`) between users/profiles. For instance see [`DISALLOW_SHARE_INTO_MANAGED_PROFILE`][11], [`DISALLOW_USB_FILE_TRANSFER`][12], [`DISALLOW_MOUNT_PHYSICAL_MEDIA`][13], [`addCrossProfileIntentFilter`][14]. Since Android 9 `adb` is also disallowed to access file belonging to secondary user/profile. For details see [How to access multi-user storage in `adb shell` on Android 9+?][15] - However if the sharing is not disallowed, you'll see options to switch to other profiles (tabs in Share Sheet on Android 11+) when sharing files: <img src="https://i.sstatic.net/kPJSD.png" width="300" /> <img src="https://i.sstatic.net/1ok4C.png" width="300" /> <img src="https://i.sstatic.net/yMJ7o.png" width="300" /> - [Shelter](https://gitea.angry.im/PeterCxy/Shelter) - a free and open source app (I've no affiliation) that leverages the *"Work Profile"* feature to provide an isolated space for cloning apps - acts as a content (media) provider and provides *"File Shuttle"* option which lets you access Work Profile files from Personal Profile through *"Storage Access Framework"*: <img src="https://i.sstatic.net/YjkOA.png" width="400" /> - You can also run a small `http`/`ftp` server for file sharing on either side, or sync to cloud storage, if not restricted by policy. So it entirely depends on the profile creator's policy if file sharing is allowed or not, usually not desirable in a corporate environment. However following method may work in all situations: - The most widely used trick for file sharing among multiple users is `Android/obb` directory which is [shared][16] among users to save storage space. Sharing was managed using bind-mounts in early days but then handling was [added][17] to FUSE/`sdcardfs` internally. However sharing is [deprecated][18] in Android 10 introducing mount option [`unshared_obb`][19] in `sdcardfs`. So up to Android 9 you can use `obb` directory for file sharing among users/profiles: ``` ~# mkdir -p /storage/emulated/*/Android/obb; touch /sdcard/Android/obb/test_file ~# ls /storage/emulated/*/Android/obb/* /storage/emulated/obb/* /storage/emulated/0/Android/obb/test_file /storage/emulated/10/Android/obb/test_file /storage/emulated/obb/test_file ``` [1]: https://developer.android.com/work/dpc/device-management [2]: https://developer.android.com/work/dpc/network-telephony [3]: https://developer.android.com/work/dpc/security [4]: https://developer.android.com/work/dpc/system-updates#introduction [5]: https://source.android.com/devices/tech/admin/managed-profiles#device_administration [6]: https://source.android.com/devices/tech/admin/multi-user [7]: https://source.android.com/devices/tech/admin/multiuser-apps#interacting_with_users [8]: https://android.stackexchange.com/a/217522/218526 [9]: https://developer.android.com/work/guide#work-profiles [10]: https://developer.android.com/work/managed-profiles#sharing_files [11]: https://developer.android.com/reference/android/os/UserManager#DISALLOW_SHARE_INTO_MANAGED_PROFILE [12]: https://developer.android.com/reference/android/os/UserManager#DISALLOW_USB_FILE_TRANSFER [13]: https://developer.android.com/reference/android/os/UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA [14]: https://developer.android.com/reference/android/app/admin/DevicePolicyManager#addCrossProfileIntentFilter(android.content.ComponentName,%20android.content.IntentFilter,%20int) [15]: https://android.stackexchange.com/a/221534/218526 [16]: https://android.googlesource.com/platform/dalvik/+/a8c56490e730052cf196b79135c44c679b42dd56 [17]: https://android.googlesource.com/platform/dalvik/+/7c5e6a3268dc25207633ce1ff5958ce705aba77a%5E%21/#F0 [18]: https://android.googlesource.com/platform/system/core/+/cabc52646a78474c80b7df061848ec64f82f502e [19]: https://android.googlesource.com/kernel/common/+/f544ad0b154702daed947248cf75b840181c1aa2