Clear app data and cache on FORCE_INSTALLED apps when kioskCustomLauncherEnabled is on - android-management-api

We have a few private apps we distribute to dedicated Android devices, when we move them between users I want to be able to clear the app data from the apps. A few months ago, this was working but recently when we go to clear app data (from Settings) it isn't allowed by the policy.
We don't want users to be able to uninstall the apps but we do want to be able to clear app data so it doesn't retain user data from the prior user.
Is there a way to just clear a single apps data?
Is there some policy setting which controls whether or not you can clear app data?
Our current workaround is to manually switch to a profile without the apps (the ones we want to clear) then switch them back to the pertinent profile which forces and uninstall then reinstall of the apps. However, this is more cumbersome than we would like.

I think this is working as intended. +1 on kioskCustomerLauncher however being an app running in kiosk mode isn't a "secret", it's just transparent to the policy for ease-of-use, in my opinion :)
TheoL
AndroidEnterprise

Related

Google parental control Family link app doesn't ask for approval

I've setup google parental control on my children phone, they ask for approval to install a game and i approved it, later i changed my mind and uninstall it from there phone, but they went to play store a re-install it, but this time family link didn't ask for my approval, it's just installed it and showed me a notification that it's been installed. What i want is that whenever they install anything, no matter it was once approved or millions times, google play must ask them for my approval each time it's reinstall.
Most probably you approved the app as Always allowed app. To edit app activity:
Open the Family Link app Family Link and then Select your child.
On the "App activity" card, tap Set limits or More.
Next to your desired app, tap Always always allow.
From here you can select an option to:
Always allow always allow.
Set a time limit Set limit.
Set unlimited time Empty hourglass.
Block an app Block.
The Google Family Link app lacks the 'whitelist' feature to allow only a strict set of application to install. Unfortunately, the answer is you cannot prevent the installation of a previously installed application (as a previous answer suggested, you could block said apps).
I experimented and unfortunately disabling and re-enabling Family supervision will still allow previously installed apps to install. Also, the previously installed apps will be available if you get a new device for the child's account. Or at least, this is the functionality circa Fall 2022.
An extreme solution would be to create a new account, but obviously this is a frustrating answer if you are trying to do something like protect an older family member who has established accounts for billing.
This solution outlined below will not work, but I did read it as a proposed solution elsewhere online. I thought I would include it and mention it with this warning.
Open the Play Store app
Select the account icon in the upper right corner
Choose the Manage app & device from the popup menu
Select Manage
Click Installed
Select Not Installed
Select all applications you wish to remove in checkable list
Click the Trash Can icon in the upper right corner
This would disassociate the application from the account in an ideal world; however, it does not and the child account can still reinstall the offending applications. The parent is notified of this installation, but they cannot prevent it.
Had the same issue but rather than doing the "google play delete not installed apps list"-thing which doesnt solve the problem anyway, use this list to search and install the apps you dont want your child to have installed. After that you can manually block these unwanted apps from normal family link app and deinstall them after you've done that. (You can also leave them on the phone, i mean they are blocked anyways, but it should still take memory space so no reason to not deinstall them after)
Now you will see the following if your child tries to reinstall the app from the play store:
picture
it says "your parents blocked this app" (just in german :) )
This "feature" (if you even want to call it that way) is really stupid and this way might be the only one to solve this problem even if a bit time-intensive. Hope Google will work on Family Link. Big potential but soooo many problems.

Using an enterprise app for Single App Mode with Profile Manager in Mavericks Server (MDM)

I have a bunch of iPads that are all supervised, and that are enrolled into a MDM server (Mavericks Server). I've added the app to the specific device group, but when I go to the profile settings and Single App Mode the only apps I can select are the builtin ones.
Is there no way to use a third party (enterprise) app as the app for Single App Mode?
EDIT: If you use Apple Configurator and add the app there you can set Single App Mode to use that app, I would imagine that would be possible when doing the same in Apple's Profile Manager, but it doesn't seem to be working here.
EDIT2: Looking at Apple's documentation it does indeed seem to be possible to select a third party app for single app mode using their Profile Manager, so why isn't the app showing in the list for me?
http://images.apple.com/education/docs/assessment_with_ipad_mar2013_v2.pdf
Go to the Device Group, after installing the app (that you want to show in Single App Mode dropdown and lock it to) do "Update Info" (small icon in bottom-middle-left of screen) on all the devices in that group. Wait a bit, then go to Single App Mode screen again, the app should start appearing.Works for me. The "Update Info" thing also works for Single Device as well and you can lock to any new app installed from Profile Manger, doesn't matter if the app was installed while supervising through Configurator or not.
So interestingly enough in the new update for Server (3.1.1) this seems to be working. The Enterprise app is now listed in the dropdown box.
However there also is about 10 empty items in the box with no text description. So it's clearly still a bit buggy.

How to make an ipad app impossible to close

