[Settings] Don't allow apps on external storage to be active admin

Bug 27149287

Change-Id: I7e0905228812fbc326cf4ac4984e7f59003996a8
This commit is contained in:
Makoto Onuki
2016-02-17 11:15:04 -08:00
parent 95d7c970dc
commit 9dbad57a84
3 changed files with 9 additions and 0 deletions

View File

@@ -359,6 +359,9 @@ public class DeviceAdminSettings extends ListFragment {
DeviceAdminInfo deviceAdminInfo = createDeviceAdminInfo(resolveInfo);
// add only visible ones (note: active admins are added regardless of visibility)
if (deviceAdminInfo != null && deviceAdminInfo.isVisible()) {
if (!deviceAdminInfo.getActivityInfo().applicationInfo.isInternal()) {
continue;
}
DeviceAdminListItem item = new DeviceAdminListItem();
item.info = deviceAdminInfo;
item.name = deviceAdminInfo.loadLabel(pm).toString();
@@ -391,6 +394,8 @@ public class DeviceAdminSettings extends ListFragment {
for (int j = 0; j < resolvedMax; ++j) {
DeviceAdminInfo deviceAdminInfo = createDeviceAdminInfo(resolved.get(j));
if (deviceAdminInfo != null) {
// Don't do the applicationInfo.isInternal() check here; if an active
// admin is already on SD card, just show it.
DeviceAdminListItem item = new DeviceAdminListItem();
item.info = deviceAdminInfo;
item.name = deviceAdminInfo.loadLabel(packageManager).toString();