ProtectedWorkProfile & HiddenProtectedWorkProfile apps

Would like to introduce ProtectedWorkProfile and HiddenProtectedWorkProfile apps. They for now are not in F-Droid (cause I’m still trying to publish previous app), but I simply wanted to tell about them.

One time I spoke about similar, but only in context of the question about the queue of publications, without a detailed description of this apps and then I sure wasn’t speaking about the second of them. But here I want to detailedly describe their functionality.

The main purpose of these apps is protection from physical data extraction using attacks via USB, and also protection from duress to data disclosure.

ProtectedWorkProfile app is an app for creating a “work profile” on a phone by analogy with Shelter, but with improved protective mechanisms. It disallows data transfer/debugging via USB inside the profile. And also wipes the profile upon detection of any connections detected as USB, that is, all types of connections except for charging from ordinary charging brick (!!! this concerns data transfer, charging from a PC, connecting to another phone, using type-c headphones). Upon screen off it hides apps and also evicts encryption keys in essence transferring the work profile into BFU. During initial setup it disables trust agents inside the profile so that no one can interrupt reliable locking of the profile. The app suggests assigning a separate password for the work profile with a length of at least 14 characters. Also the app allows setting a limit of incorrect profile password entry attempts for wipe data. Besides, for showing apps after hiding there is also its own password, and there one can set a Duress Password, which will wipe profile. The app prohibits screenshots inside the profile.

HiddenProtectedWorkProfile app is essentially a clone of the first one, but hidden inside the work profile as a shortcut, and launched only through a notification. This allows, when hiding the rest of the apps upon turning off the screen, to hide the entire profile from the launcher on many devices, as not a single visible app remains in the profile. As a result, the profile is harder to notice or accidentally pause and, accordingly, there is less chance of accidental pausing of USB detection. This mechanism depends on the launcher, therefore it is recommended to test individually on your phone. Also want to note that in this variation, the profile is activated during the first launch via NOTIFICATION, and not immediately upon its creation, to prevent skipping the initial setup, since it is impossible to launch the initial setup screen automatically, as the Launcher Apps mechanism used in the previous version for this does not support launching screens invisible in launchers. Currently this works, but possibly on some systems launching screens via notification before profile activation may stop working.

WARNING: Using these apps you absolutely must set a separate password for the work profile, otherwise its transitioning into BFU will have no sense due to identical encryption keys with the main profile, which may be in AFU.

ProtectedWorkProfile
GitHub: GitHub - confidenseuide/ProtectedWorkProfile

HiddenProtectedWorkProfile
GitHub: GitHub - confidenseuide/HiddenProtectedWorkProfile

Users, what do you think about this? Any ideas on how to improve data protection?