Loading api/current.txt +2 −2 Original line number Diff line number Diff line Loading @@ -6912,7 +6912,6 @@ package android.app.admin { method @Nullable public java.util.List<java.lang.String> getPermittedCrossProfileNotificationListeners(@NonNull android.content.ComponentName); method @Nullable public java.util.List<java.lang.String> getPermittedInputMethods(@NonNull android.content.ComponentName); method public int getPersonalAppsSuspendedReasons(@NonNull android.content.ComponentName); method @NonNull public java.util.List<java.lang.String> getProtectedPackages(@NonNull android.content.ComponentName); method public long getRequiredStrongAuthTimeout(@Nullable android.content.ComponentName); method public boolean getScreenCaptureDisabled(@Nullable android.content.ComponentName); method public java.util.List<android.os.UserHandle> getSecondaryUsers(@NonNull android.content.ComponentName); Loading @@ -6923,6 +6922,7 @@ package android.app.admin { method @Nullable public android.app.admin.SystemUpdatePolicy getSystemUpdatePolicy(); method @Nullable public android.os.PersistableBundle getTransferOwnershipBundle(); method @Nullable public java.util.List<android.os.PersistableBundle> getTrustAgentConfiguration(@Nullable android.content.ComponentName, @NonNull android.content.ComponentName); method @NonNull public java.util.List<java.lang.String> getUserControlDisabledPackages(@NonNull android.content.ComponentName); method @NonNull public android.os.Bundle getUserRestrictions(@NonNull android.content.ComponentName); method @Nullable public String getWifiMacAddress(@NonNull android.content.ComponentName); method public boolean grantKeyPairToApp(@Nullable android.content.ComponentName, @NonNull String, @NonNull String); Loading Loading @@ -7042,7 +7042,6 @@ package android.app.admin { method public void setPersonalAppsSuspended(@NonNull android.content.ComponentName, boolean); method public void setProfileEnabled(@NonNull android.content.ComponentName); method public void setProfileName(@NonNull android.content.ComponentName, String); method public void setProtectedPackages(@NonNull android.content.ComponentName, @NonNull java.util.List<java.lang.String>); method public void setRecommendedGlobalProxy(@NonNull android.content.ComponentName, @Nullable android.net.ProxyInfo); method public void setRequiredStrongAuthTimeout(@NonNull android.content.ComponentName, long); method public boolean setResetPasswordToken(android.content.ComponentName, byte[]); Loading @@ -7061,6 +7060,7 @@ package android.app.admin { method public boolean setTimeZone(@NonNull android.content.ComponentName, String); method public void setTrustAgentConfiguration(@NonNull android.content.ComponentName, @NonNull android.content.ComponentName, android.os.PersistableBundle); method public void setUninstallBlocked(@Nullable android.content.ComponentName, String, boolean); method public void setUserControlDisabledPackages(@NonNull android.content.ComponentName, @NonNull java.util.List<java.lang.String>); method public void setUserIcon(@NonNull android.content.ComponentName, android.graphics.Bitmap); method public int startUserInBackground(@NonNull android.content.ComponentName, @NonNull android.os.UserHandle); method public int stopUser(@NonNull android.content.ComponentName, @NonNull android.os.UserHandle); core/java/android/app/admin/DevicePolicyManager.java +11 −10 Original line number Diff line number Diff line Loading @@ -11848,18 +11848,19 @@ public class DevicePolicyManager { } /** * Called by Device owner to set packages as protected. User will not be able to clear app * data or force-stop protected packages. * Called by Device owner to disable user control over apps. User will not be able to clear * app data or force-stop packages. * * @param admin which {@link DeviceAdminReceiver} this request is associated with * @param packages The package names to protect. * @param packages The package names for the apps. * @throws SecurityException if {@code admin} is not a device owner. */ public void setProtectedPackages(@NonNull ComponentName admin, @NonNull List<String> packages) { throwIfParentInstance("setProtectedPackages"); public void setUserControlDisabledPackages(@NonNull ComponentName admin, @NonNull List<String> packages) { throwIfParentInstance("setUserControlDisabledPackages"); if (mService != null) { try { mService.setProtectedPackages(admin, packages); mService.setUserControlDisabledPackages(admin, packages); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } Loading @@ -11867,16 +11868,16 @@ public class DevicePolicyManager { } /** * Returns the list of packages protected by the device owner. * Returns the list of packages over which user control is disabled by the device owner. * * @param admin which {@link DeviceAdminReceiver} this request is associated with * @throws SecurityException if {@code admin} is not a device owner. */ public @NonNull List<String> getProtectedPackages(@NonNull ComponentName admin) { throwIfParentInstance("getProtectedPackages"); public @NonNull List<String> getUserControlDisabledPackages(@NonNull ComponentName admin) { throwIfParentInstance("getUserControlDisabledPackages"); if (mService != null) { try { return mService.getProtectedPackages(admin); return mService.getUserControlDisabledPackages(admin); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } core/java/android/app/admin/IDevicePolicyManager.aidl +2 −2 Original line number Diff line number Diff line Loading @@ -467,9 +467,9 @@ interface IDevicePolicyManager { boolean setKeyGrantForApp(in ComponentName admin, String callerPackage, String alias, String packageName, boolean hasGrant); void setProtectedPackages(in ComponentName admin, in List<String> packages); void setUserControlDisabledPackages(in ComponentName admin, in List<String> packages); List<String> getProtectedPackages(in ComponentName admin); List<String> getUserControlDisabledPackages(in ComponentName admin); void setCommonCriteriaModeEnabled(in ComponentName admin, boolean enabled); boolean isCommonCriteriaModeEnabled(in ComponentName admin); Loading core/proto/android/stats/devicepolicy/device_policy_enums.proto +1 −1 Original line number Diff line number Diff line Loading @@ -153,7 +153,7 @@ enum EventId { CROSS_PROFILE_APPS_START_ACTIVITY_AS_USER = 126; SET_AUTO_TIME = 127; SET_AUTO_TIME_ZONE = 128; SET_PACKAGES_PROTECTED = 129; SET_USER_CONTROL_DISABLED_PACKAGES = 129; SET_FACTORY_RESET_PROTECTION = 130; SET_COMMON_CRITERIA_MODE = 131; ALLOW_MODIFICATION_OF_ADMIN_CONFIGURED_NETWORKS = 132; Loading services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +20 −18 Original line number Diff line number Diff line Loading @@ -786,7 +786,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { List<String> mLockTaskPackages = new ArrayList<>(); // List of packages protected by device owner List<String> mProtectedPackages = new ArrayList<>(); List<String> mUserControlDisabledPackages = new ArrayList<>(); // Bitfield of feature flags to be enabled during LockTask mode. // We default on the power button menu, in order to be consistent with pre-P behaviour. Loading Loading @@ -3541,8 +3541,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { out.endTag(null, TAG_OWNER_INSTALLED_CA_CERT); } for (int i = 0, size = policy.mProtectedPackages.size(); i < size; i++) { String packageName = policy.mProtectedPackages.get(i); for (int i = 0, size = policy.mUserControlDisabledPackages.size(); i < size; i++) { String packageName = policy.mUserControlDisabledPackages.get(i); out.startTag(null, TAG_PROTECTED_PACKAGES); out.attribute(null, ATTR_NAME, packageName); out.endTag(null, TAG_PROTECTED_PACKAGES); Loading Loading @@ -3667,7 +3667,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { policy.mAdminMap.clear(); policy.mAffiliationIds.clear(); policy.mOwnerInstalledCaCerts.clear(); policy.mProtectedPackages.clear(); policy.mUserControlDisabledPackages.clear(); while ((type=parser.next()) != XmlPullParser.END_DOCUMENT && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) { if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) { Loading Loading @@ -3769,7 +3769,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } else if (TAG_OWNER_INSTALLED_CA_CERT.equals(tag)) { policy.mOwnerInstalledCaCerts.add(parser.getAttributeValue(null, ATTR_ALIAS)); } else if (TAG_PROTECTED_PACKAGES.equals(tag)) { policy.mProtectedPackages.add(parser.getAttributeValue(null, ATTR_NAME)); policy.mUserControlDisabledPackages.add( parser.getAttributeValue(null, ATTR_NAME)); } else if (TAG_APPS_SUSPENDED.equals(tag)) { policy.mAppsSuspended = Boolean.parseBoolean(parser.getAttributeValue(null, ATTR_VALUE)); Loading Loading @@ -3804,7 +3805,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { updateMaximumTimeToLockLocked(userHandle); updateLockTaskPackagesLocked(policy.mLockTaskPackages, userHandle); updateLockTaskFeaturesLocked(policy.mLockTaskFeatures, userHandle); updateProtectedPackagesLocked(policy.mProtectedPackages); updateUserControlDisabledPackagesLocked(policy.mUserControlDisabledPackages); if (policy.mStatusBarDisabled) { setStatusBarDisabledInternal(policy.mStatusBarDisabled, userHandle); } Loading @@ -3830,7 +3831,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } } private void updateProtectedPackagesLocked(List<String> packages) { private void updateUserControlDisabledPackagesLocked(List<String> packages) { mInjector.getPackageManagerInternal().setDeviceOwnerProtectedPackages(packages); } Loading Loading @@ -8830,8 +8831,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { policy.mLockTaskPackages.clear(); updateLockTaskPackagesLocked(policy.mLockTaskPackages, userId); policy.mLockTaskFeatures = DevicePolicyManager.LOCK_TASK_FEATURE_NONE; policy.mProtectedPackages.clear(); updateProtectedPackagesLocked(policy.mProtectedPackages); policy.mUserControlDisabledPackages.clear(); updateUserControlDisabledPackagesLocked(policy.mUserControlDisabledPackages); saveSettingsLocked(userId); try { Loading Loading @@ -9584,7 +9585,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { pw.println(); pw.increaseIndent(); pw.print("mPasswordOwner="); pw.println(policy.mPasswordOwner); pw.print("mProtectedPackages="); pw.println(policy.mProtectedPackages); pw.print("mUserControlDisabledPackages="); pw.println(policy.mUserControlDisabledPackages); pw.print("mAppsSuspended="); pw.println(policy.mAppsSuspended); pw.decreaseIndent(); } Loading Loading @@ -15559,39 +15561,39 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } @Override public void setProtectedPackages(ComponentName who, List<String> packages) { public void setUserControlDisabledPackages(ComponentName who, List<String> packages) { Preconditions.checkNotNull(who, "ComponentName is null"); Preconditions.checkNotNull(packages, "packages is null"); enforceDeviceOwner(who); synchronized (getLockObject()) { final int userHandle = mInjector.userHandleGetCallingUserId(); setProtectedPackagesLocked(userHandle, packages); setUserControlDisabledPackagesLocked(userHandle, packages); DevicePolicyEventLogger .createEvent(DevicePolicyEnums.SET_PACKAGES_PROTECTED) .createEvent(DevicePolicyEnums.SET_USER_CONTROL_DISABLED_PACKAGES) .setAdmin(who) .setStrings(packages.toArray(new String[packages.size()])) .write(); } } private void setProtectedPackagesLocked(int userHandle, List<String> packages) { private void setUserControlDisabledPackagesLocked(int userHandle, List<String> packages) { final DevicePolicyData policy = getUserData(userHandle); policy.mProtectedPackages = packages; policy.mUserControlDisabledPackages = packages; // Store the settings persistently. saveSettingsLocked(userHandle); updateProtectedPackagesLocked(packages); updateUserControlDisabledPackagesLocked(packages); } @Override public List<String> getProtectedPackages(ComponentName who) { public List<String> getUserControlDisabledPackages(ComponentName who) { Preconditions.checkNotNull(who, "ComponentName is null"); enforceDeviceOwner(who); final int userHandle = mInjector.binderGetCallingUserHandle().getIdentifier(); synchronized (getLockObject()) { final List<String> packages = getUserData(userHandle).mProtectedPackages; final List<String> packages = getUserData(userHandle).mUserControlDisabledPackages; return packages == null ? Collections.EMPTY_LIST : packages; } } Loading
api/current.txt +2 −2 Original line number Diff line number Diff line Loading @@ -6912,7 +6912,6 @@ package android.app.admin { method @Nullable public java.util.List<java.lang.String> getPermittedCrossProfileNotificationListeners(@NonNull android.content.ComponentName); method @Nullable public java.util.List<java.lang.String> getPermittedInputMethods(@NonNull android.content.ComponentName); method public int getPersonalAppsSuspendedReasons(@NonNull android.content.ComponentName); method @NonNull public java.util.List<java.lang.String> getProtectedPackages(@NonNull android.content.ComponentName); method public long getRequiredStrongAuthTimeout(@Nullable android.content.ComponentName); method public boolean getScreenCaptureDisabled(@Nullable android.content.ComponentName); method public java.util.List<android.os.UserHandle> getSecondaryUsers(@NonNull android.content.ComponentName); Loading @@ -6923,6 +6922,7 @@ package android.app.admin { method @Nullable public android.app.admin.SystemUpdatePolicy getSystemUpdatePolicy(); method @Nullable public android.os.PersistableBundle getTransferOwnershipBundle(); method @Nullable public java.util.List<android.os.PersistableBundle> getTrustAgentConfiguration(@Nullable android.content.ComponentName, @NonNull android.content.ComponentName); method @NonNull public java.util.List<java.lang.String> getUserControlDisabledPackages(@NonNull android.content.ComponentName); method @NonNull public android.os.Bundle getUserRestrictions(@NonNull android.content.ComponentName); method @Nullable public String getWifiMacAddress(@NonNull android.content.ComponentName); method public boolean grantKeyPairToApp(@Nullable android.content.ComponentName, @NonNull String, @NonNull String); Loading Loading @@ -7042,7 +7042,6 @@ package android.app.admin { method public void setPersonalAppsSuspended(@NonNull android.content.ComponentName, boolean); method public void setProfileEnabled(@NonNull android.content.ComponentName); method public void setProfileName(@NonNull android.content.ComponentName, String); method public void setProtectedPackages(@NonNull android.content.ComponentName, @NonNull java.util.List<java.lang.String>); method public void setRecommendedGlobalProxy(@NonNull android.content.ComponentName, @Nullable android.net.ProxyInfo); method public void setRequiredStrongAuthTimeout(@NonNull android.content.ComponentName, long); method public boolean setResetPasswordToken(android.content.ComponentName, byte[]); Loading @@ -7061,6 +7060,7 @@ package android.app.admin { method public boolean setTimeZone(@NonNull android.content.ComponentName, String); method public void setTrustAgentConfiguration(@NonNull android.content.ComponentName, @NonNull android.content.ComponentName, android.os.PersistableBundle); method public void setUninstallBlocked(@Nullable android.content.ComponentName, String, boolean); method public void setUserControlDisabledPackages(@NonNull android.content.ComponentName, @NonNull java.util.List<java.lang.String>); method public void setUserIcon(@NonNull android.content.ComponentName, android.graphics.Bitmap); method public int startUserInBackground(@NonNull android.content.ComponentName, @NonNull android.os.UserHandle); method public int stopUser(@NonNull android.content.ComponentName, @NonNull android.os.UserHandle);
core/java/android/app/admin/DevicePolicyManager.java +11 −10 Original line number Diff line number Diff line Loading @@ -11848,18 +11848,19 @@ public class DevicePolicyManager { } /** * Called by Device owner to set packages as protected. User will not be able to clear app * data or force-stop protected packages. * Called by Device owner to disable user control over apps. User will not be able to clear * app data or force-stop packages. * * @param admin which {@link DeviceAdminReceiver} this request is associated with * @param packages The package names to protect. * @param packages The package names for the apps. * @throws SecurityException if {@code admin} is not a device owner. */ public void setProtectedPackages(@NonNull ComponentName admin, @NonNull List<String> packages) { throwIfParentInstance("setProtectedPackages"); public void setUserControlDisabledPackages(@NonNull ComponentName admin, @NonNull List<String> packages) { throwIfParentInstance("setUserControlDisabledPackages"); if (mService != null) { try { mService.setProtectedPackages(admin, packages); mService.setUserControlDisabledPackages(admin, packages); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } Loading @@ -11867,16 +11868,16 @@ public class DevicePolicyManager { } /** * Returns the list of packages protected by the device owner. * Returns the list of packages over which user control is disabled by the device owner. * * @param admin which {@link DeviceAdminReceiver} this request is associated with * @throws SecurityException if {@code admin} is not a device owner. */ public @NonNull List<String> getProtectedPackages(@NonNull ComponentName admin) { throwIfParentInstance("getProtectedPackages"); public @NonNull List<String> getUserControlDisabledPackages(@NonNull ComponentName admin) { throwIfParentInstance("getUserControlDisabledPackages"); if (mService != null) { try { return mService.getProtectedPackages(admin); return mService.getUserControlDisabledPackages(admin); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); }
core/java/android/app/admin/IDevicePolicyManager.aidl +2 −2 Original line number Diff line number Diff line Loading @@ -467,9 +467,9 @@ interface IDevicePolicyManager { boolean setKeyGrantForApp(in ComponentName admin, String callerPackage, String alias, String packageName, boolean hasGrant); void setProtectedPackages(in ComponentName admin, in List<String> packages); void setUserControlDisabledPackages(in ComponentName admin, in List<String> packages); List<String> getProtectedPackages(in ComponentName admin); List<String> getUserControlDisabledPackages(in ComponentName admin); void setCommonCriteriaModeEnabled(in ComponentName admin, boolean enabled); boolean isCommonCriteriaModeEnabled(in ComponentName admin); Loading
core/proto/android/stats/devicepolicy/device_policy_enums.proto +1 −1 Original line number Diff line number Diff line Loading @@ -153,7 +153,7 @@ enum EventId { CROSS_PROFILE_APPS_START_ACTIVITY_AS_USER = 126; SET_AUTO_TIME = 127; SET_AUTO_TIME_ZONE = 128; SET_PACKAGES_PROTECTED = 129; SET_USER_CONTROL_DISABLED_PACKAGES = 129; SET_FACTORY_RESET_PROTECTION = 130; SET_COMMON_CRITERIA_MODE = 131; ALLOW_MODIFICATION_OF_ADMIN_CONFIGURED_NETWORKS = 132; Loading
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +20 −18 Original line number Diff line number Diff line Loading @@ -786,7 +786,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { List<String> mLockTaskPackages = new ArrayList<>(); // List of packages protected by device owner List<String> mProtectedPackages = new ArrayList<>(); List<String> mUserControlDisabledPackages = new ArrayList<>(); // Bitfield of feature flags to be enabled during LockTask mode. // We default on the power button menu, in order to be consistent with pre-P behaviour. Loading Loading @@ -3541,8 +3541,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { out.endTag(null, TAG_OWNER_INSTALLED_CA_CERT); } for (int i = 0, size = policy.mProtectedPackages.size(); i < size; i++) { String packageName = policy.mProtectedPackages.get(i); for (int i = 0, size = policy.mUserControlDisabledPackages.size(); i < size; i++) { String packageName = policy.mUserControlDisabledPackages.get(i); out.startTag(null, TAG_PROTECTED_PACKAGES); out.attribute(null, ATTR_NAME, packageName); out.endTag(null, TAG_PROTECTED_PACKAGES); Loading Loading @@ -3667,7 +3667,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { policy.mAdminMap.clear(); policy.mAffiliationIds.clear(); policy.mOwnerInstalledCaCerts.clear(); policy.mProtectedPackages.clear(); policy.mUserControlDisabledPackages.clear(); while ((type=parser.next()) != XmlPullParser.END_DOCUMENT && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) { if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) { Loading Loading @@ -3769,7 +3769,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } else if (TAG_OWNER_INSTALLED_CA_CERT.equals(tag)) { policy.mOwnerInstalledCaCerts.add(parser.getAttributeValue(null, ATTR_ALIAS)); } else if (TAG_PROTECTED_PACKAGES.equals(tag)) { policy.mProtectedPackages.add(parser.getAttributeValue(null, ATTR_NAME)); policy.mUserControlDisabledPackages.add( parser.getAttributeValue(null, ATTR_NAME)); } else if (TAG_APPS_SUSPENDED.equals(tag)) { policy.mAppsSuspended = Boolean.parseBoolean(parser.getAttributeValue(null, ATTR_VALUE)); Loading Loading @@ -3804,7 +3805,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { updateMaximumTimeToLockLocked(userHandle); updateLockTaskPackagesLocked(policy.mLockTaskPackages, userHandle); updateLockTaskFeaturesLocked(policy.mLockTaskFeatures, userHandle); updateProtectedPackagesLocked(policy.mProtectedPackages); updateUserControlDisabledPackagesLocked(policy.mUserControlDisabledPackages); if (policy.mStatusBarDisabled) { setStatusBarDisabledInternal(policy.mStatusBarDisabled, userHandle); } Loading @@ -3830,7 +3831,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } } private void updateProtectedPackagesLocked(List<String> packages) { private void updateUserControlDisabledPackagesLocked(List<String> packages) { mInjector.getPackageManagerInternal().setDeviceOwnerProtectedPackages(packages); } Loading Loading @@ -8830,8 +8831,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { policy.mLockTaskPackages.clear(); updateLockTaskPackagesLocked(policy.mLockTaskPackages, userId); policy.mLockTaskFeatures = DevicePolicyManager.LOCK_TASK_FEATURE_NONE; policy.mProtectedPackages.clear(); updateProtectedPackagesLocked(policy.mProtectedPackages); policy.mUserControlDisabledPackages.clear(); updateUserControlDisabledPackagesLocked(policy.mUserControlDisabledPackages); saveSettingsLocked(userId); try { Loading Loading @@ -9584,7 +9585,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { pw.println(); pw.increaseIndent(); pw.print("mPasswordOwner="); pw.println(policy.mPasswordOwner); pw.print("mProtectedPackages="); pw.println(policy.mProtectedPackages); pw.print("mUserControlDisabledPackages="); pw.println(policy.mUserControlDisabledPackages); pw.print("mAppsSuspended="); pw.println(policy.mAppsSuspended); pw.decreaseIndent(); } Loading Loading @@ -15559,39 +15561,39 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } @Override public void setProtectedPackages(ComponentName who, List<String> packages) { public void setUserControlDisabledPackages(ComponentName who, List<String> packages) { Preconditions.checkNotNull(who, "ComponentName is null"); Preconditions.checkNotNull(packages, "packages is null"); enforceDeviceOwner(who); synchronized (getLockObject()) { final int userHandle = mInjector.userHandleGetCallingUserId(); setProtectedPackagesLocked(userHandle, packages); setUserControlDisabledPackagesLocked(userHandle, packages); DevicePolicyEventLogger .createEvent(DevicePolicyEnums.SET_PACKAGES_PROTECTED) .createEvent(DevicePolicyEnums.SET_USER_CONTROL_DISABLED_PACKAGES) .setAdmin(who) .setStrings(packages.toArray(new String[packages.size()])) .write(); } } private void setProtectedPackagesLocked(int userHandle, List<String> packages) { private void setUserControlDisabledPackagesLocked(int userHandle, List<String> packages) { final DevicePolicyData policy = getUserData(userHandle); policy.mProtectedPackages = packages; policy.mUserControlDisabledPackages = packages; // Store the settings persistently. saveSettingsLocked(userHandle); updateProtectedPackagesLocked(packages); updateUserControlDisabledPackagesLocked(packages); } @Override public List<String> getProtectedPackages(ComponentName who) { public List<String> getUserControlDisabledPackages(ComponentName who) { Preconditions.checkNotNull(who, "ComponentName is null"); enforceDeviceOwner(who); final int userHandle = mInjector.binderGetCallingUserHandle().getIdentifier(); synchronized (getLockObject()) { final List<String> packages = getUserData(userHandle).mProtectedPackages; final List<String> packages = getUserData(userHandle).mUserControlDisabledPackages; return packages == null ? Collections.EMPTY_LIST : packages; } }