Based on the installType documentation, we expect the user to be able to uninstall the app when one of the following is true:
- InstallType is not specified
- InstallType is AVAILABLE
- InstallType is PREINSTALLED
This has been working as expected on most devices but Android 13 devices are not allowing the user to uninstall apps.
Our solution relies on a custom launcher that is using the KIOSK installType. There are other applications that are optional, and they use the AVAILABLE installType. The policy looks something like this:
{
"applications": [
{
"packageName": "com.custom.launcher",
"installType": "KIOSK"
},
{
"packageName": "com.optional.app",
"installType": "AVAILABLE"
},
...// Other AVAILABLE apps
}
We tested two different devices, assigned to the same policy, side-by-side. One device is running Android 12 and the other Android 13. The Android 12 device behaves as expected; The user is able to uninstall the "optional" app in all scenarios above. However, on the Android 13 device, the user is blocked from uninstalling the "optional" app. The system just displays a toast message saying "Uninstalling unsuccessful".
Both devices were running the same version of the Android Device Policy app: 99.39.5 (1895180).
We have found that to successfully uninstall the "optional" app on the Android 13 device, the app needs to either use installType BLOCKING or be completely removed from the policy. Another configuration that allows the "optional" app to be uninstalled is if we change the launcher app to use an installType other than KIOSK. But none of these options are ideal.
Is this a known issue? Is there anything we can do get the expected behavior on Android 13 devices, while keeping the launcher in KIOSK mode?