I am programming an app for an experiment by the University of Queensland Psych Department. The app needs to be impossible to exit, or at least it would be preferable if it were impossible to exit. This is not a virus- it is for an experiment with the Grute Eylandt Aborigines. Anyways, do any of you guys have any idea how to set the app to be impossible to exit, or even better, to set it so that you have to enter a password to exit it? Furthermore, on a separate subject, do you guys have any idea how I can save the information in the app to the iPhone? This app will not go through the App Store so it does not need to follow App Store rules. Therefore, if there was a way to save "Button (whatever button it is) pushed at (time and date)" to the notes section of the iPhone every time a button was pushed in the app, and/or to save audio recorded using the AudioToolbox framework to the actual iPod library, that would be fantastic. Otherwise I would have to make some sort of db or plist file to save everything with if-then statements, I think. Thank you!
Check-out iOS 6 Accessibility feature:
It allows a parent, teacher, or administrator to limit an iOS device
to one app by disabling the Home button, as well as restrict touch
input on certain areas of the screen
Put the device in a "kiosk" case so keep the home button from being pressed. For storing the data to the device, if it is a small amount of data, use NSUserDefaults, if this will be a large amount of data, I would lean more toward Core Data
Easiest solution on the market -- MOKIMOBILITY has developed software that allows you to lock the home button. It is Mobile Device Management software with a full range of security features. It essentially locks down your iPad so the user is only able to use what you what them to use. It is called +MDM www.mokimobility.com The software can be managed mobile-y from a central interface. Slick software.

WP7: Edit Screenshot While App is Backgrounding (Mango)

I have an app that I have been developing that can display sensitive user data.
When the user backgrounds the app, the OS appears to take a screenshot of the app as it was running, and displays it so when the user returns, their state is restored.
I am trying to prevent the user's information from being seen in this screenshot.
My initial idea was to display a Popup of my splash screen image, but it does not seem to render it in ApplicationDeactivated. Is there any other way you might accomplish this?
I am not sure you are analyzing this correctly. I don't see how the OS could take a screenshot of an app and use that to restore state. Also, if it was true that the OS did that, Tomb Stoning wouldn't be such a big issue in the requirements for an app in the submission process. A dev needs to handle grabbing and saving state on exit and reloading it on start-up again.
If you didn't code this tomb stoning, are you using a frameowrk that has built in support for this? You could disable the tombstoning so certain pieces of information are not stored, and in fact if this data is that sensitive you should make sure it isn't saved. But, if you save it make sure you encrypt it so nothing else could examine the saved state. Although, that shouldn't be possible on Win Phone as the OS is supposed to enforce the boundries between apps.
Received a response from Microsoft which indicates that this is not possible in the Mango SDK; it may be added into future releases of the platform.

Mobile Safari application cache bugs?

I'm using Mobile Safari's cache manifest file to store a multi-page data entry application that is run on an iPod Touch (version 3.1.3) in offline mode. The application writes to the client-side database by way of the persistence.js ORM. This all works fine.
However, I run into the occasional, extremely hard to reproduce problem whereby Safari just seems to forget that the pages are cached. When this happens, the "Cannot Open Page" alert appears, which is the same one that comes up when you attempt to visit a non-cached website with the wi-fi turned off. The only way that I've found to fix this is to reconnect to a wireless signal and visit the site while online, which seems to set the cache straight. This is easy to do when you're in the office, but not so easy to do out in the field.
I'm not trying to reference anything outside of the cached resources, and I've verified that the application is cached by running through the entire site while disconnected, sometimes successfully for days on end. I feel like there's a bug in the OS that messes with the validity of the cache. I'm not necessarily looking for a solution to the problem (but that would be nice), but rather just some confirmation that others have encountered this problem.
Using a cache manifest and lot of troubleshooting, I am able to reliably cache an entire application; Do note that this is a single page app with only a few separate file resources.
As a further enhancement, I have been trying to modify the DOM based on
window.applicationCache status
to inform the user about updates, ie:
tap here to apply update
If that were possible, I could swap the cache
window.applicationCache.swapCache();
Which would allow me to swap in the updated cache and then restart the page to provide a streamlined update mechanism.
Potentially even more streamlined than apps from the apple store.
I suspect that the applicationCache API was hamstrung by Apple to hinder web apps for this very reason. Having said that, I believe the level of support for "html5" APIs on mobile devices is among the most robust in apple's safari.
Following are a few problems I have noticed so far, in no particular order. Please note that this is not a comprehensive list of bugs.
I never get an 'updateready' event; this alert line never runs:
window.applicationCache.addEventListener('updateready', function(e) {
alert('updateready event status=' + window.applicationCache.status );
}, false);
I can not manually check for updates. The following code gives me an exception
try{
window.applicationCache.update();
}catch (err){
alert('exception:\n' + err);
}
It seems that as soon as I start to interact with the cache state at all, the caching stops working. The bugs are fiendishly elusive; pinning down & isolating any one issue can take a lot of time, especially since all this code runs flawlessly on other browsers (chrome).
Now here's a good one:
I suspect that if you pin an app to your home screen, iCloud "backs up" resources and restores them after you run the app for the first time from the home screen. To avoid this issue, you may sometimes have to rename files. I have proven that apple makes discrete backups of obsolete components by
removing them entirely from my app server
deleting the pinned web apps from home screen
clearing all the caches
opening the app url in safari
verify that its the newest version
pin to home
verify that the pinned app the newest version
close it
run again - and its back to the old one, no longer on your server.
Finally, if you run the pinned app while the phone is in airplane mode, iCloud will not be able to restore the obsolete files. This proves that it's coming from over the air.

Resources